IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    GDB 『高级』命令

    dutor发表于 2013-09-23 12:47:40
    love 0
    • 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 发布。


沪ICP备19023445号-2号
友情链接