GDB использует несколько «сигналов»:
- Считывает таблицу символов.
- Может применяться эвристика для пропуска пролога мимо функции (обычно вы не хотите останавливаться впролог функции, так как параметры вызова, возможно, еще не установлены, и будут выглядеть «забавно» при печати).
- Если доступно, он также считывает отладочную информацию (которая может быть
DWARF
, STABS
или что-то еще, в зависимости от платформы и компилятора).
Обычно GDB не будет вызывать «внешний» исполняемый файл readelf
- он содержит все смарты для непосредственного чтения информации.
Если вы хотите точно как это сделать, прочитайте источник .