Я запускаю приложение a.out вручную, передавая его в качестве аргумента динамическому загрузчику, как показано ниже. Мое приложение скомпилировано в режиме отладки.
*gdb --args /lib64/ld-linux-x86-64.so.2 ./a.out
Я ставлю точку останова, как показано ниже, программа не прерывается в main()
(gdb)set breakpoint pending on
(gdb)break main
(gdb)run
Вопрос: Как я могу остановить мой двоичный файл в основной системе?
обычная команда GDB работает
gdb ./a.out --> works.
Почему я запускаю приложение в качестве аргумента загрузчика? -
У меня есть специально скомпилированная библиотека glibc, которую я тестирую, запуская загрузчик вручную.
Пробный эксперимент
readelf -WS a.out | grep -i text
[14] .text PROGBITS 0000000000001050 001050 0001a2 00 AX 0 0 16
gdb -q --args /lib64/ld-linux-x86-64.so.2 ./a.out
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.27.so...done.
done.
(gdb) set stop-on-solib-events 1
(gdb) r
Starting program: /lib64/ld-linux-x86-64.so.2 ./a.out
Stopped due to shared library event (no libraries added or removed)
(gdb) c
Continuing.
Stopped due to shared library event:
Inferior loaded /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.
Stopped due to shared library event:
Inferior loaded /lib/x86_64-linux-gnu/libc.so.6
(gdb) add-symbol-file a.out 0x1050
add symbol table from file "a.out" at
.text_addr = 0x1050
(y or n) y
Reading symbols from a.out...done.
(gdb) break main
Breakpoint 1 at 0x115a: file main.c, line 3.
(gdb) c
Continuing.
Hello World
[Inferior 1 (process 11451) exited normally]
(gdb)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ak-on-main
Почему GDB не может выполнить прерывание main()? ⇐ Linux
-
Anonymous
1759989612
Anonymous
Я запускаю приложение a.out вручную, передавая его в качестве аргумента динамическому загрузчику, как показано ниже. Мое приложение скомпилировано в режиме отладки.
*gdb --args /lib64/ld-linux-x86-64.so.2 ./a.out
Я ставлю точку останова, как показано ниже, программа не прерывается в main()
(gdb)set breakpoint pending on
(gdb)break main
(gdb)run
Вопрос: Как я могу остановить мой двоичный файл в основной системе?
обычная команда GDB работает
gdb ./a.out --> works.
Почему я запускаю приложение в качестве аргумента загрузчика? -
У меня есть специально скомпилированная библиотека glibc, которую я тестирую, запуская загрузчик вручную.
[b]Пробный эксперимент[/b]
readelf -WS a.out | grep -i text
[14] .text PROGBITS 0000000000001050 001050 0001a2 00 AX 0 0 16
gdb -q --args /lib64/ld-linux-x86-64.so.2 ./a.out
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.27.so...done.
done.
(gdb) set stop-on-solib-events 1
(gdb) r
Starting program: /lib64/ld-linux-x86-64.so.2 ./a.out
Stopped due to shared library event (no libraries added or removed)
(gdb) c
Continuing.
Stopped due to shared library event:
Inferior loaded /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.
Stopped due to shared library event:
Inferior loaded /lib/x86_64-linux-gnu/libc.so.6
(gdb) add-symbol-file a.out 0x1050
add symbol table from file "a.out" at
.text_addr = 0x1050
(y or n) y
Reading symbols from a.out...done.
(gdb) break main
Breakpoint 1 at 0x115a: file main.c, line 3.
(gdb) c
Continuing.
Hello World
[Inferior 1 (process 11451) exited normally]
(gdb)
Подробнее здесь: [url]https://stackoverflow.com/questions/79785168/why-gdb-is-unable-to-break-on-main[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия