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

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
dima
Житель
Сообщения: 690
Зарегистрирован: 19 фев 2003, 19:26
Откуда: Хабаровск->Toronto

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

Сообщение dima »

компилятор VC++ 6. Все исходники есть.

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

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

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

:(
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

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

Сообщение ajkj3em »

сконфигури linker to generate .map file instead. это раз.

снять стек при падении можно из самой программы.
см. SetUnhandledExceptionFilter() и StackWalk() из dbghelp.h
Аватара пользователя
dima
Житель
Сообщения: 690
Зарегистрирован: 19 фев 2003, 19:26
Откуда: Хабаровск->Toronto

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

Сообщение dima »

poneyhot писал(а):сконфигури linker to generate .map file instead. это раз.

снять стек при падении можно из самой программы.
см. SetUnhandledExceptionFilter() и StackWalk() из dbghelp.h
спасибо, буду пробовать. Можно-ли поднять студию на сигнал с Си-шным кодом, а ни с ассемблером ?
Аватара пользователя
aissp
Маньяк
Сообщения: 2710
Зарегистрирован: 07 ноя 2005, 09:51

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

Сообщение aissp »

Сорри, не сталкивался с подобным поетому просто из загашничка

http://www.catch22.net/tuts/vctips.asp
Аватара пользователя
ajkj3em
Маньяк
Сообщения: 2063
Зарегистрирован: 12 ноя 2006, 06:53

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

Сообщение ajkj3em »

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

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