romez777 0 29 июля, 2005 Опубликовано 29 июля, 2005 · Жалоба Приветствую. Пытаюсь подключиться к потомку, которого рождает мое приложение, и поотлаживать его GDB'ой. Естественно все скомилил с "-g", далее запускаю gdb: #gdb my_prog PID устанавливаю точку останова, но отлаживать не могу, stepping не работает, ругается "Cannot find bounds of current function". Что я упустил? Версия GDB 5.3post-0.20021129.18rh Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbour 0 29 июля, 2005 Опубликовано 29 июля, 2005 · Жалоба Оптимизация должна быть нафиг выключена (-O0) иначе будешь долго скрипеть мозгами в поисках похожих на программу мест. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
qwesystemc 0 29 июля, 2005 Опубликовано 29 июля, 2005 · Жалоба Если PID потомка, то надо делать не #gdb my_prog PID а #gdb child_prog PID Также стоит убедиться что не компилировал с тех пор как запустил программу, а также можно попробовать продолжить c и попытаться остановиться еще раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
romez777 0 30 июля, 2005 Опубликовано 30 июля, 2005 · Жалоба Если PID потомка, то надо делать не #gdb my_prog PID а #gdb child_prog PID Также стоит убедиться что не компилировал с тех пор как запустил программу, а также можно попробовать продолжить c и попытаться остановиться еще раз. <{POST_SNAPBACK}> Приветствую. Проблема решена, дело было не в оптимизации, а скорее всего в версии дебаггера, после обновления дл 6.3 все заработало в соответствии с документацией: 1) запускаем gdb 2) устанавливаем 'set follow-fork-mode child' 3) ставим точку останова в теле потомка и запускаемся 4) gdb доходит до брейкпоинта и останавливается, далее отлаживаем потомка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться