Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.108.241] |
|
Сообщ.
#1
,
|
|
|
У меня возник такой вопрос.
Как вывести на экран stack trace используя чистый С на win32 (Visual Studio6) ? Возможно кто-либо сталкивался с подобной задачей. Спасибо. |
Сообщ.
#2
,
|
|
|
Используя dbghlp.dll
где-то я писал такое, щас задамплю сюда свой код, может поможет чем (там С++ чисто для обертки всего этого в классы, но сама dbghelp.dll такого не требует, там, как и на всем WinAPI, чистый C, так что можно переделать) добавить #include <dbghelp.h> и либу соответсвующую P.S. гуглить MSDN на тему SymSetOptions, SymInitialize, SymFromAddr, SymGetLineFromAddr64, ... Прикреплённый файлdbghelp_demo.7z (2,82 Кбайт, скачиваний: 134) |
Сообщ.
#3
,
|
|
|
Цитата MinLexx @ Если можно, приведите простенький пример. У меня программа, написанная на ansi C. В данный момент winApi не используется вовсе. Как мне подключить необходимую библиотеку? Нужно ли устанавливать что-то дополнительное от Microsoft или же можно взять только отдельные файлы? |
Сообщ.
#4
,
|
|
|
Простеньким пример вряд ли получится... А программа только под винду планируется? Никаких переносов под Unix-like os? Тогда да, самое верное тут - использовать Debug helper API, функцию StackWalk
Компилятор-то хоть какой?) Да, придется подключать Platform SDK (#inlcude <windows.h> <tchar.h> итд) Redistributable: Requires DbgHelp.dll 5.1 or later. Header: Declared in Dbghelp.h. Library: Use Dbghelp.lib. |
Сообщ.
#5
,
|
|
|
Цитата MinLexx @ Вопрос снят. Использовал stackWalker. Поправил его для своих нужд. Скомпилировал его как объектник. И слинковал с сишной программой посредством extern "C". |