Linux中怎么查看函数被哪个文件调用过
时间: 2024-09-30 15:10:14 浏览: 31
在Linux中,查看函数被哪个文件调用过通常可以使用`gdb`调试器或者`addr2line`工具,配合`strace`或`ldd`命令。这里以`addr2line`为例:
1. **`addr2line`**:
- 首先,你需要知道函数的地址,这通常来自于`strace`、`lsof`, 或者通过`gdb`得到。例如,如果从`gdb`中得到地址`0x00401234`,你可以运行:
```
addr2line -e your_executable_file 0x00401234
```
这将显示该地址对应的函数名及其所在源文件。
2. **`strace`** 和 `ltrace`**:
- 如果你想看系统调用或者库函数的调用链,可以使用`strace`跟踪系统调用:
```
strace -c your_command
```
- 或者使用`ltrace`跟踪动态链接库函数:
```
ltrace -fp your_process_id your_command
```
结果可能会包含大量信息,需要进一步分析找出特定函数的来源。
请注意,这种方法对于内核模块或者定制的二进制程序可能不太适用,因为它们可能不包含完整的人工符号表。
阅读全文