Если GDB отключает ASLR, это то, что заставляет его работать, возможно, set disable-randomization off
в GDB позволит вам воспроизвести сбой внутри GDB, чтобы вы могли отладить его. Заставить gdb загрузить разделяемую библиотеку по случайному адресу .
В противном случае включить дамп ядра из вашей программы и использовать GDB для дампа ядра.
gdb ./prog core.1234
.
На x86 вы можете вставить инструкцию ud2
в ваш исходный код asm, чтобы преднамеренно вызвать сбой в любой точке вашего кода, если вы хотите, чтобы coredump проверял регистры / память в какой-то момент перед тем, как он падает на своемсвоя.Во всех архитектурах есть неопределенная инструкция, которую вы можете использовать, но я знаю только мнемонику для x86, которая находится на моей голове.