gdb常用调试命令

  • help(h):查看命令帮助,具体查询可在gdb中输入h + 命令,

  • run&start

    • run: 重新开始运行文件;
    • run argv[1] argv[2]:
    • start:单步执行,运行程序,停在第一执行语句;
  • list(l):查看源代码

    • l n:从第n行开始查看代码,一般会展现n行上下文;
    • l 函数名:查看具体函数;
  • next(n)&step(s):单步调试

    • n:单步调试(逐过程,函数直接执行)
    • s:单步调试(逐语句:跳入自定义函数内部执行)
  • break(b):设置断点

    • b num:在第num行设置断点;
    • info(i) b(breakpoints):查看当前设置的所有断点;
    • enable b (breakpoints):启用断点;
    • disable b (breakpoints):禁用断点;
    • delete breakpoints(b) num: 删除第num个断点,简写d;
  • backtrace & frame

    • backtrace(bt):查看函数调用栈帧
      • bt n:显示栈顶的几个层的信息;
      • bt -n:显示栈底的几个层的信息;
    • frame(f):查看某一层的信息,具体为代码调用处
      • f n:n表示某一个栈帧的编号,默认为当前栈顶的栈信息(即frame 0);
      • info(i) f:查看当前栈层的信息,大多数为运行时的内存地址;
  • disassemble:查看汇编语言

    • disassemble:就可以展现当前函数栈中的汇编语言;
    • b *当前函数栈名+行号:在汇编语言上打断点;再运行disassemble就可以定位到断点处;
    • disassemble /m 函数栈名:展现汇编语言的同时也展现源码;
  • print,set&x:

    • print(p):打印变量值及地址
      • p 变量名;
      • p *array@len:array为数组的首地址,len为数据的长度;
      • p 数组名:可展现详细的数组信息
      • set print pretty on:可以很漂亮的输出接口体
    • set:设置变量的值
      • set args: 设置主程序的参数
      • set var name=value: 设置变量名为name的值为value
    • x address:查看地址address的内存内容;
  • finish, continue &quit:

    • finish:结束当前函数,返回到函数的调用点;
    • continue(c): 继续运行,直到有断点处,若没有断点,则一直运行下去;
    • quit(q):退出gdb
  • display,watch:

    • 待定???
  • info(i):可以查看很多信息

    • i register

      info address -- Describe where symbol SYM is stored.
      info all-registers -- List of all registers and their contents, for selected stack frame.
      info args -- All argument variables of current stack frame or those matching REGEXPs.
      info auto-load -- Print current status of auto-loaded files.
      info auxv -- Display the inferior's auxiliary vector.
      info bookmarks -- Status of user-settable bookmarks .
      info breakpoints -- Status of specified breakpoints (all user-settable breakpoints if no argument).
      info checkpoints -- IDs of currently known checkpoints.
      info classes -- All Objective-C classes, or those matching REGEXP.
      info common -- Print out the values contained in a Fortran COMMON block.
      info copying -- Conditions for redistributing copies of GDB.
      info dcache -- Print information on the dcache performance.
      info display -- Expressions to display when program stops, with code numbers.
      info exceptions -- List all Ada exception names.
      info extensions -- All filename extensions associated with a source language.
      info files -- Names of targets and files being debugged.
      info float -- Print the status of the floating point unit.
      info frame -- All about the selected stack frame.
      info frame-filter -- List all registered Python frame-filters.
      info functions -- All function names or those matching REGEXPs.
      info guile -- Prefix command for Guile info displays.
      info handle -- What debugger does when program gets various signals.
      info inferiors -- Print a list of inferiors being managed.
      info line -- Core addresses of the code for a source line.
      info locals -- All local variables of current stack frame or those matching REGEXPs.
      info macro -- Show the definition of MACRO, and it's source location.
      info macros -- Show the definitions of all macros at LINESPEC, or the current source location.
      info mem -- Memory region attributes.
      info module -- Print information about modules.
      info modules -- All module names, or those matching REGEXP.
      info os -- Show OS data ARG.
      info pretty-printer -- GDB command to list all registered pretty-printers.
      info probes -- Show available static probes.
      info proc -- Show additional information about a process.
      info program -- Execution status of the program.
      info record -- Info record options.
      info registers -- List of integer registers and their contents, for selected stack frame.
      info scope -- List the variables local to a scope.
      info selectors -- All Objective-C selectors, or those matching REGEXP.
      info set -- Show all GDB settings.
      info sharedlibrary -- Status of loaded shared object libraries.
      info signals -- What debugger does when program gets various signals.
      info skip -- Display the status of skips.
      info source -- Information about the current source file.
      info sources -- All source files in the program or those matching REGEXP.
      info stack -- Backtrace of the stack, or innermost COUNT frames.
      info static-tracepoint-markers -- List target static tracepoints markers.
      info symbol -- Describe what symbol is at location ADDR.
      info target -- Names of targets and files being debugged.
      info tasks -- Provide information about all known Ada tasks.
      info terminal -- Print inferior's saved terminal status.
      info threads -- Display currently known threads.
      info tracepoints -- Status of specified tracepoints (all tracepoints if no argument).
      info tvariables -- Status of trace state variables and their values.
      info type-printers -- GDB command to list all registered type-printers .
      info types -- All type names, or those matching REGEXP.
      info unwinder -- GDB command to list unwinders.
      info variables -- All global and static variable names or those matching REGEXPs.
      info vector -- Print the status of the vector unit.
      info vtbl -- Show the virtual function table for a C++ object.
      info warranty -- Various kinds of warranty you do not have.
      info watchpoints -- Status of specified watchpoints (all watchpoints if no argument).
      info win -- List of all displayed windows.
      info xmethod -- GDB command to list registered xmethod matchers.

posted @ 2021-08-28 13:51  绍荣  阅读(786)  评论(0)    收藏  举报