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命令
  • 相关阅读:
    ZooKeeper基本原理
    Ubuntu上部署C# 网站 步骤简单记录
    代码生成助手
    微信授权封装,欢迎使用
    c#微信开发,使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友等
    ab.exe使用
    【分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
    SVN服务器搭建(一)
    MVC四大筛选器—ActionFilter&ResultedFilter
    MySQL参数化查询的IN 和 LIKE
  • 原文地址:https://www.cnblogs.com/caiminfeng/p/10225489.html
Copyright © 2011-2022 走看看