Ti816x GDB Server 调试

来源:互联网 发布:淘宝助理搬家失败 编辑:程序博客网 时间:2024/05/09 20:20
#Ti816x GDB 调试
    详细步骤见40行(指令模式下输入 40gg or 40G)
#GDB

    #板卡端 运行:
            gdbserver PCIP:PORT exe

    #PC端 运行:
            gdb exe
              target remote 板卡IP:PORT

#TEST

    #板卡端:
            gdbserver 10.111.137.37:2345 test.out

    #PC端:
            arm-none-linux-gnueabi-gdb test.out
            target remote 10.111.137.43:2345


#添加 -g 选项

    打开 component.mk 添加:    DVR_RDK_CFLAGS += -g
    重新编译


#gdb 调试

    在板卡端运行gdbserver ip:port exec 前首先开启core
    ulimit -c xxx (xxx 可以是任意数 ,一般选择 unlimited (无穷大))
    然后 可以运行 gdb exec core 之后 执行 bt 就可以看到 哪一行 crash 的
    up down 命令 进入 caller 和 callee 的栈帧 然后 print i打印可能出错的位置




    
    
#详细步骤:
    
    1.首先编译一个DEBUG版本的板卡端程序
        打开dvr_rdk文件夹下的component.mk 在 字符串 export DVR_RDK_LIBS 上面添加一行  DVR_RDK_CFLAGS += -g
        make -s 重新编译,将程序拷贝到板卡中
    2.在板卡端运行GDBserver
        首先运行init.sh load.sh ulimit -s 1024 等除去 运行 ./dvr_rdk_demo_mcfw_api.out 之外的一切脚本或者程序
        然后运行:
        ulimit -c unlimited
        gdbserver PCip:port ./dvr_rdk_demo_mcfw_api.out
    3.在PC端运行gdb程序
        首先进入dvr_rdk目录

        arm-none-linux-gnueabi-gdbtui
        进入GDB调试程序
        target remote Boardip:port


        然后就可以使用gdb调试调试了

        一般调试:输入 continue 启动板卡端程序
        当运行出现段错误时,从板卡端拷贝出core 文件(可能有点大)

        然后在PC 端运行 arm-none-linux-gnueabi-gdbtui  core

        进入gdb 调试
        输入bt 可以看到栈消息
        up down 进入 caller 和 callee 栈

0 0
原创粉丝点击