问题描述:

VS Code的终端使用./ns3 build 和run均正常,且能在/build目录下生成后缀为.debug的文件。

使用图片处的调试和运行会出现问题,报错为error: ns3/applications-module.h: 没有那个文件或目录

Tips:可以把下述操作思路粘贴给大模型,以适配自己的工作目录,生成代码和配置

环境配置:

Ubuntu22.04

c++ 11.4.0

g++11.4.0

python3.9.13

cmake3.22.1

原因:(个人推测,仅供参考)

直接点击上图所示方式,会使用默认的gcc、g++等编译器进行编译,生成对应.debug后缀文件,这个逻辑在正常的c++代码上是可以使用的,但是NS3的编译,需要./ns3 进行,直接点击图上的图标,无法生成.debug后缀文件。(下图用来展示这些文件的位置,图中有这些文件,是因为进入VS Code有时会默认使用ns3帮你全build一遍,你把某个文件删除了,点击图标运行,是不会生成这个文件的)

解决办法:

1.测试在终端使用./ns3 进行build和run有无问题(可以正常跑,且生成build文件内的.debug文件)

Tips:如果不能正确生成带debug后缀的文件,只有default

./ns3 clean
//--disable-werror 用于处理一些由于unused variable引起的error
./ns3 configure --build-profile=debug --disable-werror
./ns3 build

2.测试终端使用dbg进行debug

指令参考:

可以进行:

gdb ./build/scratch/ns3.46.1-fifth-debug

终端可以进行

(gdb) run
(gdb) break main
(gdb) continue

等操作

3.配置launch.json(原launch.json中如果有其它额外配置,请注意备份和处理)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "ns-3 rdma-simulation (click)",
            "type": "cppdbg",
            "request": "launch",

//这里的名称请使用变量传参,这里为了演示方便
            "program": "${workspaceFolder}/build/scratch/ns3.46.1-fifth-debug",
            "args": [],
            "cwd": "${workspaceFolder}/build",
            "environment": [
                {
                    "name": "LD_LIBRARY_PATH",
                    "value": "${workspaceFolder}/build/lib"
                }
            ],
            "stopAtEntry": true,
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing"
                }
            ]
        }
    ]
}

点第二个进入调试

点击绿色箭头

感谢GPT老师的大力相助!!!

更多推荐