Форум программистов, компьютерный форум CyberForum.ru

чем отлаживать dll - C++

Восстановить пароль Регистрация
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
10.06.2011, 22:07     чем отлаживать dll #1
у меня есть dll она загружается в коммерческий продукт исходников которого у меня нет естественно. как мне ее отлаживать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2011, 22:07     чем отлаживать dll
Посмотрите здесь:

DLL C++
dLL C++
C++ Как отлаживать библиотеку
C++ Загрузка переменной из DLL (GetProcAddress не берет значение переменной из *.dll)
Подгрузка dll через dll C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
10.06.2011, 22:35     чем отлаживать dll #2
По-старинке.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* math.cpp */
 
int f()
{
   char *ptr = new char[25];
  
#ifdef DEBUG
   if( !ptr )
      std::cerr << "==DEBUG: int f() @ math.cpp: ptr == 0";
#endif
 
// ...
 
}
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
10.06.2011, 22:40  [ТС]     чем отлаживать dll #3
объясни что это
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
10.06.2011, 22:45     чем отлаживать dll #4
Допустим, у вас ошибка в функции. Идёте по коду сверху-вниз и случайным образом расставляете вывод. Если программа консольная - то на консоль. Если графическая - то MessageBoxA (дли винды), QMessageBox::critical (для Qt) ну и так далее. И смотрите, какое сообщение вывелось последним перед возникновением ошибки. И подобным образом локализуете строку, в которой находится ошибка.

Или, например, вам нужно посмотреть значение переменной. Создаёте C-строку, записываете в неё значение вашей переменной (например, через sprintf), и выводите через тот же std::cerr или MessageBoxA.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
10.06.2011, 23:20     чем отлаживать dll #5
это называется трассировка, то бишь отладка без отладчика

другой вариант
1) msvc - в коде своей dll наставить брейкпоинтов и в Debug выбрать attach к процессу, который загружает вашу dll
2) gcc - загружаем gdb, аттачимся к проекту, загружаем символы и в путь
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
11.06.2011, 01:52  [ТС]     чем отлаживать dll #6
alex_x_x, спасибо так заработало
Yandex
Объявления
11.06.2011, 01:52     чем отлаживать dll
Ответ Создать тему
Опции темы

Текущее время: 09:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru