【发布时间】:2023-03-03 17:30:01
【问题描述】:
我正在编写一个调试器,我需要访问symtab,但是在运行时我遇到了分段错误(核心转储),问题可能在于我获取symatb(和标题.. ..)
这是代码:
int main(int argc, char** argv)
{
FILE* file= fopen(argv[1],"r");
Elf64_Ehdr* header = (Elf64_Ehdr*)file;
Elf64_Shdr *section = (Elf64_Shdr*)(file+header->e_shoff);
for(int i=0; i < header->e_shnum; i++) {
if(section[i].sh_type==SHT_SYMTAB)
{
Elf64_Sym *symtab = (Elf64_Sym *)(file+section[i].sh_offset);
....
【问题讨论】:
-
也许你应该在你的调试器上使用一个调试器来看看它为什么会崩溃......:D
-
我试图调试,但我没有足够的信息来理解它为什么会崩溃,我试图弄清楚这是否是获取符号表的正确方法,我可以从这里继续
标签: c debugging elf symbol-table