微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有什么方法可以显示WinDBG中可执行文件调用的所有功能而不仅仅是调用堆栈?

如何解决有什么方法可以显示WinDBG中可执行文件调用的所有功能而不仅仅是调用堆栈?

我正在尝试使用WinDbg调试无法正常运行的可执行文件(不会收到分段错误,只是没有执行他应做的事情)。我希望看到一个调用堆栈,其中包含运行可执行文件调用的所有函数。在WinDbg或任何其他调试器中有可能吗?

解决方法

是的,我评论过使用wt(监视和跟踪)
Read the docs 可以通过多种方式进行配置
就像只有第一级电话一样
仅限第n级通话
仅在特定模块中
仅在主模块等中

下面是ntdll中跨越um-km边界的函数的简单痕迹

0:000> u . l1
ntdll!LdrpInitializeProcess+0x11bf:
76ff6113 e870fffdff      call    ntdll!NtQueryInformationProcess (76fd6088)

0:000> bp .+5  //set a bp on return address
0:000> bl
 0 e 76ff6118     0001 (0001)  0:**** ntdll!LdrpInitializeProcess+0x11c4

0:000> wt
    2     0 [  0] ntdll!NtQueryInformationProcess
   27     0 [  0] aswhook
    1     0 [  1]   aswhook
   28     1 [  0] aswhook
    1     0 [  1]   0x6efc0480
    1     0 [  1]   0x6efc0485
    2     0 [  1]   ntdll!NtQueryInformationProcess
    2     0 [  2]     ntdll!KiFastSystemCall
    1     0 [  1]   ntdll!NtQueryInformationProcess
   46     8 [  0] aswhook
    3     0 [  1]   aswhook

Breakpoint 0 hit
eax=00000000 ebx=7ffdf000 ecx=e8cb8789 edx=ffffffff esi=ffffffff edi=00000000
eip=76ff6118 esp=0018f59c ebp=0018f6f4 iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
ntdll!LdrpInitializeProcess+0x11c4:
76ff6118 85c0            test    eax,eax
0:000>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。