我有一个C++程序。在程序中的某处(难以重现,但可重现)计算会导致浮点蜂设置为NaN。由于涉及NaN的浮点运算会导致NaN,因此传播速度很快。有什么方法可以设置编译器(gcc4.4)或调试器(gdb)在浮点运算导致NaN时停止?这将非常有用。谢谢!内森PS:这可能很重要:我在ubuntulinux10.10下工作。 最佳答案 您可以启用浮点异常-请参阅glibcControlFunctions-当你的NaN值产生时,你会得到一个SIGFPE 关于c++-产生NaNfloat时停止调试器,
在我的c++程序上使用GDB时遇到问题。我想为我的类成员函数设置一个断点,但我不确定如何执行此操作的语法。我的程序现在正在运行,我只是想学习使用GDB。我的问题是我在网上找到的所有信息实际上只涉及一个main()文件,没有其他函数或类,如果它们涉及类,它只使用带有voidreturn语句的函数。我有一个二叉搜索树类。我想在我的程序中的一个函数处设置一个断点。这是我的头文件的部分。classBST{BST()...private:intadd((BST*root,BST*src);}我正在远程登录到学校的命令行linux服务器。我可以使用g++-g*.cpp让GDB与我的程序一起正常运行
在我的c++程序上使用GDB时遇到问题。我想为我的类成员函数设置一个断点,但我不确定如何执行此操作的语法。我的程序现在正在运行,我只是想学习使用GDB。我的问题是我在网上找到的所有信息实际上只涉及一个main()文件,没有其他函数或类,如果它们涉及类,它只使用带有voidreturn语句的函数。我有一个二叉搜索树类。我想在我的程序中的一个函数处设置一个断点。这是我的头文件的部分。classBST{BST()...private:intadd((BST*root,BST*src);}我正在远程登录到学校的命令行linux服务器。我可以使用g++-g*.cpp让GDB与我的程序一起正常运行
我对GDB有点陌生。我希望有人可以帮助我完成一些应该很简单的事情,我使用过Google/docs,但我只是错过了一些东西。人们使用GDB调试线程应用程序的“正常”方式是什么?我正在使用pthreads。我只想看一个线程-我看到的两个选项是a)告诉调试器以某种方式附加到特定线程,这样步进不会导致每次上下文切换时都跳转线程b)告诉调试器暂停/释放任何“无趣”的线程我更愿意选择路线b)-阅读GDB的帮助我没有看到关于此的命令,提示? 最佳答案 查看setscheduler-lockingon的文档。注意:如果您挂起其他线程,并且其中一个持
我对GDB有点陌生。我希望有人可以帮助我完成一些应该很简单的事情,我使用过Google/docs,但我只是错过了一些东西。人们使用GDB调试线程应用程序的“正常”方式是什么?我正在使用pthreads。我只想看一个线程-我看到的两个选项是a)告诉调试器以某种方式附加到特定线程,这样步进不会导致每次上下文切换时都跳转线程b)告诉调试器暂停/释放任何“无趣”的线程我更愿意选择路线b)-阅读GDB的帮助我没有看到关于此的命令,提示? 最佳答案 查看setscheduler-lockingon的文档。注意:如果您挂起其他线程,并且其中一个持
我正在使用gdbserver从嵌入式设备进行调试:./gdbserverHOST:5000/home/test_app在我的PC中,我是这样执行gdb的:arm-none-linux-gnueabi-gdbtest_app应用程序执行后,我收到要调试的Segfault,但无法知道是哪一行产生的:ProgramreceivedsignalSIGSEGV,Segmentationfault.[SwitchingtoThread715]0x31303030in??()(gdb)bt#00x31303030in??()#10x0000dff8in??()#20x0000dff8in??()Ba
我正在使用gdbserver从嵌入式设备进行调试:./gdbserverHOST:5000/home/test_app在我的PC中,我是这样执行gdb的:arm-none-linux-gnueabi-gdbtest_app应用程序执行后,我收到要调试的Segfault,但无法知道是哪一行产生的:ProgramreceivedsignalSIGSEGV,Segmentationfault.[SwitchingtoThread715]0x31303030in??()(gdb)bt#00x31303030in??()#10x0000dff8in??()#20x0000dff8in??()Ba
我正在开发一个调用native代码的Android程序。该native代码存在段错误,并且由于通过androidNDK进行调试并不是真正可行的,所以我留下了一个如下所示的调用堆栈(从ddms捕获)。我的问题是,我是否可以在事后手动运行某些东西,将调用堆栈中的内存地址转换为函数名称,这样我就可以看到这是哪里出现了段错误。谢谢02-2214:47:39.231:DEBUG/dalvikvm(504):Tryingtoloadlib/data/data/android.TestApp/lib/libDM.so0x43b7c93802-2214:47:39.301:DEBUG/dalvikvm
我正在开发一个调用native代码的Android程序。该native代码存在段错误,并且由于通过androidNDK进行调试并不是真正可行的,所以我留下了一个如下所示的调用堆栈(从ddms捕获)。我的问题是,我是否可以在事后手动运行某些东西,将调用堆栈中的内存地址转换为函数名称,这样我就可以看到这是哪里出现了段错误。谢谢02-2214:47:39.231:DEBUG/dalvikvm(504):Tryingtoloadlib/data/data/android.TestApp/lib/libDM.so0x43b7c93802-2214:47:39.301:DEBUG/dalvikvm
我有一个导入到EclipseCDT的C++项目。我可以使用Makefile和参数设置来构建和运行项目。但是,当我尝试添加调试点并运行“调试为本地c/c++应用程序”时,它会抛出“LaunchingprojectName”遇到问题的错误。命令gdb--version出错通过展开详细信息,它给出:Errorwithcommand:gdb--version无法运行程序“gdb”:未知原因我之前通过Macports安装了gdb。如果我输入命令ggdb它会返回版本信息。如果我输入whichggdb,它会给出/opt/local/bin/ggdb。我尝试将“PATH”添加到调试配置->环境变量并为