Я запускаю приложение a.out вручную, передавая его в качестве аргумента динамическому загрузчику, как показано ниже. мое приложение скомпилировано в режиме отладки
*gdb --args /lib64/ld-linux-x86-64.so.2 ./a.out
*
Я ставлю точку останова, как показано ниже, когда я выполняю запуск, моя программа запускается и не прерывается на main()
(gdb) устанавливает отложенную точку останова
(gdb)break main
(gdb)run
Вопрос: Как я могу остановить свой двоичный файл на main??
Я пробовал нормально запускать приложение, как показано ниже, и оно работает
gdb ./a.out --> работает.
Почему я запускаю приложение в качестве аргумента загрузчика?
--> у меня есть собственный скомпилированный glibc, который я тестирую, запустив загрузчик вручную.
Пробовал эксперимент.
Я попробовал «catch exec», но не остановился на exec, я предположил, что этот загрузчик не использует exec.
Я могу добавить точку останова на символе загрузчика, попробовал остановиться на __libc_start_main,
затем загрузил символ на a.out, но все равно не получается
Подробнее здесь: https://stackoverflow.com/questions/797 ... ak-on-main