Здравствуйте, vgrigor, Вы писали:
V>Как найти кто делает этот вызов ? V>(программа большая из нескольких модулей)
Купить бутылку пива и растыкать копипастом логгинг по тем местам, где проходит программа.
Может быть, там не (только) stack overflow, а (ещё и) порча памяти?
Попробуй с Bounds Checker'ом запустить. Он такие вещи лучше просекает, чем встроенные проверялки.
Перекуём баги на фичи!
Re[2]: Как в 6 студии отловить место StackOverflow ?
К>Может быть, там не (только) stack overflow, а (ещё и) порча памяти? К>Попробуй с Bounds Checker'ом запустить. Он такие вещи лучше просекает, чем встроенные проверялки.
Может быть и порча памяти,
access violation — тоже вылезает.
А для 6 студии он есть?
или в нем как в отдельном продукте для 6 студии можно запускать?
Bounds Checker 7.х версии для этого подойдет?
Винтовку добудешь в бою!
Re[3]: Как в 6 студии отловить место StackOverflow ?
поставил bounds checker 7.2,
он показывает кучу всяких недоразумений,
которые "работают" — благодаря дефолтным настройкам.
но я искал не это ведь...
как бы несерьезности отключить?
но до нахождения серезных ошибок из VS 6 я в нем не дошел,
gполностью не смог он скомпилировать инструментовано,
Browsing information — error.
Замечу для сравнения — аналогичная ошибка в 7.1 студии,
обрабатывается все-таки самой студией очень хорошо,
выполнение прерывается,
и студия говорит "stack corrupted -возле такой-то переменной",
после вот этого вызоова в вашем коде".
И все, никаких мучительных догадок в здоровенной программе.
В 6 студии отличная прога bounds checker работает нехорошо как-то.
или я слабо разобрался,
можно сделать/настроить так чтобы bounds checker вываливал прямо на серьезную ошибку?
Винтовку добудешь в бою!
Re[3]: Как в 6 студии отловить место StackOverflow ?
Здравствуйте, vgrigor, Вы писали:
V> V>можно сделать/настроить так чтобы bounds checker вываливал прямо на серьезную ошибку? V>
В Devpartner->Options->Error detection можно настраивать, какие ошибки ловить, и какие — нет. Тебя, скорее всего, интересует Memory Tracking и Call Validation.
Кроме того, в любой момент можно отключить диалог ошибки (Display error and pause),прогнать программу до падения и потом уже смотреть на лог всех ошибок.
Ну и не забываем о кнопочке "Suppress" в диалоге ошибки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Как в 6 студии отловить место StackOverflow ?
Здравствуйте, Глеб Алексеев, Вы писали:
V>> V>>можно сделать/настроить так чтобы bounds checker вываливал прямо на серьезную ошибку? V>> ГА>В Devpartner->Options->Error detection можно настраивать, какие ошибки ловить, и какие — нет. Тебя, скорее всего, интересует Memory Tracking и Call Validation. ГА>Кроме того, в любой момент можно отключить диалог ошибки (Display error and pause),прогнать программу до падения и потом уже смотреть на лог всех ошибок. ГА>Ну и не забываем о кнопочке "Suppress" в диалоге ошибки.
Кроме того, STL для VC6 написана сомнительно — BoundsChecker принимает некоторые совершенно невинные места за ошибки. Но его можно научить. Нажимаешь Supress, и больше он к этим местам не придирается.
Перекуём баги на фичи!
Re[5]: Как в 6 студии отловить место StackOverflow ?
Его надо настраивать и учить чего не надо ловить.
(в среднем проекте куча того что работает — без инициализаций, но по дефолту,
что конечно не есть хорошо, но уже много так написано....)
А чего он не стал компилировать из-за Browse Information error,
когда обычная компиляция все нормально делала?
Здравствуйте, _Winnie, Вы писали:
_W>Купить бутылку пива и растыкать копипастом логгинг по тем местам, где проходит программа.
_W>#define MY_TRACE printf("%s %s %d", __FILE__, __FUNCTION__, __LINE__)
И не забыть про fflush.
Re[3]: Как в 6 студии отловить место StackOverflow ?
Здравствуйте, barrett, Вы писали:
B>Здравствуйте, _Winnie, Вы писали:
_W>>Купить бутылку пива и растыкать копипастом логгинг по тем местам, где проходит программа.
_W>>#define MY_TRACE printf("%s %s %d", __FILE__, __FUNCTION__, __LINE__) B>И не забыть про fflush.
А проще печатать в stderr. Он не буферизуется. Или сделать один раз setbuf(stdout, NULL).
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
It's kind of fun to do the impossible (Walt Disney)