Страница 1 из 1

как отлаживать C++ release version ?

Добавлено: 14 мар 2006, 13:45
dima
компилятор VC++ 6. Все исходники есть.

Время от времени (с завидным постоянством) на одной из машин возникает сигнал. Как отладить его (хотя-бы стэк посмотреть) ?

Сделал простую консольную апп с сигналом, сгенирировал pdb файл для релиза, студия поднимается, но кроме ассемблера ничего не показывает.

Кто знает как пользоваться pdb файлами ?

:(

Re: как отлаживать C++ release version ?

Добавлено: 14 мар 2006, 14:04
ajkj3em
сконфигури linker to generate .map file instead. это раз.

снять стек при падении можно из самой программы.
см. SetUnhandledExceptionFilter() и StackWalk() из dbghelp.h

Re: как отлаживать C++ release version ?

Добавлено: 14 мар 2006, 14:19
dima
poneyhot писал(а):сконфигури linker to generate .map file instead. это раз.

снять стек при падении можно из самой программы.
см. SetUnhandledExceptionFilter() и StackWalk() из dbghelp.h
спасибо, буду пробовать. Можно-ли поднять студию на сигнал с Си-шным кодом, а ни с ассемблером ?

Помогет или нет не знаю, ну хоть разогреешься

Добавлено: 14 мар 2006, 15:44
aissp
Сорри, не сталкивался с подобным поетому просто из загашничка

http://www.catch22.net/tuts/vctips.asp

Re: как отлаживать C++ release version ?

Добавлено: 14 мар 2006, 16:03
ajkj3em
dima писал(а):спасибо, буду пробовать. Можно-ли поднять студию на сигнал с Си-шным кодом, а ни с ассемблером ?
построй release без оптимизации и с символами (то есть по сути debug
build без _DEBUG define и прилинкованный к release библиотекам).

если падает, то считай повезло и тогда можно будет посмотреть на
оригинальный код когда упадет. если не падает, то придется смотреть
на ассемблер, потому что проблема вызывается оптимизацией и в этом
случае символы к ассембли имеют очень отдаленное отношение.