zoukankan      html  css  js  c++  java
  • 使用gdb调试

    启用gdb进行调试二进制程序,必须在二进制程序在采用gcc或g++编译时加入-g参数

    启动gdb进行调试的几种形式:

    直接启动gdb程序进行调试program程序

    gdb program
    

    启动gdb挂载入进程号为pid的进程进行调试,挂载后gdb会暂停该进程的执行

    gdb -p pid
    

    若程序运行崩溃产生了coredump文件,可采用该方式进行调试

    gdb program coredumpfile
    

    带入相应的参数启动gdb调试program程序

    gdb --args program arg1 arg2
    

    进入gdb后,使用相应的命令进行调试,常用命令包括:

    命令 简写 作用
    运行相关
    run r 开始运行程序
    continue c 继续运行,直到遇到断点或者程序结束
    next n 同栈帧内单步执行,即不进入函数调用中
    step s 单步执行,如遇函数则进入函数调用中
    finish 执行至当前栈帧结束返回
    quit 推出gdb
    打印相关
    backtrace bt 打印当前栈帧信息
    print arg p 打印当前栈帧中变量arg的值
    list l 打印当前执行点附近的代码
    info thread i t 打印进程内所有线程的顶层栈信息
    info breakpoints i b 打印设置的所有断点
    info locals 打印当前栈帧中所有局部变量的值
    断点相关
    break filename:line b 在文件名为filename的第line行设置断点
    delete n del 删除第n个断点
    disable n dis 停用第n个断点
    enable n en 启用第n个断点
    ignore n cnt 忽略断点ncnt
    切换相关
    frame n f 跳转至第n个栈帧
    thread n 跳转至第n个线程
    其它
    thread apply all cmd 所有线程执行cmd命令
    thread apply n1 n2 cmd 线程n1n2执行cmd命令
  • 相关阅读:
    大道至简读后感
    CodeWarrior10 如何复制Workspace配置到另一个workspace
    CCS 6新建文件自动生成注释
    C语言之标准头文件模板
    C语言之标准源文件模板
    正确理解c和c ++的复杂类型声明
    各种滤波算法的介绍及其实现
    函数的前部注释
    关于C语言头文件写法的探讨
    02_温湿度传感器
  • 原文地址:https://www.cnblogs.com/caiminfeng/p/10225489.html
Copyright © 2011-2022 走看看