【openvino】GDB单步调试环境

openvino的单步调式并不复杂,这里简单还原下当时的流程:
没有GDB的需要先安装下

apt install gdb
  1. 安装openvino时使用源码安装方式,cmake编译选项如下:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DNGRAPH_DEBUG_ENABLE=ON \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6 ..
  1. 编译完成并安装完成后,进入到安装后的目录,修改sample/cpp/CMakeLists.txt,添加一行全局变量
add_definitions("-Wall -g")
  1. 执行sample的编译,找到编译完成后的二进制,例如classification_sample_async,
    run执行带有命令行参数的二进制:
gdb classification_sample_async
run -i /opt/intel/openvino_2021/deployment_tools/demo/car.png -m ~/openvino_models/ir/public/squeezenet1.1/FP16/squeezenet1.1.xml -d CPU

就可以正常使用GDB调试了

### 使用GDB进行步调 #### 启动GDB并加载程序 为了启动GDB并对指定的应用程序`my_ping`进行调,可以利用自定义的shell脚本调用gdbclient函数来依次启动gdbserver和gdb本身[^1]。一旦进入GDB交互界面,则可以通过多种方式设置断点以及控制程序执行流程。 #### 设置断点 在准备就绪之后,在想要暂停执行的位置设定断点是非常重要的一步。这能够帮助定位具体位置以便逐步分析代码逻辑: ```bash break main ``` 上述命令会在main函数入口处创建一个断点,当目标进程运行到这里时会自动停止等待进一步指令。 #### 开始步执行 通过输入`run`让被调程序开始执行直到遇到第一个断点为止;接着就可以使用以下命令来进行逐条语句级别的跟踪: - `step` 或者缩写形式`s`: 执行一条指令, 如果该指令是一个函数调用则进入到这个函数内部继续执行. ```bash step ``` - `next` 或者缩写形式`n`: 类似于`step`, 不同之处在于如果碰到函数调用不会深入到子函数而是直接跳过整个函数体. ```bash next ``` 这些操作允许开发者细致入微地观察每一步的变化情况从而更容易发现潜在问题所在。 #### 查看变量值和其他信息 在整个过程中还可以随时查看当前上下文中各个局部或全局变量的具体数值以及其他有用的信息,比如寄存器状态等: ```bash print variable_name info registers ``` 以上就是关于如何借助GDB工具实现Linux环境中C/C++应用程序的步调方法介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值