Как отследить необработанное исключение в C ++ с помощью Visual Studio 2017 - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я работаю над исправлением проекта для клиента. Сначала немного информации о проекте:

  1. Первоначально разработано в Visual Studio 2012 с использованием xp_v110 инструментов сборки
  2. Несколько проектов в решении
  3. В настоящее время обновление / отладка в Visual Studio 2017 с использованием VS 2015 / xp_v140 инструменты сборки
  4. Работает на Windows 10

Приложение будет работать в режиме отладки, однако, если я просто покину приложение после запуска сеанса отладки (т.е. не открываю / не нажимаю на приложение, чтобы открыть его, так как оно запускается в свернутом виде в трее), приложение вылетает после 1- 2 минуты.

К сожалению, IDE показывает, что происходит сбой в chkstk.asm со следующим сообщением:

Exception thrown at 0x0064EDF9 in <<exe name>>: 0xC00000FD: Stack overflow (parameters 0x00000000, 0x000A2000).

Я обновил настройки исключений, чтобы они ломались, когда генерируются все исключения C ++, установил флажок с надписью "Break when this exception type is thrown" и обернул исходный метод, который выполняется в блоке try, однако я никогда не смогу отловить ошибку в коде C ++ ; это всегда происходит в файле chkstk.asm.

Любые предложения о том, как я могу узнать, где в коде C ++ происходит исключение. Как я уже сказал, это обновление для клиента, и первоначальный программист недоступен, и они никогда не комментировали свой код, поэтому довольно сложно пытаться пройти через все это. Любая помощь / предложения будут с благодарностью. Заранее спасибо.

...