|
|
|
Exception tracer
|
|||
|---|---|---|---|
|
#18+
Всем привет. У меня такой вопрос. Есть ли какие-нить сторонние библиотеки или компоненты для VS C++ (2005), которые позволяют получать в релизнутой версии информацию об ошибках, как то call stack, желательно тип эксепшена. Аналог дельфовых madExcept и EurikaLog. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 14:06 |
|
||
|
Exception tracer
|
|||
|---|---|---|---|
|
#18+
Может другие кто какие способы использует для отлаживания нештатных ситуаций на машине клиента? Поделитесь опытом, господа! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 14:38 |
|
||
|
Exception tracer
|
|||
|---|---|---|---|
|
#18+
кроме макроса ASSERT ну и банальных _try _cetch _throw не припомню, но и они позволяют не позволить программе нагло вывалиться а корректно оюработать силами программиста данную неприятность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:47 |
|
||
|
Exception tracer
|
|||
|---|---|---|---|
|
#18+
Да уж. Арсенал невелик. Delphi и .NET в этом отношении гораздо лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 22:14 |
|
||
|
Exception tracer
|
|||
|---|---|---|---|
|
#18+
Den_diкроме макроса ASSERT ну и банальных _try _cetch _throw не припомню, но и они позволяют не позволить программе нагло вывалиться а корректно оюработать силами программиста данную неприятность. как говорится если не знаете, то не стоит идругих вводить в заблуждение. Достаточно в гугле поискать фразу : дамп стека Самый простой способ: берем библиотеку BugslayerUtil.dll by Jeff Robbins (из книжки "Отладка прилождений", или колонки Bugslayer в MSDN Magazine (MSJ)) ), перекрываем обработчик "необработанных" структурных исключений (см. SetUnhandledExceptionFilter), в котором пишем такой код (я даже весь файл приведу): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Примечание 0: это — плохой пример фильтра. В хорошем не должно быть обращений к CRT, но меня устроил и этот, а до нормального руки не доходят. Данный код в зависимости от установленных переменных (глобальных, что в самом верху) делает следующее: — при установленной bGetFaultReason — показывает строку-описание возникшей ошибки с адресом сбоя и интерпретацией необработанного исключения, а также модуль, в котором галюн. — bShowRegs — показать регистры — bGetStackString — сколько может, показывает стек. Результат работы данного кода при сбое с bGetFaultReason == bGetStackTraceString == TRUE, а также с установленными всеми флагами для dwOpts (GSTSO_*) при релизе, собранном с отладочной иснформацией: stest.exe caused an EXCEPTION_ACCESS_VIOLATION in module ntdll.dll at 001B:77F83941, RtlpWaitForCriticalSection()+0096 byte(s) 001B:77F83941 (0x00BE9E00 0x61039FA2 0x00BE9E7C 0x01738728) ntdll.dll, RtlpWaitForCriticalSection()+0096 byte(s) 001B:77F838C6 (0x2D617465 0x61726B75 0x2E656E69 0x2F6D6F63) ntdll.dll, NtQueryDefaultLocale()+0283 byte(s) Это — далеко не единственный способ, и как это можно сделать вручную, можно посмотреть, например, в исходниках библиотеки BugslayerUtil. Также, VladD2 тут ранее интересовался этим вопросом, но в том топике не было подробного описания, а только ссылки. http://msdn.microsoft.com/code/default.asp?url=/code/sample.asp?url=/MSDN-FILES/026/001/212/msdncompositedoc.xml По этому урлу лежит некий тул. В его дереве (слева) найдешь BugslayerUtil, откроешь вкладку, и там есть все исходники dll-ки. Либо, на этой же странице кликай Download, и все будет хорошо. Там есть много лишнего, но BugslayerUtil.dll в исходниках есть Потом дамп можно поднять в отладчике и посмотреть, что случилось. Такие дампы умеет создавать dr Watson, но есть и другие tool'ы. ------------------------------------ еще есть такая функция : AfxDumpStack() ---------------------- Можно еще тут посмотреть : Post-Mortem Debugging Your Application with Minidumps and Visual Studio .NET http://www.codeproject.com/debug/postmortemdebug_standalone1.asp ---------------------------- Можно посмотреть с сторону StackWalk64 и прочих функций из библиотеки DbgHelp http://msdn2.microsoft.com/en-us/library/ms680650.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2006, 08:05 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34208391&tid=2029789]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 475ms |

| 0 / 0 |
