gdb调试器使用相关

一 mac下gdb签名错误:

一个常用的解决方法就是给gdb授予系统完全信任的代码签名权利,以对其他进程。

首先,需要创建一个系统代码签名信任证书:

  1. 启动“钥匙串访问”应用(/Applications/Utilities/Keychain Access.app)
  2. 打开菜单:钥匙串访问-》证书助理-》创建证书...
  3. 输入证书名称,如:gdb-cert;
  4. 选择身份类型:自签名根证书 (Identity Type to Self Signed Root)
  5. 选择证书类型:代码签名 (Certificate Type to Code Signing)
  6. 勾选:让我覆盖这些默认签名 (select the Let me override defaults)
  7. 一路继续,直到选择存放证书地址,选择:系统
  8. 这样证书就创建好了,还要设置证书自定义信任
  9. 右键刚才创建的 gdb-cert 证书,选择“显示简介” (Get Info)
  10. 点击“信任”,会显示可以自定义的信任选项
  11. “代码签名”选择“总是信任” (Code Signing to Always Trust)

其次,将证书授予gdb,执行命令

>codesign -s gdb-cert /path to gdb


二,调试常用命令

gdb  #查看gdb调试器的信息

gdb filename  #调试该可执行文件,该文件在编译时,必须加入-g或者-ggdb选项才可以

## 常用命令

file     #装入想要调试的可执行文件

run     #执行当前被调试的程序

kill      #终止正在调试的程序

step    #执行一行源代码并且进入函数的内部

next    #执行一行源代码,但不进入函数的内部

break  #在程序里设置断点,使程序执行到这里时被挂起

print   #打印表达式或者变量的值,还可以用来对变量进行复赋值

display #设置自动显示的表达式或者变量,当程序停下或者单步跟踪时,这些变量会自动显示当前值

list      #列出产生执行文件的源代码的一部分

quit     #退出gdb

watch  #使用户能够监视一个变量的值而不管其何时被改变

backtrace #回溯跟踪

frame n   #定位到发生错误的代码段,n为backtrace命令的输出结果中的行号

examine  #查看内存地址中的值

jump        #是程序跳转执行

signal       #产生信号量

return       #强制函数返回

call           #调用函数

make        #使用户不退出gdb产生可执行文件

shell          #不离开gdb就能执行shell命令

bt              #显示内存堆栈

f  n            #进入堆栈号为n的堆栈 

p  a           #打印变量a的值

x/2d          #打印连续两个整型变量的值

x/3cb        #打印3个字符,按字节打印


你可能感兴趣的:(软件使用)