Ответ 1
Вы можете смело игнорировать это. gdb жалуется, что у него нет источника для malloc - и почти наверняка вы не хотите проходить через источник.
Два простых решения:
-
Используйте
next
вместо шага - он не будет входить в функции -
Если вы случайно внеся в функцию
step
ed в функцию, используйтеfinish
для запуска в оператор return функции.
И альтернативный подход:
-
Вы также можете сломать бит перед segfault, а не переходить через весь код.
- Вы можете сделать это, поставив точку прерывания на определенную строку с помощью
break <source file>:<line num>
(например,break foo.c:320
, чтобы сломать строку 320 foo.c). - Или вы можете разбить конкретную функцию с помощью
break <function name>
(например,break foo
будет разбиваться в верхней части функцииfoo()
).
- Вы можете сделать это, поставив точку прерывания на определенную строку с помощью