GDB / "malloc_error_break" не определен
Я пытаюсь узнать больше о malloc & free, поэтому я создал dylib, который реализует эти функции, и загружаю его в обычный системный бинарный файл. Однако в нем есть ошибки, и я пытаюсь их отладить.
- malloc.dylib - моя динамическая библиотека
Вот вывод GDB:
(gdb) set env DYLD_INSERT_LIBRARIES malloc.dylib
(gdb) break malloc_error_break
Function "malloc_error_break" not defined.
Make breakpoint pending on future shared library load? (y or [n]) n
(gdb) r
Starting program: /bin/ls
[+] init()
[-] myMalloc requesting: 4096 bytes
[-] memory address: 200000
bash(2035) malloc: *** error for object 0x200000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb)
Что меня смущает, так это сообщение
Function "malloc_error_break" not defined.
Когда я пытаюсь установить точку останова на нем. Понятно, что он не ломается, потому что неизвестен.
Любая помощь? Заранее спасибо.
1 ответ
Причина, по которой вы не можете установить точку останова malloc_error_break
является то, что эта функция определена в общей библиотеке, которая еще не была загружена.
Вы должны иметь возможность установить точку останова после запуска программы один раз.
В качестве альтернативы используйте start
вместо run
и когда программа останавливается main
После этого вы сможете установить точку останова на malloc_error_break
,