У меня довольно сложное (около 200 000 строк кода на C++) приложение, которое решило сбой, хотя оно несколько отличается от нескольких разных систем. Хитрость заключается в том, что он не разбивается или не попадает в отладчик. Он только сбой, когда приложение .EXE запускается независимо (либо отладчик EXE, либо EXE выпуска - оба ведут себя одинаково). Когда он сбой в отладочном EXE, и я заставляю его запускать отладку, стек вызовов скрывается в части вещей Windows/MFC и не отражает какой-либо из моего кода. Возможно, я вижу что-то вроде стека, но на данный момент я просто не уверен. Мой вопрос более общий - речь идет о инструментах и методах.Инструменты для отладки, когда отладчик не может доставить вас туда?
Я старый программист (C и дни ассемблера) и относительный новичок (пара/несколько лет) для C++ и Visual Studio (2003 для этого проекта).
Есть ли уловки или приемы, с которыми кто-либо имел успех в отслеживании проблем, связанных с сбоями, когда вы не можете сделать сбой программного обеспечения в сеансе отладчика? Например, например, вопросы разрешения?
Единственное, о чем я думал, это начать подключать сообщения об отладке/статусе в файл журнала, но это долгий и трудный путь. Был там, сделал это. Любые лучшие предложения? Упускаю ли я некоторые инструменты, которые помогут? Является ли VS 2008 лучше для такого рода вещей?
Спасибо за любые рекомендации. Некоторые очень умные люди здесь (вы знаете, кто вы!).
ура.
Да, я согласен. У меня в стеке много больших объектов, и я предполагаю, что один или несколько из них убежали. – user365389
Я даю этот ответ, потому что это единственный случай, который я видел, что отладчик (VS или CodeWarrior) не мог поймать и увидеть загадочным. Большую часть времени это был большой объект приложения, который был определен в стеке в функции main() и имел членов, не выделенных в куче. Просто вызов new для создания экземпляра объекта фиксировал непонятную проблему. В конце концов, не нужно было получить конкретный инструмент для этого. – Klaim
Хорошее руководство. Я буду искать их в своем приложении. Возможно, вы столкнулись со своей конкретной проблемой на голове! Благодарю. – user365389