我正在尝试使用 WinDBG 并在 ASM 中编写了一个简单的 hello world(在 Windows XP 上运行)。
现在我有点惊讶,当我运行它时,当我加载进程时,WinDBG 总是在 ntdll 中停止:
ntdll!DbgBreakPoint:
7c90120e cc int 3
7c90120f c3 ret
通常我希望调试器在新进程的第一条指令处停止,而不是在内核中的某个地方。现在我可以使用:
bp start
start
我的切入点在哪里。但我必须始终手动执行此操作。有什么方法可以指示 WinDBG 它应该在我的程序中开始调试,而不是其他的?为什么它不自动执行此操作?我也注意到 GDB 的相同行为,但至少 GDB 似乎自动设置了一个断点main()
(至少对于 C 程序)。