您的位置:首页 > 其它

常用gdb命令

2013-09-13 16:55 441 查看
Xcode内置GDB,有时程序崩溃需要用gdb调试,下面是常用的GDB命令:

1.使用backtrace命令,简写bt,用来查看当前进程的函数调用栈情况,以此回溯到我们自己所写的方法,有时可以看到出错在哪一行;(真怀恋在vs中的编程,找问题哪须这么麻烦)。

2.使用list命令,简写l,回到栈列表,会将当前栈里的程序代码罗列出来,方便问题查找;

3.使用break命令,简写b,设置断点,格式:b filename:line 即在哪个文件的哪一行设置断点

如:b test.m:10

4.使用next命令,简写n,单步调试

5.使用continue,简写c,跳出当前断点继续执行

6.使用回车键,将继续按照上条指令执行

7.使用print,简写p,可打印表达式和变量的值,在print命令后追加/format可以格式化输出。/format是一个gdb的格式化字符串,比较有用的格式化字符有 x:十进制数; c:字符; a:地址

8.使用print-object,简写为po,用来输出obj-c中的对象。它的工作原理是,向被调用的对象发送名为debugDescription的消息。它和常见的description消息很像

9.使用x命令,格式:x/format address。其中address很简单,它通常是指向一块内存的表达式。但是format的语法就有点复杂了。它由三个部分组成:第一个是要显示的块的数量;第二个是显示格式(如x代表16进制,d代表十进制,c代表字符);第三个是每个块的大小。值得注意的是第三部分,即块大小是用字符对应的。用b,
h, w, g 分别表示1, 2, 4, 8 bytes。举例来说,用十六进制方式,打印从ptr开始的4个4-byte块应该这样写:

(gdb) x/4xw ptr

10.使用set命令,设置变量的值,set x=0

11、info 命令,查看内存地址所在信息

12、show 命令:显示GDB相关信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: