От адреса памяти к исходной строке кода - PullRequest
1 голос
/ 01 апреля 2011

Я использую WinDBG и имею следующую трассировку стека:

ntdll!NtTerminateProcess+0xa
KERNELBASE!TerminateProcess+0x2f
MSVCR90!_invoke_watson+0x11c [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\invarg.c @ 234]
MSVCR90!_invalid_parameter+0x70 [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\invarg.c @ 115]
MSVCR90!fgetpos+0x33 [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\fgetpos.c @ 45]
CleanPayload!DoSomething+0x22 [c:\users\brent.arias\documents\visual studio 2008\projects\samplecpplibrary\cleanpayload\cleanpayload.cpp @ 68]
CleanPayload!main+0x1c [c:\users\brent.arias\documents\visual studio 2008\projects\samplecpplibrary\cleanpayload\cleanpayload.cpp @ 115]
CleanPayload!__tmainCRTStartup+0x11a [f:\dd\vctools\crt_bld\self_64_amd64\crt\src\crtexe.c @ 586]
kernel32!BaseThreadInitThunk+0xd
ntdll!RtlUserThreadStart+0x1d

Ясно, что отладчик знает, на какую строку кода указывает каждый кадр стека, поскольку он показывает это число после '@'.Я рад, что могу нажать crtl-l на панели исходного кода и ввести номер строки, но почему он не может сделать это для меня?Есть ли способ щелкнуть в окне отладки и сказать «перейти к этой точке в источнике» без необходимости набирать его в себе?

1 Ответ

1 голос
/ 01 апреля 2011

Он может сделать это, но не из любого окна.Он работает из окна Call Stack (Alt + 6) - дважды щелкните по фрейму, который сопоставлен со строкой кода, и вы попадете на строку в исходном файле.Он открывает файл, если он не открыт в WinDbg.

...