gdb не может войти в printf

вот моя примерная программа:

#include int main() { printf("hello good morning \n"); return 0; } gcc -Wall -g temp.c /opt/langtools/bin/gdb a.out HP gdb 3.3 for PA-RISC 1.1 or 2.0 (narrow), HP-UX 11.00. Copyright 1986 - 2001 Free Software Foundation, Inc. Hewlett-Packard Wildebeest 3.3 (based on GDB) is covered by the GNU General Public License. Type "show copying" to see the conditions to change it and/or distribute copies. Type "show warranty" for warranty/support. .. (gdb) b 6 Breakpoint 1 at 0x2b14: file temp.c, line 6. (gdb) run Starting program: /oo_dgfqausr/test/dfqwrk4/temp/a.out Breakpoint 1, main () at temp.c:6 6 printf("hello good morning \n"); (gdb) step hello good morning 7 return 0; (gdb) 

как только я попытаюсь войти в функцию printf. Выходит и возвращается на главную. означает ли это, что библиотека shred, в которой определена функция printf, не снабжена символами отладки? Или я делаю что-то неправильно?

Это означает, что нет доступных символов источника / отладки для printf. Вы можете использовать stepi для stepi в printf любом случае, у вас будет только доступ к parsingке (используйте команду disas ).

Правильно, у вас, вероятно, нет доступных отладочных символов. Убедитесь, что установлен libc-devel или аналогичный. Кроме того, не забудьте скомпилировать с -O0 для предотвращения оптимизации; оптимизация делает отладку труднее следовать.

Кроме того, для максимальных символов требуется -g3 . С -g3 будут доступны даже символические константы. -ggdb может быть полезен. Ян из GDB говорит нам, что нет расширений GDB для основной линии, но Apple, возможно, предложила некоторые и опущенные исправления backstrem.