You want assembly crash from Olly? I get send error report dialog
Main Topics
Browse All TopicsHi
I'm using this code:
http://tmhare.mvps.org/dow
If you check the code, you'll see:
HRESULT CVCamStream::QueryInterfac
{
// Standard OLE stuff
if(riid == _uuidof(IAMStreamConfig))
*ppv = (IAMStreamConfig*)this;
else if(riid == _uuidof(IKsPropertySet))
*ppv = (IKsPropertySet*)this;
else
return CSourceStream::QueryInterf
AddRef();
return S_OK;
}
After a lot of trace, I see it works well when I call it from AmCap, Yahoo Messenger, MSN, etc.
Just when I load it in Skype, After 3 times calling QueryInterface and those calls go to this part:
return CSourceStream::QueryInterf
After 3-4 times calling that part of code, I get exception and entire Skype.exe crashes...
Any ideas?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
In Olly here is crash in Skype module Skype:
00B9018E 85C9 TEST ECX,ECX
00B90190 0F8E 93010000 JLE Skype.00B90329
00B90196 8B6C24 18 MOV EBP,DWORD PTR SS:[ESP+18]
00B9019A 8BDA MOV EBX,EDX
00B9019C F7DB NEG EBX
00B9019E E8 6DFDFFFF CALL Skype.00B8FF10
00B901A3 8BF0 MOV ESI,EAX
00B901A5 83EE 01 SUB ESI,1
00B901A8 0FAFF2 IMUL ESI,EDX
00B901AB 037424 14 ADD ESI,DWORD PTR SS:[ESP+14]
00B901AF 894C24 18 MOV DWORD PTR SS:[ESP+18],ECX
00B901B3 85FF TEST EDI,EDI
00B901B5 8BCE MOV ECX,ESI
00B901B7 8BD5 MOV EDX,EBP
00B901B9 0F86 59010000 JBE Skype.00B90318
00B901BF 90 NOP
00B901C0 0FB702 MOVZX EAX,WORD PTR DS:[EDX] <---- CRASH IS HERE
More details on Crash:
Registers status on crash:
EAX 00000000
ECX 078DD000
EDX 05109000
EBX FFFFF600
ESP 069FFEC8
EBP 05108B80
ESI 078DCA00
EDI 00000010
EIP 00B901C0 Skype.00B901C0
C 0 ES 0023 32bit 0(FFFFFFFF)
P 0 CS 001B 32bit 0(FFFFFFFF)
A 0 SS 0023 32bit 0(FFFFFFFF)
Z 0 DS 0023 32bit 0(FFFFFFFF)
S 0 FS 003B 32bit 7FFA1000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00000202 (NO,NB,NE,A,NS,PO,GE,G)
ST0 empty 0.0
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 1.0000000000000000000
ST4 empty 1.0000000000000000000
ST5 empty 20466.832656250000580
ST6 empty 200.00000000000000000
ST7 empty 0.0
3 2 1 0 E S P U O Z D I
FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT)
FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1
Access Violation when reading 05109000
This time exception was in Vcam.ax which is our code, exception details:
05C25400 53 PUSH EBX
05C25401 8B5C24 08 MOV EBX,DWORD PTR SS:[ESP+8]
05C25405 55 PUSH EBP
05C25406 8B6C24 10 MOV EBP,DWORD PTR SS:[ESP+10]
05C2540A 56 PUSH ESI
05C2540B 57 PUSH EDI
05C2540C B9 12000000 MOV ECX,12
05C25411 8BF5 MOV ESI,EBP
05C25413 8BFB MOV EDI,EBX
05C25415 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS> <--- Exception here!
05C25417 8B45 40 MOV EAX,DWORD PTR SS:[EBP+40]
05C2541A 85C0 TEST EAX,EAX
05C2541C 74 33 JE SHORT Vcam.05C25451
05C2541E 50 PUSH EAX
05C2541F FF15 B470C205 CALL DWORD PTR DS:[<&ole32.CoTaskMemAllo>; ole32.CoTaskMemAlloc
05C25425 85C0 TEST EAX,EAX
05C25427 8943 44 MOV DWORD PTR DS:[EBX+44],EAX
05C2542A 75 0F JNZ SHORT Vcam.05C2543B
Registers status:
EAX 00000000
ECX 00000012
EDX 0000004F
EBX 02F42CA4 ASCII "vids"
ESP 00B0D4B0
EBP 00000000
ESI 00000000
EDI 02F42CA4 ASCII "vids"
EIP 05C25415 Vcam.05C25415
C 0 ES 0023 32bit 0(FFFFFFFF)
P 1 CS 001B 32bit 0(FFFFFFFF)
A 0 SS 0023 32bit 0(FFFFFFFF)
Z 1 DS 0023 32bit 0(FFFFFFFF)
S 0 FS 003B 32bit 7FFDC000(FFF)
T 0 GS 0000 NULL
D 0
O 0 LastErr ERROR_SUCCESS (00000000)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty 1.6460435905164033450e+273
ST1 empty -UNORM EE88 01180000 4000027F
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 15.500000000000000000
3 2 1 0 E S P U O Z D I
FST 0000 Cond 0 0 0 0 Err 0 0 0 0 0 0 0 0 (GT)
FCW 027F Prec NEAR,53 Mask 1 1 1 1 1 1
Access Violation when reading 00000000
Get the Process Explorer (http://technet.microsoft.
>>I got doubt about your last question, why do you ask that?
Since you say you never call 'CoTaskMemAlloc()', there are two options: Code that you are statically linking to does that (msvcrt.lib doesn't) or you are just experiencing that "happily-move-code-around-
But as I said I get same crash here:
http://oldes.multimedia.cz
It's Macromedia Flash trying to read the webcam, I get crash!
I found solution in text, but I don't know what does it mean... Can you explain?
In order your code to work with Flash Player, you need to implement all neccessary methods like SetFormat/SetMediaType and since DirectShow is rather non friendly interface, you'll spend some time on it.
What's missing in SetFormat/SetMediaType etc. in that code?
yes since its an interface you need to implement all methods exposed by that interface, something similar to over-riding all methods in an abstract base class if you inherit from it.
If Flash Player doesn't require it just return the defaults from these functions....or set the defaults. Check the out type or in type populate a dummy and then code them into the method.
What type of dummy code I should insert?
I tried to return
return CSourceStream::QueryInterf
For each query, but it didn't worked...
I tried to AddRef() for each query again not worked.
I tried to return S_OK for each query again not worked.
I think I'm doing something wrong or maybe we should implement all methods properly...
What do you think?
Business Accounts
Answer for Membership
by: jkrPosted on 2009-10-27 at 09:27:34ID: 25674366
What exception do you get?