GDB编译及调试

2018-12-21  本文已影响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

            }

        }

    ]

}

上一篇 下一篇

猜你喜欢

热点阅读