eclipse如何多语言/代码混合编程

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如下:

eclipse如何多语言/代码混合编程_第1张图片

 

g,  添加 python的iridium_swig库:

iridium-python工程上右键->properties,添加库路径如下

eclipse如何多语言/代码混合编程_第2张图片

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

 

 

你可能感兴趣的:(编程)