eclipse如何多语言/代码混合调试方法。
1、混合java和c语言代码调试
Eclipse——混合调试java与C++代码(Linux下Debug)
2、 c和python混合代码调试
使用Nsight Eclipse调试py-faster-rcnn(C++/python混合代码调试)
这个没有用过。
3、 gnuradio中的python和c++混合代码调试
1) 使用GDB与eclipse混合调试
Building and source level debugging OOT C++ modules with eclipse:
建立工程: cmake -G "Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../gr-howto/
gnuradio也是eclipse和C语言的混合编程, 这里说明怎么进行混合调试;实际使用过程中不顺畅,因为环境和界面切来切去;
2) 使用脚本,eclipse作为编辑器。
作为补充,这个中文教程自己用脚本,简化了工程,稍微方便了一些:
gnuradio 使用eclipse 编辑器记录(另外更新了个脚本的代码就可以让eclipse使用C++11:https://www.cnblogs.com/yssrf-possible/p/7988601.html)
3) 建立两个工程来分别调试python和C++
用eclipse同时调试python和c++ 。 Debugging GNU Radio using Eclipse
cmake -DENABLE_DEFAULT=OFF -DENABLE_GR_QTGUI=ON -DCMAKE_BUILD_TYPE=Debug ../
关键在于C++工程类型为’C/C++ Attach to Application’,要调试的文件主要为’python/caffe/_caffe.so’。
4) 综合上面1)和3)的详细设计步骤:
以 开源代码gr-iridium-master为例:
a, 代码拷贝到iridium-master目录中,并行新建iridium-debug目录。cd ./iridium-debug
b,用cmake -G "Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../iridium-master,在iridium-debug目录下建立cmake工程;
c, 参考1),eclipse新建Makefile project with existing code 工程,名称为iridium-c;
d,新建pydev工程。工程右键new->folder->link to existing source,选iridium-master里面的python目录,名称为iridium-python;
reference project 选iridium-c;
e,对iridium-python工程的某个python建debug configuration;
同时修改代码: 以qa_fft_burst_tagger为例,修改gr_unittest.run(qa_fft_burst_tagger, "qa_fft_burst_tagger.xml")为gr_unittest.run(qa_fft_burst_tagger)
f,iridium-c工程右键,debug as -> debug configuration,建立configuration如下:
g, 添加 python的iridium_swig库:
iridium-python工程上右键->properties,添加库路径如下
h, 先运行iridium-python工程的debug,会有pid出现。记得在fft_burst_tagger = iridium.fft_burst_tagger(fft_size=4096, sample_rate=1000000, center_frequency=1626000000, burst_pre_len=4096, burst_post_len=8*4096, burst_width=40)这句上断点。运行到这句停下来。
然后运行iridium-c工程的iridium-c-attach, 会弹出pid选择。在source目录中对应c++文件fft_burst_tagger_impl.cc上打上断点。接着运行iridium-python工程。
继续运行iridium-c,就可以继续单步c语言调试了。
---调试中出现的问题------------------
问题1: 最近windows下Eclipse调试时总是出现Application XXX is waiting for the debugger to attach的提示,
有的时候提示框会自动关闭并进入调试状态,但有的时候进入的是运行状态,最烦恼的是有时候模拟器上一直停留此对话框,反复调试依旧如此,老衲甚是苦恼。
个人感觉是某些调试状态尚未恢复或某些数据正在处理,在网上搜罗了下,归纳如下几种解决方案:
1.)Clean下工程
2.)dos命令行中下执行
adb kill-server
adb start-server
3).看是否一台机器打开了多个Eclipse,甚至都处于debug状态,导致模拟器无法正确辨别
问题2: 提示linux warning: Debugger speedups using cython not found.
根据提示的路径,运行一下就可以了。
问题3:
附: c/C++项目开发工具集的介绍:
https://blog.csdn.net/wwchao2012/article/details/81057647