Tag: gdb

GDB VS LLDBdebugging器

GDB和LLDBdebugging器有什么区别? 我最近将我的Xcode版本从4.2升级到了4.3,并开始接到警告,要求将我的debugging器从GDB升级到LLDB。

在GDB中引发特定exceptiontypes时如何中断?

根据文档,我可以通过使用条件断点来打破特定的exceptiontypes。 不过,条件的语法对我来说并不是很清楚: condition bnum <expression> 看看expression式语法,我认为这是我需要的模式: {type} addr 但是,我不知道我应该通过addr参数。 我尝试了以下内容: (gdb) catch throw (gdb) condition 1 boost::bad_function_call * 但它不起作用(gdb中断所有exceptiontypes)。 谁能帮忙? 更新 我也试过@亚当的build议,但它会产生一个错误信息: (gdb) catch throw boost::bad_function_call Junk at end of arguments. 没有boost:: namespace: (gdb) catch throw bad_function_call Junk at end of arguments. 解决方法 破坏bad_function_call的构造函数。

如何使用inputredirect的gdb?

在terminal,我有 myapp < myfileinput 但是如果我想用gdb, gdb myapp < myfileinput 它没有正确运行。 如何在这里使用gdb?

如何在GDB中漂亮地打印STL容器?

我按照GDB维基上的说明安装了用于查看STL容器的python漂亮打印机。 我的~/.gdbinit现在看起来像这样: python import sys sys.path.insert(0, '/opt/gdb_prettyprint/python') from libstdcxx.v6.printers import register_libstdcxx_printers register_libstdcxx_printers (None) end 但是,当我运行GDB并尝试打印STLtypes时,我得到以下内容: print myString Python Exception <class 'gdb.error'> No type named std::basic_string<char>::_Rep.: $3 = 任何人都可以点亮这个? 我运行的是GDB 7.4附带的Ubuntu 12.04。

分段错误的行号

有没有我可以设置的gcc选项,会给我分段错误的行号? 我知道我可以: 逐行debugging 将printfs放在代码中以缩小范围。 编辑: bt /在GDB上给没有堆栈。 有用的build议

调用gdb自动将parameter passing给正在debugging的程序

我想编写一个脚本(在某些情况下)将执行gdb并自动运行一些带有一些参数Y的程序X.一旦程序完成执行,用户应该保持在gdb的提示符下,直到s / he明确退出。 一种方法是让脚本将run命令加上参数Y输出到某个文件F,然后让脚本调用gdb,如下所示: gdb X < F 但有没有办法做到这一点,而不引入临时文件? 谢谢。

GDB:观察点一个固定的地址

对于我目前的embedded式应用程序,我试图把GDB观察点放在一个固定的内存地址上。 作为一个例子,我的应用程序更新以下地址:0x10793ad0。 为了确定代码的哪一部分正在破坏这个值,我试了一下 看0x10793ad0 即使GDB在此之后不打印任何错误,即使在执行开始和结束之间validation该值正在被修改,它也不会在执行期间中断。 问题: a)我真的可以把手表放在一个固定的地址吗? 我在网上没有遇到过这样的例子。 b)这是正确的方式,还是我错过了什么?

只有在不使用debugging器的情况下才能执

我有一个multithreading的C程序,它在程序中的特定点处始终产生分段错误。 当我用gdb运行它时,没有显示错误。 你能想到为什么只有在不使用debugging器时才会发生故障的原因吗? 这是非常烦人的不能用它来find问题!

缺less单独的debuginfos,请使用:debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc ++ – 4.4.6-3.el6.i686

CentOS 6.2 + GNU gdb(GDB)红帽企业Linux(7.2-50.el6) 当我用GDBdebugging一个简单的c ++代码时,我看到了下面的警告: Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686 我已经尝试了下面的方法,没有一个解决了这个问题: searchSO yum install glibc debuginfo-install glibc-2.12-1.47.el6_2.9.i686 libgcc-4.4.6-3.el6.i686 libstdc++-4.4.6-3.el6.i686 实际上,当我一个接一个安装这些RPM的时候,我才意识到已经安装好了。 [root@localhost Excluded]# rpm -ivh glibc-2.12-1.47.el6_2.9.i686.rpm Preparing… ########################################### [100%] package glibc-2.12-1.47.el6_2.9.i686 is already installed [root@localhost Excluded]# ls *.rpm glibc-2.12-1.47.el6_2.9.i686.rpm libgcc-4.4.6-3.el6.i686.rpm [root@localhost Excluded]# rpm -ivh libgcc-4.4.6-3.el6.i686.rpm Preparing… ########################################### [100%] package libgcc-4.4.6-3.el6.i686 is […]

如何在gdb中打印<incomplete type>variables

有时gdb会为某些types的variables打印“不完整types”。 这是什么意思?我们如何看待这个价值呢?