gdb

c – else语句似乎被忽略

如果内部if语句无法求值为true,那么我希望执行else块(appProtocol设置为APP_PROTO_RTP).但是,这不会发生.相反,似乎else语句被完全忽略.我不知道为什么会这样.从gdb会话中可以看到,第一次if语句工作,appProtocol设置为APP_PROTO_SIP(如预期的那样).第二次通过,如果失败,而不是进入else并将appProtocol设置为APP_PROTO

如何使gdb以十六进制打印字符串的不可打印字符,而不是以ASCII形式保留ascii字符?

我已经尝试过各种格式参数,如/c和/x,但没有一个获得我正在寻找的效果.我也玩过printf,但是无法达到预期的效果.更新:我正在使用“GNUgdb7.0.1-debian”.更新:我也玩过x.如果我做x/c它打印八进制和十进制非打印字符,然后打印可打印的字符与ascii和十进制.如果我做x/s,输出与p命令完全相同.如果我做x/x,它只输出十六进制,然后我们丢失可打印部分的ascii字符.更新:这reference,除非不完整,表明我所期望的是不可用,但任何人都可以确认?

c – gdb:显示某些数据的typeinfo

基本上,我想得到typeid.name(),即这个的真实类型.我想在GDB中得到这个.我尝试打印typeid,但它说,typeid是未知的.解决方法见Bugtracker

objective-c – NSLog在LLDB中没有输出.在GDB工作

由于最近更新Xcode4.3现在似乎默认为LLDB调试器.我刚刚发现我的NSLog语句没有显示在控制台中.搜索答案后,找不到,我切换回GDB,工作正常.我发现其他人在LLDB中提到NSLog,所以我不明白为什么在我的情况下失败.应该不行吗?解决方法从LLDB切换回GDB也为我工作.对于不熟悉xcode的用户,将运行时调试器更改回GDB:>Cmd选项R打开窗格>将调试器更改为“GDB”这将必须做,直到错误被修复.

gdb调试器多个源文件

当我将gdb附加到使用许多源文件的进程时,有时我想在文件y的行x上设置一个断点.如何指定gdb的文件?

在GGG上,如何使Ctrl-C停止程序?

我在Windows上,在MinGW下构建的可执行文件上运行GDB.该程序有一个无限循环.我想通过按Ctrl-C找到它.当我做,程序和GDB退出.所有关于这个问题的帮助似乎假定我在Linux上.解决方法这是因为gdb没有正确处理GUI(非控制台)程序的ctrl-c事件.您可以在这里找到解决方案http://www.mingw.org/wiki/Workaround_for_GDB_Ctrl_C_In

c – gdb:为SIGBUS处理程序设置一个断点

我试图使用GDB调试一个简单的停止和复制垃圾回收器(用C编写).GC通过处理SIGBUS工作.我在我的SIGBUS信号处理程序的顶部设置了一个断点.我告诉GDB将SIGBUS传递给我的程序.但是,它似乎没有起作用.以下程序(内联解释)显示了我的问题的本质:我在MacOSX10.6上编译并运行程序,并获得我期望的输出:我想使用GDB运行和调试这个程序.特别是,我想在gc函数中设置一个断点(真的是gc

在GDB中打印字符数组到文件

我有一个包含大约100k个条目的字符数组.似乎在功能我的时候打印*缓冲区过早切断.有没有什么可以做的,可以延长gdb将打印到控制台的字符数量?如果没有,我可以将此变量打印到文件?我试图使用转储命令,但似乎没有想出正确的事情.解决方法如果您想要打印ASCII字符符号,请使用x/c.BTW,我完全同意WilliamPursell在你的问题上的评论:“我发现在执行数据转储的代码中定义函数更容易,只需从gdb调用它们”

使用gdb跳到下一个“指令”

我试图计算金丝雀价值设定和检查机制.拆卸主机时,我得到我使用0x0804840e设置一个断点程序流程停止在这个断点之后,我希望gdb去下一个指令而不是下一行的c代码.我不认为我可以使用下一个这个.那么除了在每个指令上设置断点之外,还有什么其他选项?

c – GNU gdb无法进入模板函数(OS X Mavericks)

我在OSXMavericks下安装了gdb7.7.我编码了它,所以当我调试不包含模板的c文件时它工作正常.但是,它无法进入模板函数.当我在调试会话中键入step命令时,它只是跨越该功能,就好像模板函数中不存在调试符号一样.我的模板功能甚至不是一个成员函数,只是在main.cpp中定义的一个简单的函数.我用g-g-O0main.cpp编译我的程序,甚至尝试-fno-inline,仍然相同的行为,不能进入模板函数.这是一个gdb已知问题在OSX小牛?