为什么 _ _ libc_start_main 的地址在 GDB 内总是相同的,即使 ASLR 打开?

断点 1,0x00007ffff7de8060 在 _ _ libc _ start _ main () 来自/usr/lib/libc.so.6 (Gdb) r 正在调试的程序已经启动。 从头开始?(y 或 n) y 启动程序:/home/firstlove/projects/org-ioslide/example/a.out 断点 1,0x00007ffff7de8060 在 _ _ libc _ start _ main () 来自/usr/lib/libc.so.6 (Gdb) r 正在调试的程序已经启动。 从头开始?(y 或 n) y 启动程序:/home/firstlove/projects/org-ioslide/example/a.out 断点 1,0x00007ffff7de8060 在 _ _ libc _ start _ main () 来自/usr/lib/libc.so.6 (Gdb) 退出 (Gdb) 退出 调试会话处于活动状态。 劣质 1 [过程 16372] 将被杀死。 退出?(y 或 n) y Firstlove-pc % cat/proc/sys/kernel/ra ……

共1个回答,已解决, 标签: c linux gdb libc aslr
为什么 gdb 不能看到所有范围内的全局符号

我正在调试一个带有完整符号 (程序和提升 lib) 的升压程序。在提升中, 有一个变量叫 boost::fibers::context_initializer::active_ 。这可以通过运行 (gdb) info variables .*context_init.* All variables matching regular expression ".*context_init.*": File libs/fiber/src/context.cpp: boost::fibers::context *boost::fibers::context_initializer::active_; std::size_t boost::fibers::context_initializer::counter_; 我可以从程序中的一个线程中看到它, 但不能从另一个线程看到它, 即使它是全局的: (gdb) thread 1 [Switching to thread 1 (Thread 0x7ffff7fcd040 (LWP 10470))] #0 0x00007ffff6c089f3 in futex_ ……

共0个回答, 标签: c++ linux gdb debug-symbols symbol-table