• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

XiaoXiaoli

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Linux编程_gdb

基本调试命令

命令 命令缩写 命令说明
set args  

设置主程序的参数

例如:ta_tranf 20210127 099

设置参数的方法是:

gdb ta_tranf

(gdb) set args 20210127 099

break b

设置断点,b 20 表示在第20行设置断点,可设置多个断点

run r

开始运行程序,程序运行到断点位置会停下来,如果没有遇到断点,程序会一直运行下去

next n

执行当前语句,如果当前语句为函数调用,不会进入函数内部。

print p

显示变量的值,例如 p name ,表示显示变量name的值。

step s

执行当前语句,如果该语句为函数调用,则进入函数执行第一条语句。

注意了,如果函数是库函数或是第三方提供的函数,用s也是进不去的,因为没有源代码,如果是自己定义的函数,有源代码就能够进去。

continue c

程序继续执行,知道遇到下一个断点。

set var name=value  

设置变量的值,假设程序有两个变量,int i;char name[20];

set var ii = 10;

set var name="哈哈";注意不是strcpy

quit q

退出gdb环境

 

gdb调试多进程

调试父进程:set follow-fork-mode parent (缺省)

调试子进程:set follow-fork-mode child

设置调试模式:set detach-on-fork [on|off],缺省是on,表示调试当前进程时其他进程继续运行。如果是off调试当前进程时,其他进程被gdb挂起。

查看调试的进程:info inferios

切换当前调试的进程:inferior 进程id

gdb调试多线程

使用日志方式调试多进程和多线程程序

 

posted on 2021-01-27 21:23  XiaoXiaoli  阅读(82)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3