Возможно ли это?
Начало TEXT минус конец PAGEZERO, получается 0x104a60000 - 0x100000000 = 0x4a60000 (делта смещение)
Вот адрес ,к примеру, на котором я хочу установить breakpoint
A - T + 0x104a60000
. Как узнать размер стека?
$ cat /proc/16150/maps | grep stack
7ffd8875b000-7ffd8877c000 rw-p 00000000 00:00 0 [stack]
$ ulimit -a | grep stack
stack size (kbytes, -s) 8192
Как запретить VSC отлаживать такие вещи?
При использовании gdb не понятно в каком конкретно месте упала программа:
#0 0x00005633bd506050 in ?? ()
Как в Release конфигурации
-g
из релизной сборки. После сборки можно скопировать получившийся ELF, отрезать от него отладочные символы и запускать его. Когда что-то упадёт, можно будет загрузить core dump с ELFом, в котором отладочные символы присутствуют, чтобы не гадать, где этот адрес. gdb выдает следующее
char* command; while(strcmp(command, "exit") == 1);
printf.c: No such file or directory.
Смысл в том, чтобы поместить вывод программы в файл log. Такого же типа ошибка при использовании scanf.
gcc дизассемблирует файл
Можно ли, каким то способом, получить бинарный файл с отладочной информацией и отладить его?
ставить точки останова на конкретные ассемблерные команды
просматривать значения регистров