gnuradio代码调试,gnuradio自建模块源代码级调试指南,用vscode调试gnuradio代码

文章介绍了如何在VSCode中使用C/C++扩展和GDB调试GNURadio自建模块。首先,需要正确配置CMake以创建Debug版本,然后在GNURadioCompanion中构建测试流图。接着,通过设置VSCode的launch.json文件进行调试配置,包括指定Python解释器路径和流图文件位置。最后,设置断点并启动调试,实现代码级调试功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

gnuradio是一个软件无线电的开源软件,至于作用是啥也不多说了,能看到这篇文章的同学肯定已经在使用了。但是做毕设的过程中,发现GNURadio虽然有很多无线通信模块,但是导师要求自己复现或实现一些特殊功能模块的时候,就得自己写信号处理模块,但是写代码很少有不出错的,这时就需要用到调试,我也是摸索了一个月,在官网的指导以及ChatGPT的指导下终于成功vscode代码级的调试功能。

需要软件

1.vscode
2.gnuradio

步骤

  1. 安装 C/C++ 扩展
    在 VS Code 中安装 C/C++ 扩展。这可以通过在 VS Code 中搜索扩展或从 VS Code 的扩展市场中找到。
  2. 编写并安装自建模块
    就是
    一般步骤是演示的是在build文件夹下的步骤
cmake ../
make 
sudo make install
sudo ldconfig

而如果要用到调试的话这个时候cmake要变一下

cmake ../ -DCMAKE_BUILD_TYPE=Debug
make 
sudo make install
sudo ldconfig

注意此时编译的时候find的是python3还是python2,后面配置json文件需要使用。

  1. 在gnuradio-companion测试模块中搭建一个测试流图,然后点击生成一个流图(在运行按钮旁边的),注意生成的流图文件位置,待会配置.json文件的时候要用。

  2. 启动Vscode
    然后在自己的代码中设置断点

  3. 找到Vscode的Debug按钮就是有小蜘蛛的那个

  4. 选择配置环境“C++ (GDB/LLDB)”,这将打开launch.json文件并插入一些代码

  5. 配置launch.json文件,
    json文件大概如下所示

{
    "version": "0.2.0",
    "configurations": [
        
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/usr/bin/python3",
            "args": ["-u","/path/to/flowgraph.py"],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
    ]
}

program中有可能是python2,python3,自己根据之前第二步cmake的时候改。
args就是要调试的流图,根据之前第三步生成的流图位置修改。
修改这两个地方后保存。
8. 保存完后点击左上角的开始调试
9. 运行正常的话就可以进入代码级调试啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值