Я считаю, что JDownloader написан на Java. Я думаю, что этот язык позволяет в любой момент получить полную трассировку стека текста. C++ не может этого сделать, потому что скомпилированный исполняемый файл обычно не хранит никакой информации о коде, который использовался для его создания.
Windows API позволяет вам обнаруживать фатальные исключения и создавать дамп процесса (или части процесса, если вы не хотите иметь дело с огромным файлом). Затем этот дамп можно проверить с помощью windbg, Visual Studio или вашего отладчика.
Недостатком этого является то, что вы должны иметь точный исходный код, который использовался для создания сбрасываемого исполняемого файла, а также базу данных символов (файл PDB), которая была сгенерирована во время сборки. Кроме того, некоторый код может быть оптимизирован способами, которые не позволяют отладчику предоставить вам точную трассировку стека даже с данными символа.
Для получения более подробной информации см. MiniDumpWriteDump. Если вы собираетесь воспользоваться этим маршрутом, наилучшей практикой является , а не сгенерируйте дамп в процессе сбоя, но создайте дочерний процесс, чтобы взять дамп родителя.
Есть также библиотеки C и C++, которые могут «вручную» записывать стек вызовов и давать вам текстовое представление во время выполнения, но я не встречал ни одного из них, которые я бы предложил.
Если вы используете программирование в Windows с помощью Delphi, «безумное исключение» - отличный инструмент, который делает именно это: http://madshi.net/ – paulsm4
Посмотрите здесь http://stackoverflow.com/questions/ 691719/c-display-stack-trace-on-exception, возможно, это то, что вы ищете. – Mithrandir