• set follow-fork-mode child,被调试进程执行 fork 时,自动 attach;
  • set scheduler-locking on,调试时,禁用线程切换,可选 on/off/step,默认 off;
  • symbol-file target.debug,添加独立的 debuginfo 文件;
  • i sharedlibrary,查看共享文件映射信息;
  • add-symbol-file libxx.debug ADDRESS,添加共享文件的 debuginfo 文件,ADDRESS 是共享文件的映射始址,由 i sharedlibrary 获得;
  • gcc test.cpp -g -g3,调试信息中保留 MACRO;
  • set logging on,GDB 的所有输入/输出都会被写入当前目录下的 gdb.txt;
  • set print pretty on,打印对象,尤其是结构体时,格式更加友好;
  • p $rip,打印 rip 寄存器;
  • i reg,查看寄存器集,i registers-all 显示全部寄存器;
  • display/i $rip,每次断点,打印下一条指令;
  • l *0x608048,显示某指令地址对应的代码行,可执行文件包含调试信息时,亦可用 addr2line;
  • x/40a $rsp,以地址形式打印 stack,栈乱掉时可救命;
  • return 0,停止调试当前函数,并以指定值返回;
  • p {tair::StorageManager}0x608048,将指定地址以某类型打印;
  • p *array@10,打印数组 array 的前十个元素;
  • gcore,将被调试进程 core dump,gcore 还是一个独立的命令,随 GDB 发布。
Tags: .
你好!除了代码,此处没有多少原创之物,皆为本人搜集、整理、总结之记录与心得,欢迎转载分享!转载时请尽量注明出处,将不胜感激。祝你健康、快乐!
Home

Be the first to comment on this entry.

You must be logged in to post a comment.