Tôi đang cố gắng viết một số mã mex nhưng rất khó để gỡ lỗi nó trên bàn điều khiển với gbd. Có thể sử dụng Eclipse hoặc GUI của Matlab không? Nếu đây không phải là phương pháp khả thi, cách tốt nhất để viết mã mex cung cấp khả năng gỡ lỗi tốt là gì?Có thể gỡ lỗi mã mex với Eclipse không?
Trả lời
Trên nền tảng Windows:
Cách tốt nhất (theo kinh nghiệm của tôi) để gỡ lỗi mã mex là sử dụng Visual studio. Đây là link về cách thực hiện.
nền tảng khác (Linux/Mac):
Tôi sợ tôi đã không tìm thấy bất kỳ cách tốt để làm như vậy ngoài việc gdb (đó là không vui vẻ tại tất cả).
Gỡ lỗi tệp C/C++ MEX trong gdb đã được bao quát toàn diện trong official documentation, vì vậy đề xuất của tôi là thử và tích hợp gdb với CDT Eclipse.
Có rất nhiều thông tin về cách thực hiện đúng cách, vì vậy tôi sẽ không lặp lại mọi thứ ở đây. Các hướng dẫn tốt nhất mà tôi biết là hướng dẫn của IBM gồm hai phần, "Giao diện với trình gỡ lỗi CDT":
- Part 1: Understand the C/C++ debugger interface - bao gồm những điều cơ bản cao cấp.
- Part 2: Accessing gdb with the Eclipse CDT and MI - giải thích cách làm cho Eclipse hoạt động với gdb.
Tôi nghĩ phần 2 là những gì bạn thực sự cần. Về cơ bản, bạn phải cài đặt một plug-in và định cấu hình nó trong Eclipse.
Ngoài ra còn có khá nhiều câu hỏi liên quan về vấn đề này ngay cả ở đây trên StackOverflow:
- How do I use GDB in Eclipse for C/C++ Debugging?
- How to install GDB debugger to Eclipse CDT
- Debugging with Eclipse CDT and GDB
- How can I enter commands to a gdb prompt while debugging with Eclipse CDT?
Tôi đã không thử nó ra, vì vậy tôi hy vọng điều này hoạt động.
Đây là giải pháp của tôi hoạt động trong Ubuntu 12.04, Matlab R2012b và IDE Eclipse cho Nhà phát triển Kepler C/C++.
- Trong Eclipse mở "Cấu hình gỡ lỗi" từ tab chạy. Sau đó tạo một "Ứng dụng C/C++" mới.
- Trong "chính" -tab viết đường dẫn chính xác đến tệp thực thi MATLAB trong "Ứng dụng C/C++" (của tôi là "/ usr/local/MATLAB/R2012b/bin/glnxa64/MATLAB" LƯU Ý: không MATLABPATH/bin/matlab).
- Trong "Đối số" -tab thêm "-nojvm" làm đối số chương trình.
- Trong "Môi trường" -tab thêm biến "MATLAB_DEBUG" có giá trị "gdb"
- Bấm "Apply" và "Debug"
- A "Matlab console" sẽ mở ra trong "Bảng điều khiển" lượt xem.
- Viết "dbmex on" trong bảng điều khiển này. Điều này cho phép gỡ lỗi.
- Chạy tệp mex! (Matlab sẽ dừng khi tải từng tệp mex mới)
- Hãy gỡ lỗi thú vị! :-)
Đã thử điều này với nhật thực + Mingw64 trong cửa sổ và nó không hoạt động. Tôi nhận được bước nr 7 và nó hiển thị "DBMEX không hoạt động trên PC. Xem MATLAB External Interfaces Guide để biết chi tiết về cách gỡ lỗi các tệp MEX." – payala
Tôi chưa thử nghiệm điều này trong cửa sổ. Có phòng thu trực quan dễ dàng hơn nhiều. –
Cảm ơn! Làm việc cho tôi trên ArchLinux với R2016a và Eclipse neon 4.6. Tôi chỉ cần thêm vào như là đối số cũng '-r 'dbmex trên" 'để tránh gõ nó mỗi lần. – bonanza
Bạn có lời cảm ơn của tôi cho câu trả lời ... Tôi đang sử dụng cách của doc chính thức trên Linux nhưng nó rất tốn thời gian so với cách gỡ lỗi GUI. Nhưng tôi sẽ xem xét các liên kết bạn đưa ra. – erogol
@Erogol - Tôi đặt một tiền thưởng vào câu hỏi của bạn hy vọng sẽ nhận được câu trả lời tốt hơn, đặc biệt là đối với cấu hình nhật thực + gdb + linux. Hãy chú ý đến câu hỏi và câu trả lời này trong thời gian tiền thưởng, vì vậy chúng tôi có thể tìm một giải pháp làm việc cùng nhau. Cảm ơn bạn. – Shai
@EitanT - Tôi đã hy vọng một phương pháp chi tiết hơn để gỡ lỗi mex bằng nhật thực trên Linux. tốt, không ai khác đưa ra thách thức để có bạn đi, sử dụng tiền thưởng này tốt. – Shai