【发布时间】:2023-03-11 22:16:01
【问题描述】:
在 linux 中,'write' 是一个小的系统调用 wapper 函数。
在 GDB 中。如果我搜索符号“写”(信息地址写) GDB 告诉我一个在 libc 范围内的地址。 但是,当我检查 libc 的导出函数列表时 没有“写”符号。
这里发生了什么?
【问题讨论】:
标签: linux system-calls libc
在 linux 中,'write' 是一个小的系统调用 wapper 函数。
在 GDB 中。如果我搜索符号“写”(信息地址写) GDB 告诉我一个在 libc 范围内的地址。 但是,当我检查 libc 的导出函数列表时 没有“写”符号。
这里发生了什么?
【问题讨论】:
标签: linux system-calls libc
当我检查 libc 的导出函数列表时,没有“写”符号。
让我们看看:
[max@xxx:~/tmp] $ nm --dynamic --defined-only /lib64/libc-2.15.so | grep write
0000003c7a4f1990 T eventfd_write
0000003c7a46c540 W fwrite
0000003c7a475570 T fwrite_unlocked
0000003c7a476d50 T _IO_do_write
0000003c7a475fa0 T _IO_file_write
0000003c7a46c540 T _IO_fwrite
0000003c7a471d10 T _IO_wdo_write
0000003c7a4e3060 T __libc_pwrite
0000003c7a4f2310 T process_vm_writev
0000003c7a4e3060 W pwrite
0000003c7a4e3060 W pwrite64
0000003c7a4e3060 W __pwrite64
0000003c7a4ea520 T pwritev
0000003c7a4ea520 T pwritev64
0000003c7a4e4940 W write
0000003c7a4e4940 W __write
0000003c7a4ea3d0 W writev
【讨论】: