Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление отладки, "точки прерывания" + отладочная информац 
V
    Опции темы
Dimon_obolon
  Дата 28.11.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Здравствуйте эксперты м начинающие. 
Может кто-то подсказать как добавить точку прерывания в программу...что б в последствии обрабатывать отладочную информацию в точке остановки....   smile 
не средствами среды разработки!!!!  smile 

(аналог Дебагеров стандартных)..

подскажите хотя бы в каком направлении искать..пока от GOOGLE осбо ничего не нашёл..мож не правильно спрашиваю..   smile 

PM MAIL   Вверх
MAKCim
Дата 28.11.2007, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



ОС Windows?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
bsa
Дата 28.11.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Dimon_obolon, проще сделать отладочный вывод
PM   Вверх
Dimon_obolon
Дата 28.11.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Цитата(MAKCim @ 28.11.2007,  22:08)
ОС Windows?

ОС Win или  Lnix...предпочтительней WIN ))
необходимо добавлять точки прерывания в БИНарник
проходя по этим точка прерывания планирую собирать отладочную информацию
вообщем реализовать нечто breakpoint - разных компиляторов

основная задача передавать приложению разного рода входящие сообщения..и следить за его реакцией на них...

хотя бы направте где искать,что почитать... smile 
PM MAIL   Вверх
Lazin
Дата 29.11.2007, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



под Win - Debug Help Library

а вообще для этого есть отладчик, там все уже сделано...
PM MAIL Skype GTalk   Вверх
MAKCim
Дата 29.11.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(Dimon_obolon @  28.11.2007,  23:14 Найти цитируемый пост)
ОС Win или  Lnix...предпочтительней WIN ))

в Linux есть специальный системный вызов ptrace()
(man 2 ptrace)
с помощью него можно сделать с отладочным процессом все, что захочешь
обычный способ, через который работает GDB, как раз связан с ptrace()
а именно, создается отладочный процесс, 
далее он подключается к процессу отладчика посредством PTRACE_ATTACH
по сути все
добавление breakpoint ' а заключается в замене опкода инcтрукции по нужному адресу на значение 0xCC (int3)
(тоже через ptrace())
int3 приводит к генерации исключения #BP, которое вырождается в сигнал SIGTRAP
а т. к процесс является отладочным процессом, то генерация сигнала приводит к остановке процесса (а не вызову обработчика сигнала) и информированию процесса отладчика о данном событии


Это сообщение отредактировал(а) MAKCim - 29.11.2007, 10:19


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Dimon_obolon
Дата 29.11.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Цитата(MAKCim @ 29.11.2007,  10:18)
Цитата(Dimon_obolon @  28.11.2007,  23:14 Найти цитируемый пост)
ОС Win или  Lnix...предпочтительней WIN ))

в Linux есть специальный системный вызов ptrace()
(man 2 ptrace)
с помощью него можно сделать с отладочным процессом все, что захочешь
обычный способ, через который работает GDB, как раз связан с ptrace()
а именно, создается отладочный процесс, 
далее он подключается к процессу отладчика посредством PTRACE_ATTACH
по сути все
добавление breakpoint ' а заключается в замене опкода инcтрукции по нужному адресу на значение 0xCC (int3)
(тоже через ptrace())
int3 приводит к генерации исключения #BP, которое вырождается в сигнал SIGTRAP
а т. к процесс является отладочным процессом, то генерация сигнала приводит к остановке процесса (а не вызову обработчика сигнала) и информированию процесса отладчика о данном событии

MAKCim    smile    ты меня понял..это то что я искал.....

интересно а под WIN как это реализовывается... ???  smile 
PM MAIL   Вверх
xvr
Дата 29.11.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(Dimon_obolon @ 29.11.2007,  13:33)
MAKCim    smile    ты меня понял..это то что я искал.....
интересно а под WIN как это реализовывается... ???  smile

Почти так же, только вместо ptrace DebugActiveProcess. См. так же

CheckRemoteDebuggerPresent Determines whether the specified process is being debugged. 
ContinueDebugEvent Enables a debugger to continue a thread that previously reported a debugging event. 
DebugActiveProcess Enables a debugger to attach to an active process and debug it. 
DebugActiveProcessStop Stops the debugger from debugging the specified process. 
DebugBreak Causes a breakpoint exception to occur in the current process. 
DebugBreakProcess Causes a breakpoint exception to occur in the specified process. 
DebugSetProcessKillOnExit Sets the action to be performed when the debugging thread exits. 
FatalExit Transfers execution control to the debugger. 
FlushInstructionCache Flushes the instruction cache for the specified process. 
GetThreadContext Retrieves the context of the specified thread. 
GetThreadSelectorEntry Retrieves a descriptor table entry for the specified selector and thread. 
IsDebuggerPresent Determines whether the calling process is being debugged. 
OutputDebugString Sends a string to the debugger for display. 
ReadProcessMemory Reads data from an area of memory in a specified process. 
SetThreadContext Sets the context for the specified thread. 
WaitForDebugEvent Waits for a debugging event to occur in a process being debugged. 
WriteProcessMemory Writes data to an area of memory in a specified process. 


PM MAIL   Вверх
Dimon_obolon
Дата 29.11.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Спасибо всем ..для начало мне этого достаточно..дело за мануалами и хелпами ))  smile 

 smile 
PM MAIL   Вверх
JackYF
Дата 29.11.2007, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Dimon_obolon, не забывай тему помечать решённой.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Dimon_obolon
Дата 30.11.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Dimon_obolon, не забывай тему помечать решённой.


PM MAIL   Вверх
JackYF
Дата 30.11.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Dimon_obolon @  30.11.2007,  00:46 Найти цитируемый пост)
Dimon_obolon, не забывай тему помечать решённой.

 smile 


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.