Как интерпретировать callstack визуальной студии? - PullRequest
3 голосов
/ 03 октября 2010
>    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()   

Может кто-нибудь объяснить вышеприведенную строку за строкой?

1 Ответ

3 голосов
/ 03 октября 2010

Это означает, что указатель инструкции находится в исполняемом файле vcam.ax в функции CopyMediaType (), а следующая операция - 0x48 (= 73) байтов машинного кода в функцию.вызывается из исполняемого файла vcam.ax, метода Set объекта CMediaType, и адрес возврата составляет 0x41 байт кода в функцию.

И т. д.имеют символы отладки, поэтому он не может сказать вам, в какой функции возник вызов, все, что он может сказать, это где находится адрес возврата.Это абсолютный адрес возврата в коде из FlashPlazer.exe

SetFormat был вызван с одним параметром, указателем на объект _AMMediaType.Указатель был NULL.

Кажется странным, что другие функции не имеют параметров.Оператор = должен иметь один параметр, но, похоже, у отладчика недостаточно информации для его отображения.Это может быть другой метод вызова функции, поскольку он распознает вызов SetFormat как код C ++, а другие - нет.

...