在Visual Studio调试器中中断线程创建

pau*_*doo 7 debugging multithreading visual-studio

我可以将Visual Studio调试器设置为在创建线程时中断吗?

(注意这与在其他问题中要求的打破上下文切换不同:我可以在Visual Studio(c ++)中设置断点以打破线程上下文切换吗?)

Min*_*Min 8

我找到了办法.谷歌搜索时,我看到了相反的问题: 是否有可能在具有特定错误代码的线程退出时中断?

我在函数上放了一个断点RtlExitUserThread,之后我意识到所有线程都是用函数创建的RtlUserThreadStart,所以把另一个断点放到那个函数上就是这样:)

  • 在 Visual Studio 中,在 Breakpoints 窗口(Debug / Windows / Breakpoints 或 Alt+F9)中,您可以为函数符号设置断点。在“断点”窗口中单击“新建”/“函数断点...”或 Ctrl+B,然后在对话框中输入函数名称,在本例中为 RtlUserThreadStart。对我来说,即使没有加载 microsoft ntdll.pdb 符号也能正常工作。 (2认同)

Han*_*ant 2

是的,调试器会收到通知。不,用户界面不允许您告诉它在该通知上中断。如果这是针对托管代码,那么您可以使用 MDbg 示例并对其进行修改。