Is it possible to debug mex code with Eclipse?

血红的双手。 提交于 2019-11-29 02:51:26

问题


I am trying to write some mex code but it is painful to debug it on the console with gbd. Is it possible to use Eclipse or the GUI of Matlab? If these are not feasible methods, what is the best way of writing mex code that provides good debug capabilities?


回答1:


Debugging C/C++ MEX files in gdb is already comprehensively covered in the official documentation, so my suggestion is to try and integrate gdb with Eclipse CDT.

There's plenty of information out there about how to do it properly, so I'm not going to repeat everything here. The best tutorial I know is IBM's two-part guide, "Interfacing with the CDT debugger":

  1. Part 1: Understand the C/C++ debugger interface - covers the high-level basics.
  2. Part 2: Accessing gdb with the Eclipse CDT and MI - explains how to make Eclipse work with gdb.

I think part 2 is what you really need. Basically, you have to install a plug-in and configure it in Eclipse.

There are also quite a few related questions about this even here on StackOverflow:

  1. How do I use GDB in Eclipse for C/C++ Debugging?
  2. How to install GDB debugger to Eclipse CDT
  3. Debugging with Eclipse CDT and GDB
  4. How can I enter commands to a gdb prompt while debugging with Eclipse CDT?

I haven't tried it out yet, so I hope this works.




回答2:


On Windows platform:
The best way (to my experience) to debug a mex code is to use Visual studio. Here's a link on how to do it.

Other platforms (Linux/Mac):
I'm afraid I haven't find any good way to do so apart from gdb (which is not fun at all).

Update (2018):

Recently, Mathworks released a blog post describing how to use Visual Studio Code to debug mex code.
I haven't tried it myself, but it seems like a nice cross-platform solution for debugging mex files.




回答3:


Here is my solution which works in Ubuntu 12.04, Matlab R2012b, and Eclipse IDE for C/C++ Developers Kepler Release.

  1. In Eclipse open "Debug Configurations" from the run tab. Then make a new "C/C++ Application".
  2. In the "Main"-tab write the correct path to the matlab executable in the "C/C++ Application" (mine is "/usr/local/MATLAB/R2012b/bin/glnxa64/MATLAB" NOTE: not MATLABPATH/bin/matlab).

  3. In the "Arguments"-tab add "-nojvm" as program arguments.

  4. In the "Environment"-tab add variable "MATLAB_DEBUG" with value "gdb"

  5. Press "Apply" and "Debug"
  6. A "Matlab console" will open in the "Console" view.
  7. Write "dbmex on" in this console. This enables debugging.
  8. Run the mex file! (Matlab will stop at loading of each new mex file)
  9. Have fun debugging! :-)


来源:https://stackoverflow.com/questions/14471276/is-it-possible-to-debug-mex-code-with-eclipse

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!