Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何告诉XCode调试器仅在断点处停止?(不在例外情况下)_C++_C_Xcode_Macos - Fatal编程技术网

C++ 如何告诉XCode调试器仅在断点处停止?(不在例外情况下)

C++ 如何告诉XCode调试器仅在断点处停止?(不在例外情况下),c++,c,xcode,macos,C++,C,Xcode,Macos,我正在为一个封闭源代码应用程序编写一个第三方插件。我在XCode调试器方面遇到了问题 我想使用调试器逐步完成我正在编写的插件的代码。为此,我在代码中设置了一个断点,启动了主机应用程序,然后将XCode调试器连接到主机应用程序的进程。我的问题是,调试器不是在断点处停止,而是在程序另一部分引发的异常处停止。(具体地说,这个:线程2:EXC_算术(code=EXC_i386_DIV,subcode=0x0)) 这个异常被抛出的频率太高,以至于我实际上不可能一步一步地完成我感兴趣的代码 我无法捕获和处理

我正在为一个封闭源代码应用程序编写一个第三方插件。我在XCode调试器方面遇到了问题

我想使用调试器逐步完成我正在编写的插件的代码。为此,我在代码中设置了一个断点,启动了主机应用程序,然后将XCode调试器连接到主机应用程序的进程。我的问题是,调试器不是在断点处停止,而是在程序另一部分引发的异常处停止。(具体地说,这个:
线程2:EXC_算术(code=EXC_i386_DIV,subcode=0x0)

这个异常被抛出的频率太高,以至于我实际上不可能一步一步地完成我感兴趣的代码

我无法捕获和处理此异常,因为我没有引发此异常的应用程序部分的源代码

在这种情况下,有人能建议我如何调试代码吗?有没有办法告诉XCode调试器简单地“忽略”这个特殊的
EXC\u算术
异常,而只在我显式设置的断点上停止

更新

@user1118321建议使用断点窗格关闭异常断点。我已尝试使用此处显示的设置来执行此操作

我认为选择“评估后自动继续”可能会阻止调试器停止。没有

我还尝试在停止后向调试器发出
cont
。这似乎也不起作用

你能告诉我应该在这里输入什么设置以防止调试器在我的
EXC\u算术
异常时停止吗?

这是一个整数“除以零”错误异常。据我所知,它们并没有被传播为C++异常,这就是为什么不能中断它们的原因。
即使你的插件没有加载,这种情况也会发生吗?如果没有,你的插件不知何故会导致除法为零。

我遵循了@user1118321建议的链接。经过几个小时的挠头,我不知道如何关闭或处理整数除零异常。如果有人有任何想法,我很乐意听到

不过,我确实找到了一个解决办法,那就是使用GDB而不是XCode。与XCode不同,GDB似乎不会停止执行
EXC_算法
,而是让我进入我的代码。因此,目前我将切换到GDB进行调试

编辑


在我的例子中,第二个(更好的)解决方法是暂停抛出异常的线程。这也让我能够逐步完成插件的代码。

是的,即使我的插件没有加载,这种情况也会发生。所以我认为我的插件和它没有多大关系(啊,是的。没错。这是一个硬件异常。根据插件加载的时间,您可以使用适当的程序集关闭硬件异常。(如果我记得的话,我在为Cubase或Nuendo编写插件时遇到过这个问题。)在运行应用程序之前,您甚至可以让调试器为您关闭它。我想描述了如何为它们编写自己的异常处理程序。您可能可以安装一个忽略异常并继续运行的异常处理程序。@dB'还讨论了完全关闭异常的功能。可能值得一看。Thx!我来检查一下把这些都拿出来。