C++ 判断是不是附加了调试器

Posted

技术标签:

【中文标题】C++ 判断是不是附加了调试器【英文标题】:C++ figure out if the debugger is attachedC++ 判断是否附加了调试器 【发布时间】:2011-01-27 15:58:26 【问题描述】:

我使用 stackwalk64 在 Visual Studio 2008 中使用最新的 symchk.exe 和 dbghlp.dll 为 C++ 生成堆栈跟踪。当我运行独立的 exe 时,这很好用。但是,当附加调试器时,我死锁了 Visual Studio。我以前有一个解决方法,我将所有 system32 符号下载到磁盘并且效果很好,但是最近的更新似乎破坏了我的解决方法,即使我更新了符号。理想情况下,我想确定是否附加了 Visual Studio 调试器(它只会是 VS 调试器),所以在这种情况下我可以关闭我的堆栈跟踪。感谢您的帮助。

【问题讨论】:

【参考方案1】:

使用IsDebuggerPresent,也可能使用CheckRemoteDebuggerPresent

【讨论】:

以上是关于C++ 判断是不是附加了调试器的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行时确定您的 C++ 应用程序何时附加了 Visual Studio 调试器?

C++ 从命令行附加 Visual Studio 调试器

如何附加调试器以从托管(C#)包装器进入本机(C++)代码?

VSCode:C++ 调试器无法启动或正确附加

有没有办法检测附加的调试器是不是是远程调试器?

未在附加调试器的情况下运行时程序中断