Можно ли отладить код mex с помощью Eclipse?

17

Я пытаюсь написать некоторый mex-код, но это больно отлаживать его на консоли с помощью gbd. Можно ли использовать Eclipse или графический интерфейс Matlab? Если это не выполнимые методы, каков наилучший способ написания mex-кода, который обеспечивает хорошие возможности отладки?

    
задан erogol 23.01.2013 в 02:59
источник

3 ответа

8

Отладка файлов MEX в C / C ++ в gdb уже полностью рассмотрена в официальная документация , поэтому мое предложение - попытаться интегрировать gdb с Eclipse CDT.

Там много информации о том, как это сделать должным образом, поэтому я не буду повторять все здесь. Лучший учебник, который я знаю, представляет собой двухчастный справочник IBM, «Взаимодействие с отладчиком CDT» :

  1. Часть 1: Понимание интерфейса отладчика C / C ++ - охватывает основы высокого уровня.
  2. Часть 2: Доступ к gdb с помощью Eclipse CDT и MI - объясняет, как заставить Eclipse работать с gdb.

Я думаю, что часть 2 - это то, что вам действительно нужно. В принципе, вам нужно установить и настроить его в Eclipse.

Здесь также есть несколько связанных вопросов об этом даже здесь, в StackOverflow:

  1. Как использовать GDB в Eclipse для C / C ++ Отладка?
  2. Как установить отладчик GDB в Eclipse CDT
  3. Отладка с помощью Eclipse CDT и GDB
  4. Как могу ли я вводить команды в приглашение gdb во время отладки с помощью Eclipse CDT?

Я еще не пробовал, поэтому надеюсь, что это сработает.

    
ответ дан Eitan T 27.01.2013 в 15:21
  • У вас есть моя благодарность за ответ ... Я использую способ официального документа для Linux, но он так много времени по сравнению с GUI способом отладки. Но я посмотрю ссылки, которые вы даете. –  erogol 27.01.2013 в 23:24
  • @Erogol - я поставил щедрость на ваш вопрос, надеясь получить лучшие ответы, особенно для конфигурации eclipse + gdb + linux. Пожалуйста, обратите внимание на этот вопрос и ответы в течение периода щедрости, чтобы мы могли найти совместное рабочее решение. Спасибо. –  Shai 28.01.2013 в 08:19
  • @EitanT - Я как бы надеялся на более подробный метод для отладки mex с использованием eclipse в Linux. ну, никто еще не поднял вызов, поэтому вы идете, хорошо используйте эту щедрость. –  Shai 01.02.2013 в 08:03
  • @Shai Я не имею доступа к MATLAB, установленному на Linux, к сожалению. Однако мне удалось успешно отладить gdb в Eclipse с помощью приведенных выше инструкций, поэтому я полагаю, что это в сочетании с учебником MATLAB по отладке с gdb дает адекватный ответ. Если позволит время, я уточню его, чтобы дать лучшее объяснение. –  Eitan T 01.02.2013 в 18:20
  • Связанный IBM «руководство» на самом деле не помогает. Он больше ориентирован на внедрение собственного модуля отладчика для Eclipse. Для тех, кто из нас просто ищет плагин, который кто-то еще реализовал, этот ответ вообще не полезен, на мой взгляд. –  robguinness 17.06.2013 в 16:51
7

На платформе Windows:
Лучший способ (по моему опыту) отлаживать код mex - использовать Visual Studio. Ниже приведена ссылка о том, как это сделать.

Другие платформы (Linux / Mac):
Боюсь, у меня нет хорошего способа сделать это отдельно от gdb (это вообще not ).

    
ответ дан Shai 23.01.2013 в 07:19
7

Вот мое решение, которое работает в Ubuntu 12.04, Matlab R2012b и Eclipse IDE для разработчиков C / C ++ разработчиков Kepler Release.

  1. В Eclipse откройте «Debug Configurations» из вкладки run. Затем создайте новое «приложение C / C ++».
  2. В «Main» -tab введите правильный путь к исполняемому файлу matlab в «Приложении C / C ++» (мой «/ usr / local / MATLAB / R2012b / bin / glnxa64 / MATLAB» ПРИМЕЧАНИЕ: не MATLABPATH / бен / MATLAB).
  3. В «Аргументах» -tab добавить «-nojvm» в качестве аргументов программы.
  4. В «Environment» -tab добавить переменную «MATLAB_DEBUG» со значением «gdb»
  5. Нажмите «Применить» и «Отладить»
  6. «Консоль Matlab» откроется в представлении «Консоль».
  7. Напишите в этой консоли «dbmex on». Это позволяет отлаживать.
  8. Запустите файл mex! (Matlab остановится при загрузке каждого нового файла mex)
  9. Получайте удовольствие от отладки! : -)
ответ дан Torstein I. Bø 31.07.2013 в 13:40
  • Пробовал это с помощью eclipse + Mingw64 в Windows, и он не работает. Я перехожу к шагу nr 7, и он показывает: «DBMEX не работает на ПК. Подробнее о том, как отлаживать MEX-файлы, см. Руководство по внешним интерфейсам MATLAB». –  payala 18.03.2015 в 13:04
  • Я не тестировал это в окнах. Там визуальная студия намного проще. –  Torstein I. Bø 19.03.2015 в 04:31
  • Спасибо! Работает для меня на ArchLinux с R2016a и Eclipse neon 4.6. Я просто добавил в качестве аргументов также -r "dbmex on", чтобы не вводить его каждый раз. –  bonanza 18.08.2016 в 10:15
  • Приложение: В качестве пути я использую ... / R2016a / bin / glnxa64 / MATLAB. Т.е. я не вызываю сценарий оболочки в / usr / bin / ..., потому что eclipse жаловался на это. –  bonanza 18.08.2016 в 10:35