美文网首页
GDB编译及调试

GDB编译及调试

作者: 咖喱鸡蛋 | 来源:发表于2018-12-21 13:47 被阅读0次

1、gdb编译g    

一直客户机用8.2,主机用7.8也能用,但是感觉有点问题,为了统一本版本,又再c++11情况下。

2、编译方法

vim ./gdb/common/gdb_assert.h +26

将 #define gdb_static_assert(expr) \

    extern int never_defined_just_used_for_checking[(expr) ? 1 : -1]

修改为:

  #define gdb_static_assert(expr) \

    extern int never_defined_just_used_for_checking[(1) ? 1 : -1]

---------------------

7.8.0 This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=arm-cortex_a9-linux-gnueabi".

7.10 --host=x86_64-pokysdk-linux --target=arm-poky-linux-gnueabi

$./configure --target=arm-linux --program-prefix=arm-linux- --prefix=/usr/local/arm-gdb

--target=arm-linux意思是说目标平台是运行于ARM体系结构的linux内核;--program-prefix=arm-linux-是指生成的可执行文件的前缀,比如arm-linux-gdb,--prefix是指生成的可执行文件安装在哪个目录,这个目录需要根据实际情况作选择。如果该目录不存在,会自动创建,当然,权限足够的话。

  --build=编译该软件所使用的平台

  --host=该软件将运行的平台

  --target=该软件所处理的目标平台

  ubuntu(poky 自己给了个环境为:./configure --host=arm-poky-linux --target=arm-poky-linux-gnueabi --program-prefix=arm-poke- --prefix=/home/huiwei/nfs_dir/out_bin/gdb1)

  ./configure --target=arm-linux-gnueabihf --program-prefix=arm- --prefix=/home/huiwei/nfs_dir/out_bin/gdb80

./configure --host=i386-linux --target=arm-poky-linux-gnueabi --program-prefix=arm-poke- --prefix=/home/huiwei/nfs_dir/out_bin/gdb1

  ./configure --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --program-prefix=arm- --prefix=/home/huiwei/nfs_dir/out_bin/gdb80/gdbserver

3、GDB使用

见《https://www.cnblogs.com/jlmgary/p/6170435.html》

4、VSCODE GDB配置

{

    // 使用 IntelliSense 了解相关属性。

    // 悬停以查看现有属性的描述。

    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387

    "version": "0.2.0",

    "configurations": [

        {

            "name": "(gdb) Launch",

            "type": "cppdbg",

            "request": "launch",

            "program": "${workspaceFolder}/lib/autodrive",

            "miDebuggerPath": "/opt/fsl-imx-fb/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb",

            "miDebuggerServerAddress": "192.168.1.71:1234",

            "setupCommands": [

                {

                    "description": "Enable pretty-printing for gdb",

                    "text": "-enable-pretty-printing",

                    "ignoreFailures": true

                },

                {

                    "text": "set sysroot"    //不加载远程so文件,不调试动态链接库,跳过read xxx.so from remote target,能减少每次调试准备时间

                }

            ],

            "args": [],

            "stopAtEntry": false,

            "cwd": "${workspaceFolder}",

            "environment": [],

            "externalConsole": true,

            //"preLaunchTask": "make",  // 代码有修改,先执行make编译任务

            "MIMode": "gdb",

            "logging": {

                "moduleLoad": false,

                "trace": true,

                "engineLogging": true,

                "exceptions": true

                // "traceResponse": true

            }

        }

    ]

}

相关文章

  • GDB编译及调试

    1、gdb编译g 一直客户机用8.2,主机用7.8也能用,但是感觉有点问题,为了统一本版本,又再c++11情况下。...

  • Linux下C++开发常用工具

    gdb 使用gdb的时候, 需要在编译时使用-g命令, 在编译时加入必要的C库gdb + filename进入调试...

  • gdb调试 编译加上-g参数 gcc test1.c -g -o test1 进入调试 gdb test1 开始调...

  • Linux环境中 Android NDK中gdb调试详解

    gdb调试 编译加上-g参数 gcc test1.c -g -o test1 进入调试 gdb test1 开始调...

  • gcc/gdb

    gcc esc----iso 指定头文件目录 使编译后文件支持gdb调试 gdb gcc -g之后开始 gdb a...

  • Linux调试-GDB

    启动GDB调试 在使用GDB之前,编译出带调试信息的程序,调试信息中包含了函数和变量所在文件和行号信息,通过gcc...

  • GDB调试

    一、让程序可被GDB调试 不是所有可执行文件都可被GDB调试,在编译时需要加-g参数。确定已被编译的可执行文件是否...

  • GDB调试

    一、让程序可被GDB调试 不是所有可执行文件都可被GDB调试,在编译时需要加-g参数。确定已被编译的可执行文件是否...

  • gcc相关

    gcc编译常用指令 gcc编译过程 gdb调试流程 第一步生成调试文件 第二步 根据指令调试

  • GDB常用命令

    调用gdb编译需要在g++后面加 -g参数再加-o; [root@redhat home]#gdb 调试文件:启动...

网友评论

      本文标题:GDB编译及调试

      本文链接:https://www.haomeiwen.com/subject/typmkqtx.html