Отладка S-функции Matlab с помощью Visual Studio 2010 - PullRequest
1 голос
/ 28 февраля 2012

У меня проблема с отладкой S-функции Matlab, написанной на C. Исходный код - analysis.c, после того, как я пометил этот файл

mex -g -v analysis.c

Я получаю "analysis.mexw32" и "analysis.mexw32.pdb".

В Visual Studio 2010 я открываю «analysis.c», присоединяю его к процессу «Matlab» и устанавливаю точку останова. Пока эта точка останова не принята:

"Точка останова не достигнута. Символы не загружены."

Когда я запускаю файл в Matlab, все выполняется без достижения точек останова. Кто-нибудь может дать мне совет по этому поводу?

Я делал это раньше, и это работало просто.

Ответы [ 4 ]

1 голос
/ 28 февраля 2012

Похоже, вы более или менее следовали инструкциям справки MATLAB .Можете ли вы проверить, что вы точно следовали им, пожалуйста?Например, открыли ли вы точно такой же C-файл?

Моим первым предложением было бы убедиться, что вы настроили ваш mex-компилятор для такой же установки Visual Studio, используя mex -setup. * 1006.*

0 голосов
/ 23 ноября 2015

Моя настройка с yprime.c, как описано здесь очень плохо: http://de.mathworks.com/help/matlab/matlab_external/debugging-on-microsoft-windows-platforms.html

Tools-Options-Debugging-General - "Enable just my code" is unchecked.
Tools-Options-Debugging-Native - Load DLL, Enable RPC Debugging.
Tools-Options-Debugging-Symbols - 
1. Uncheck Microsoft Symbol servers.
2. Add the *location* of your pdb file by clicking on new folder.
3. Cache symbols in this directoy in my case is empty.
Attach process -> *Automatic : Native code* -> Matlab
Debug -Windows- Modules should show your module (pdb file ) now.

Я заметил в одной из ситуаций, что символы все еще не загружались, несмотря на вышеописанные процессы. Но один из модулей под названием OnDemand ... присутствовал в Debug-Windows-Modules. Так что ставьте точку останова, даже если Visual Studio не показывает ваш модуль или точка останова жалуется, что символы не загружены. Продолжите и запустите программу из Matlab yprime (1,1: 4), тогда символ будет загружен по требованию и будет активирована точка останова. По крайней мере, в моем случае я мог. Фу!

0 голосов
/ 17 ноября 2015

Используя Native Code, при подключении процесса к Matlab все работает, точки останова попадают.ура,

0 голосов
/ 29 февраля 2012

Проблема была решена путем изменения настроек «Присоединить к процессу». Мне пришлось выбрать «системный собственный код» в диалоге, после чего символы были загружены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...