как отладить уже загруженную .dll ,
От: NovaCxarmulo Россия http://timofey.koolin.ru
Дата: 27.04.06 05:07
Оценка:
ситуация такая: пишу plugin для инсталлятора NSIS.

При вызове ф-ции из плагина — программа вываливается с сообщением о
доступе к запрещенному участку памяти. Хочу пройтись отладчиком по своеё
ф-ции и посмотреть где ошибка.

Попробовал после загрузки инсталлятора сделать Debug->Attach to process,
не помогло — на бряке остановки не происходит.

Из инсталлера вызываю свою функцию так:
Push "234"
CallInstDll "D:\...\Debug\my.dll" test
т.е. вызывается ф0ция из отладочной версии библиотеки, причем вызывается
именно из файла, который создает VC++, а не из копии.

Отладкой .dll раньше не занимался.

У меня WinXP Home, сижу с правами администратора, для разработки
использую Visual Studio 2005 C++ Express Edition.
Posted via RSDN NNTP Server 2.0

27.04.06 12:16: Перенесено модератором из 'C/C++' — Кодт
Сражение выигрывает тот, кто твердо решил его выиграть
(с) Л.Н. Толстой
Re: как отладить уже загруженную .dll ,
От: bauer  
Дата: 27.04.06 06:06
Оценка:
Здравствуйте, NovaCxarmulo, Вы писали:

NC>Попробовал после загрузки инсталлятора сделать Debug->Attach to process,

NC>не помогло — на бряке остановки не происходит.

Простейший вариант. Вставь в код своей функции __asm int 3; или __debugbreak; Это тот же break point, только явный.
Re[2]: как отладить уже загруженную .dll ,
От: NovaCxarmulo Россия http://timofey.koolin.ru
Дата: 27.04.06 06:34
Оценка:
bauer пишет:
> Здравствуйте, NovaCxarmulo, Вы писали:
>
> NC>Попробовал после загрузки инсталлятора сделать Debug->Attach to process,
> NC>не помогло — на бряке остановки не происходит.
>
> Простейший вариант. Вставь в код своей функции __asm int 3; или __debugbreak; Это тот же break point, только явный.

попробовал __asm int 3; — программа вываливается с ошибкой "has
triggered a breakpoint", т.е.е сам бряк сработал, но отладчик в студии
его не подцепил.... он может показать ассемблерный код, где ошибка
произошла, но хотело сь бы пройтись по строкам исходника, с возможностью
просмотра содержимого переменных и т.д...
Posted via RSDN NNTP Server 2.0
Сражение выигрывает тот, кто твердо решил его выиграть
(с) Л.Н. Толстой
Re: как отладить уже загруженную .dll ,
От: Silent Bob  
Дата: 27.04.06 08:29
Оценка:
Здравствуйте, NovaCxarmulo, Вы писали:

NC>ситуация такая: пишу plugin для инсталлятора NSIS.


А отладить из студии не получается? Собираешь свою длл в Debug-версии, ставишь точку останова в своей функции, нажимаешь F5 и на вопрос студии показываешь ей exe, сгенерированный NSIS'ом. Для 3д макса это работает.
Re[2]: как отладить уже загруженную .dll ,
От: NovaCxarmulo Россия http://timofey.koolin.ru
Дата: 27.04.06 09:10
Оценка:
Здравствуйте, Silent Bob, Вы писали:

SB>Здравствуйте, NovaCxarmulo, Вы писали:


NC>>ситуация такая: пишу plugin для инсталлятора NSIS.


SB>А отладить из студии не получается? Собираешь свою длл в Debug-версии, ставишь точку останова в своей функции, нажимаешь F5 и на вопрос студии показываешь ей exe, сгенерированный NSIS'ом. Для 3д макса это работает


попробовал... говорит, что не может для экзешника найти отладочную информацию....
на обычный бряк не реагирует, на бряк вставленный как __asm int 3 вываливается с ссобщением о недопустимой операции — студия снова предлагает асм-код смотреть.
Сражение выигрывает тот, кто твердо решил его выиграть
(с) Л.Н. Толстой
Re[3]: как отладить уже загруженную .dll ,
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.04.06 10:51
Оценка:
Здравствуйте, NovaCxarmulo, Вы писали:

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

ну так открой список модулей, и загрузи pdb для своей DLL вручную.
NC>на обычный бряк не реагирует, на бряк вставленный как __asm int 3 вываливается с ссобщением о недопустимой операции — студия снова предлагает асм-код смотреть.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: как отладить уже загруженную .dll ,
От: NovaCxarmulo Россия http://timofey.koolin.ru
Дата: 27.04.06 15:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>ну так открой список модулей, и загрузи pdb для своей DLL вручную.

не получается.... студия говорит, что .pdb загружен, но ни бряки, ни просмотр исходников не воспринимает....
Сражение выигрывает тот, кто твердо решил его выиграть
(с) Л.Н. Толстой
Re[3]: как отладить уже загруженную .dll ,
От: bauer  
Дата: 28.04.06 08:37
Оценка:
Здравствуйте, NovaCxarmulo, Вы писали:

NC>попробовал __asm int 3; — программа вываливается с ошибкой "has

NC>triggered a breakpoint", т.е.е сам бряк сработал, но отладчик в студии
NC>его не подцепил....

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

NC>он может показать ассемблерный код, где ошибка

NC>произошла, но хотело сь бы пройтись по строкам исходника, с возможностью
NC>просмотра содержимого переменных и т.д...

pdb файл не соответствует dll. посмотри окно modules. там будет написано, загружен ли для твоего dll pdb файл.
Re[4]: как отладить уже загруженную .dll ,
От: NovaCxarmulo Россия http://timofey.koolin.ru
Дата: 29.04.06 09:02
Оценка:
Здравствуйте, bauer, Вы писали:
B>pdb файл не соответствует dll. посмотри окно modules. там будет написано, загружен ли для твоего dll pdb файл
смотрел — загружен.
Сражение выигрывает тот, кто твердо решил его выиграть
(с) Л.Н. Толстой
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.