gdb调试器使用相关

    xiaoxiao2021-03-26  20

    一 mac下gdb签名错误:

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

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

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

    转载请注明原文地址: https://ju.6miu.com/read-660562.html

    最新回复(0)