Пытаюсь запустить программу под отладчиком gdb. Он падает, не успев (вроде бы) добраться до main (во всяком случае, на breakboint'e, поставленном на main, он не тормозит) без комментариев. Точнее, выдаётся строчка вроде:
6843 gdb (stopped)
В списке процессов появляется gdb [defunct].
Причём запущенная программа, которую собирался отлаживать, спокойно работает дальше!
Теперь, запускаю на неё же, на программу, DDD. А вот с ним всё в порядке, всё замечательно работает. Теперь внимание, вопрос — как такое бывает, если DDD — всего лишь оболочка над GDB, и что надо сделать, чтобы gdb нормально заработал? (мне этого очень хочется, потому что пишу программу в KDevelop, а там отладка через gdb).
Полезная информация: программа использует PThreads. ОС: Mandrake Linux 2006, комплиятор: GCC 4.0
Здравствуйте, MaxEd, Вы писали:
ME>Полезная информация:
Может это и будет для тебя дико звучать, но интерактивный отладчик только мешает отлаживать. Когда только начинал писать под unix, то тоже сильно не хватало, теперь и под виндой не использую, и знакомые пишут код в VS, но отладчиком не пользуются. Вот так то.
Здравствуйте, __MasteR__, Вы писали:
ME>>Полезная информация: __M>Может это и будет для тебя дико звучать, но интерактивный отладчик только мешает отлаживать. Когда только начинал писать под unix, то тоже сильно не хватало, теперь и под виндой не использую
Конечно, как им пользоваться, если его нет?
А насчёт сообщения "Stopped+" — была такая штука, если запускать gdb из под mc, если из под "голой" консоли — то нормально.
Здравствуйте, McQwerty, Вы писали:
MQ>Здравствуйте, __MasteR__, Вы писали:
ME>>>Полезная информация: __M>>Может это и будет для тебя дико звучать, но интерактивный отладчик только мешает отлаживать. Когда только начинал писать под unix, то тоже сильно не хватало, теперь и под виндой не использую
Очень может быть, но мне, видимо, ещё очень долго до этого состояния расти... Во всяком случае, пока это меня в основном бесит, а пишу под Линукс я переодически уже на протяжении 4-5 лет.
MQ>А насчёт сообщения "Stopped+" — была такая штука, если запускать gdb из под mc, если из под "голой" консоли — то нормально.
Не, запускаю из под консоли, без mc.
Здравствуйте, DarkProger, Вы писали:
DP>Пересобери gdb с поддержкой pthread.
Пересобрать — это, конечно, можно, но почему же DDD нормально в этой ситуации работает?! Ведь он пользуется всё тем же gdb, не пересобирая его... Может, ключик какой есть?
Здравствуйте, McQwerty, Вы писали:
MQ>Конечно, как им пользоваться, если его нет?
Читай внимательней:
1. не пользуюсь и под виндой, потому что неудобно с ним;
2. я не один такой.
А человеку советую просто попробовать. Я тоже долго мучал отладчики под линукс, пока не попробовал без них. Просто в винде как среду какую-нибудь запускаешь, так там сразу тебе и отладка и все такое, даже и мысли в голову не приходит, а оно надо? У отладчика много чего неудобного, в частности проблематична отладка многопоточных приложений.
Здравствуйте, MaxEd, Вы писали:
ME>Здравствуйте, DarkProger, Вы писали:
DP>>Пересобери gdb с поддержкой pthread. ME>Пересобрать — это, конечно, можно, но почему же DDD нормально в этой ситуации работает?! Ведь он пользуется всё тем же gdb, не пересобирая его...
Совершенно не очевидно. Этих gdb в системе может быть черт знает сколько.
ME>Может, ключик какой есть?
А хоть что-нибудь под ним можно отладить? hello-world, например?
Вообще, то обстоятельство, что gdb (stopped) наводит на грустные мысли о том, что этот gdb собран как-то криво, так что к совету пересобрать присоединяюсь.