Debugging 如何记录C++;如果在调试器外部运行,则出现异常,否则重试

Debugging 如何记录C++;如果在调试器外部运行,则出现异常,否则重试,debugging,Debugging,我想做这样的事情: int main() { try { runApp(); } catch(std::exception const& ex) { if(runningInDebugger()) throw; // let the IDE show me what went wrong else displayMsgBox("Something went wrong! " + ex.what()); } } 至少在VS2008中

我想做这样的事情:

int main() {
    try { runApp(); }
    catch(std::exception const& ex) {
        if(runningInDebugger()) throw; // let the IDE show me what went wrong
        else displayMsgBox("Something went wrong! " + ex.what());
    }
}
至少在VS2008中需要工作,但它支持的调试器越多越好

我希望它在运行时检查调试器。我不想做“#ifdef NDEBUG”,因为我根本不想做发布版本(不必担心)


那么,我应该使用什么作为“runningInDebugger()”检查呢?

在Windows下,您可以调用以了解是否有附加的调试器。

在Windows下,您可以调用以了解是否有附加的调试器。

如果您正在使用托管代码,还可以使用。我想,在一般情况下,检测是否附加了调试器可能相当困难。我通常会在调试时尽量避免行为上的任何更改,因为我认为这是一种不好的做法,会使调试变得更加困难,但我理解您这样做的原因。

如果您使用托管代码,还有一个问题。我想,在一般情况下,检测是否附加了调试器可能相当困难。我通常会在调试时尽量避免行为上的任何变化,因为我认为这是一种不好的做法,会使调试更加困难,但我理解您这样做的理由