Тот факт, что трассировка стека/функции поставляется в исключениях Java/C#, действительно полезна. Есть ли удобный способ сделать это на C++ или мне нужно выпекать дополнительные данные в каждый метод/функцию?Получение трассировки стека в исключениях C++
ответ
Большинство отладчиков могут быть настроены для приостановки вашей программы каждый раз, когда генерируется исключение (любое исключение или исключение, для которого нет обработчика), чтобы вы могли наблюдать стек вызовов.
Также, если ваш код генерирует исключения из классов, которыми вы управляете you can put code for dumping the call stack in those classes constructors.
Это для регистрации исключений в дикой природе, а не во время отладки. –
@John, Second Sentence – Muggen
@John: Второй абзац об этом - на самом деле весь вопрос, на который я ссылаюсь, это об этом. – sharptooth
Если вы планируете добавить metdata к своим исключениям, вы можете использовать boost exception handling. boost :: exception позволяет добавлять информацию в исключение после того, как она была выбрана.
Некоторые API-интерфейсы ОС обеспечивают трассировку стека, я знаю, что Windows API имеет StackWalk64 или что-то подобное, что может выполнять трассировку стека.
Однако, если вы не можете зависеть от такой вещи, то почти все, что вы можете сделать, это либо отладить сборку, либо сделать это вручную.
- 1. nosetests: Получение трассировки стека на Ctrl + C
- 2. Получение трассировки стека от вызывающего?
- 3. Получение трассировки стека консольного сообщения
- 4. Получение трассировки стека из GDB
- 5. Objective-C трассировки стека
- 6. Получение номера строки или полной трассировки стека на исключениях в скрипте gremlin-groovy
- 7. Получение трассировки стека ошибки в ExtendScript
- 8. Получение трассировки стека из Visual Studio
- 9. Получение трассировки стека при разработке расширения Firefox
- 10. Получение дополнительной информации из трассировки стека
- 11. Получение полной трассировки стека с Django-поршнем
- 12. Получение трассировки стека на Android NDK
- 13. Нужна помощь в расшифровке трассировки стека C#
- 14. Печать трассировки стека в C++ (MSVC)?
- 15. инструменты анализа трассировки стека
- 16. Получение трассировки стека после нарушения прав доступа в Windows
- 17. Получение текущей трассировки стека в Mac OS X
- 18. Подсветка трассировки стека python
- 19. Получение * текущей * трассировки стека в node.js (например, через SIGINT)
- 20. C#: как скрыть метод из трассировки стека?
- 21. Чтение трассировки стека
- 22. Qt C++ Необработанное исключение трассировки стека
- 23. Печать информации трассировки стека с C#
- 24. Delphi 6 трассировки стека
- 25. Как создаются трассировки стека?
- 26. Интерпретация Android трассировки стека
- 27. отключить PHP трассировки стека
- 28. Отслеживание трассировки стека
- 29. Oozie трассировки стека
- 30. NullPointerException без трассировки стека
Duplicate?: Http://stackoverflow.com/questions/3222890/call-stack-for-exceptions-in-c – bcsanches