Nano Hash - криптовалюты, майнинг, программирование

Сбой файла Matlab mex в Windows - невозможно отладить

У меня есть mex-файл, который я скомпилировал

>> mex -g myMex.cpp

Я запустил его на нескольких входах, и он работает просто отлично.
Внезапно для определенного входа происходит сбой машины!

Следуя инструкциям отладки с помощью Visual Studio Я подключил отладчик к процессу Matlab и поставил точку останова на первой строке моего файла mexFunction.

Однако, когда я устал отлаживать визуальную студию, а Matlab падает до, точка останова попадает в код mex C++!

Кто-нибудь сталкивался с таким неприятным поведением? Как я могу отладить этот сбой, если сбой происходит до того, как я могу остановиться в отладчике?


  • То же самое добавляется с Win7 - MatLab 2013a. Я пытался отлаживать Mexopencv. Я ничего не нашел, поэтому я сдался. 14.11.2013
  • @AlexandreBizeau по какой-то причине кажется, что Visual Studio не остановится на моих контрольных точках (а вместо этого вылетит). Я подозреваю, что использую неправильные флаги компиляции/связывания... Мне удалось найти свою ошибку в старом добром методе комментариев/печати/компиляции :(... 14.11.2013
  • @Shai: можете ли вы придумать небольшой воспроизводимый случай, который мы можем протестировать? Также, пожалуйста, укажите ваши версии ОС, MATLAB и VS. Сбой всей машины - очень серьезная ошибка! 14.11.2013
  • Для меня это никогда не бывает одинаковым, иногда происходит сбой Matlab с ошибкой сегментации. Или ничего не происходит, например, без перерыва в Visual Studio, а Matlab отлично выполняет код без сбоев. Я не исследовал много по этой проблеме. Но мне интересно, как это сделать. Я решаю свою проблему без использования отладчика, но мне это понадобится позже. 14.11.2013
  • @AlexandreBizeau: когда вы компилируете в режиме отладки, вы будете связываться с другой версией CRT с включенными дополнительными проверками для обнаружения повреждений памяти и подобных ошибок. Обычно это объясняет разницу, которую вы видите при компиляции с флагами оптимизации и отладки. Что касается отладки mexopencv, обычно помогает компилировать OpenCV из исходников самостоятельно, вместо того, чтобы полагаться на предоставленные предварительно скомпилированные двоичные файлы. . 14.11.2013
  • @Shai: Чтобы узнать точные используемые флаги компиляции, см. файл: fullfile(prefdir,'mexopts.bat'). В случае сбоя MATLAB создаст файлы дампа сбоя в вашей папке %TEMP%. Вы также должны опубликовать соответствующую часть из тех 14.11.2013
  • @Amro спасибо за комментарии. Я постараюсь и посмотреть, если я могу предоставить соответствующую информацию. 14.11.2013

Ответы:


1

На самом деле это не тот ответ, который вы ищете, но из-за проблем, подобных той, которую вы описываете, я всегда находил визуальную отладку файлов Matlab MEX настолько неудобной, что доставляла больше проблем, чем того стоило. Возможно, будет быстрее отследить проблемы, вставив операторы mexPrintf и/или return в основную подпрограмму mexFunction.

21.11.2013
  • Спасибо за ответ. Я работаю с mex-файлами уже несколько лет и никогда не имел проблем с визуальной отладкой. На самом деле, я предпочитаю этот метод любому другому, и однажды меня очень беспокоило, что у меня не было этих возможностей и на машинах с Linux. 22.11.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..