开发者

How to interpret the callstack of visual studio?

>    vcam.ax!CopyMediaType()  + 0x49 bytes    
     vcam.ax!CMediaType::Set()  + 0x41 bytes  开发者_如何转开发  
     vcam.ax!CMediaType::operator=()  + 0x2f bytes    
     vcam.ax!CVCamStream::SetFormat(_AMMediaType * pmt=0x00000000)  Line 201    C++
     FlashPlayer.exe!005641be()   

Can someone explain the above line by line?


It means the instruction pointer is in the executable vcam.ax, in the function CopyMediaType(), and the next operation is 0x48 (=73) bytes of machine code into the function.

This function was called from the executable vcam.ax, the method Set of a CMediaType object, and the return address is 0x41 bytes of code into the function.

And so on.

FlashPlayer.exe does not have debug symbols, so it can not tell you in which function the call originated, all it can say is where the return address is. This is the absolute return address in the code from FlashPlazer.exe

SetFormat was called with one parameter, a pointer to an _AMMediaType object. The pointer was NULL.

It seems weird that the other functions don't have parameters. operator= should have one parameter, but the debugger seems to have not enough information to display it. It might be a different function call method, as it recognizes the SetFormat call as C++ code but the others not.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜