реклама на сайте
подробности

 
 
> отладка дочернего процесса с помощью GDB
romez777
сообщение Jul 29 2005, 05:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую.

Пытаюсь подключиться к потомку, которого рождает мое приложение, и поотлаживать его GDB'ой. Естественно все скомилил с "-g", далее запускаю gdb:

#gdb my_prog PID

устанавливаю точку останова, но отлаживать не могу, stepping не работает, ругается "Cannot find bounds of current function".

Что я упустил?

Версия GDB 5.3post-0.20021129.18rh

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Harbour
сообщение Jul 29 2005, 10:37
Сообщение #2


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Оптимизация должна быть нафиг выключена (-O0) иначе будешь долго скрипеть мозгами в поисках похожих на программу мест.
Go to the top of the page
 
+Quote Post
qwesystemc
сообщение Jul 29 2005, 21:31
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 31
Регистрация: 30-04-05
Пользователь №: 4 633



Если PID потомка, то надо делать не

#gdb my_prog PID

а

#gdb child_prog PID

Также стоит убедиться что не компилировал с тех пор как запустил программу, а также можно попробовать продолжить c и попытаться остановиться еще раз.
Go to the top of the page
 
+Quote Post
romez777
сообщение Jul 30 2005, 01:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Цитата(qwesystemc @ Jul 30 2005, 00:31)
Если PID потомка, то надо делать не

#gdb my_prog PID

а

#gdb child_prog PID

Также стоит убедиться что не компилировал с тех пор как запустил программу, а также можно попробовать продолжить c и попытаться остановиться еще раз.
*


Приветствую.

Проблема решена, дело было не в оптимизации, а скорее всего в версии дебаггера, после обновления дл 6.3 все заработало в соответствии с документацией:

1) запускаем gdb
2) устанавливаем 'set follow-fork-mode child'
3) ставим точку останова в теле потомка и запускаемся
4) gdb доходит до брейкпоинта и останавливается, далее отлаживаем потомка.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01381 секунд с 7
ELECTRONIX ©2004-2016