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命令
  • 相关阅读:
    徐汉彬:Web系统大规模并发——电商秒杀与抢购
    编程语言十一月份排行
    windows C 与 linux C区别?
    inux 下c/c++ 连接mysql数据库全过程-----已经通过验证
    MySql可视化工具MySQL Workbench使用教程
    C语言连接数据库
    C语言连接MySql数据库
    C语言位运算
    python-函数
    python2.x和python3.x共存
  • 原文地址:https://www.cnblogs.com/caiminfeng/p/10225489.html
Copyright © 2011-2022 走看看