gdb не может найти исходные файлы, скомпилированные cc

У меня есть исходный файл testcc.c, который просто печатает «Hello, World», я компилирую его с помощью cc, как показано ниже.

cc -g -o testcc testcc.c

он отлично работает, когда я его запускаю. теперь я хочу отладить его с помощью gdb с помощью следующей команды.

gdb testcc

Я вижу результат работы GDB.

GDB - бесплатное программное обеспечение, и вы можете распространять его копии при определенных условиях; введите "показать копирование", чтобы увидеть условия. На GDB нет никаких гарантий; для получения подробной информации введите "показать гарантию". GDB 4.16 (sparc-sun-solaris2.6), Copyright 1996 Free Software Foundation, Inc ...

Но когда я пытаюсь установить точку останова в строке 5, я получил следующее сообщение

(gdb) break 5
Breakpoint 1 at 0x10814: file /home/users/xxx/C, line 5.
(gdb)

Проблема в том, что / home / users / xxx / C - это мой текущий рабочий каталог, а не исходный файл!

Затем я пытаюсь использовать параметры file: line-number

(gdb) break testcc.c:5
No source file named testcc.c.

Итак, я включаю полный путь к имени файла, как показано ниже.

(gdb) break /home/users/xxx/testcc.c:5
No source file named /home/users/xxx/testcc.c.

Я запуталась, файл есть, почему gdb не может его найти? Я также пытаюсь указать каталог для поиска исходных файлов при запуске gdb

gdb -d /home/users/xxx/C testcc

это все еще не работает, в чем проблема?


person zdd    schedule 14.11.2012    source источник
comment
/home/users/xxx/C реальный каталог или вы смонтировали файловую систему Windows в своей системе Solaris?   -  person Paul R    schedule 14.11.2012
comment
Вы видите сообщение Чтение символов из /path/to/your/cc/file...done. на старте? Кроме того, GDB, похоже, имеет версию 7.4.1 на моем Linux-компьютере, поэтому 4.16 кажется мне очень старым ... Наконец, чтобы быть уверенным, попробуйте gdb ./testcc (на пути может быть еще один testcc)   -  person Sjlver    schedule 14.11.2012
comment
Попробуйте загрузить более свежую версию GDB с sunfreeware.com. Я подозреваю, что ваш gdb, версия 4.16 (sparc-sun-solaris2.6), имеет проблемы с отладочной информацией, сгенерированной вашей копией gcc.   -  person scottt    schedule 14.11.2012
comment
@Paul R, это настоящий каталог.   -  person zdd    schedule 14.11.2012
comment
@Sjlver, я не видел этого сообщения, я пробовал gdb ./testcc, тоже не работает.   -  person zdd    schedule 14.11.2012
comment
@scott, я не использую gcc, я использую cc, попробую новую версию gdb.   -  person zdd    schedule 15.11.2012


Ответы (1)


После целого дня борьбы я наконец обнаружил, что мы должны использовать dbx для отладки программы, скомпилированной компилятором Sun cc. вот по ссылке это сказано.

http://www.cs.cmu.edu/~gilpin/tutorial/

person zdd    schedule 15.11.2012