Я пытаюсь написать некоторый mex-код, но это больно отлаживать его на консоли с помощью gbd. Можно ли использовать Eclipse или графический интерфейс Matlab? Если это не выполнимые методы, каков наилучший способ написания mex-кода, который обеспечивает хорошие возможности отладки?
Можно ли отлаживать код mex с помощью Eclipse?
Ответ 1
Отладка файлов MEX в C/С++ в gdb уже всесторонне рассмотрена в официальной документации поэтому мое предложение - попытаться интегрировать gdb с Eclipse CDT.
Там много информации о том, как это сделать правильно, поэтому я не буду повторять все здесь. Лучший учебник, который я знаю, представляет собой двухчастное руководство IBM, "Взаимодействие с отладчиком CDT" :
- Часть 1: Понимание интерфейса отладчика C/С++ - охватывает основы высокого уровня.
- Часть 2: Доступ к gdb с помощью Eclipse CDT и MI - объясняет, как заставить Eclipse работать с gdb.
Я думаю, что часть 2 - это то, что вам действительно нужно. В принципе, вам нужно установить плагин и настроить его в Eclipse.
Здесь также есть несколько связанных вопросов об этом даже здесь, в StackOverflow:
- Как использовать GDB в Eclipse для отладки C/С++?
- Как установить отладчик GDB в Eclipse CDT
- Отладка с помощью Eclipse CDT и GDB
- Как я могу ввести команды в приглашение gdb во время отладки с помощью Eclipse CDT?
Я еще не пробовал, поэтому надеюсь, что это сработает.
Ответ 2
На платформе Windows:
Лучший способ (по моему опыту) отлаживать код mex - использовать Visual Studio.
Здесь ссылка о том, как это сделать.
Другие платформы (Linux/Mac):
Боюсь, у меня нет хорошего способа сделать это отдельно от gdb (что совсем не забавно).
Ответ 3
Вот мое решение, которое работает в Ubuntu 12.04, Matlab R2012b и Eclipse IDE для разработчиков C/С++ разработчиков Kepler Release.
- В Eclipse откройте "Debug Configurations" из вкладки run. Затем создайте новое "приложение C/С++".
- В "Main" -tab введите правильный путь к исполняемому файлу matlab в "Приложении C/С++" (мой "/usr/local/MATLAB/R2012b/bin/glnxa64/MATLAB" ПРИМЕЧАНИЕ: не MATLABPATH/бен/MATLAB).
- В "Аргументах" -tab добавить "-nojvm" в качестве аргументов программы.
- В "Environment" -tab добавить переменную "MATLAB_DEBUG" со значением "gdb"
- Нажмите "Применить" и "Отладить"
- "Консоль Matlab" откроется в представлении "Консоль".
- Напишите в этой консоли "dbmex on". Это позволяет отлаживать.
- Запустите файл mex! (Matlab остановится при загрузке каждого нового файла mex)
- Получайте удовольствие от отладки!: -)