如何解读Visual Studio的callstack?
> 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()
有人可以逐行解释一下上面的内容吗?
> 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这意味着指令指针位于可执行文件 vcam.ax 中的函数 CopyMediaType() 中,接下来的操作是进入该函数的 0x48 (=73) 字节机器代码。
该函数是从可执行文件 vcam.ax(CMediaType 对象的方法 Set)调用的,返回地址是函数中代码的 0x41 字节。
等等。
FlashPlayer.exe 没有调试符号,因此它无法告诉您调用源自哪个函数,它只能告诉您返回地址在哪里。这是 FlashPlazer.exe 代码中的绝对返回地址,
调用 SetFormat 时使用一个参数,即指向 _AMMediaType 对象的指针。指针为 NULL。
其他函数没有参数似乎很奇怪。 operator= 应该有一个参数,但调试器似乎没有足够的信息来显示它。它可能是不同的函数调用方法,因为它将 SetFormat 调用识别为 C++ 代码,但其他方法则不然。
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.