better unwinding for 386.
command-line extraction from core files on linux and freebsd. move linux ureg into ureg386.h (used in many places).
This commit is contained in:
parent
cdf1805191
commit
1cc215aaf9
13 changed files with 495 additions and 109 deletions
|
|
@ -53,6 +53,7 @@ elfsyminit(Fhdr *fp)
|
|||
p = &elf->prog[i];
|
||||
if(p->type != ElfProgDynamic)
|
||||
continue;
|
||||
elf->dynamic = p->vaddr;
|
||||
memset(&sym, 0, sizeof sym);
|
||||
sym.name = "_DYNAMIC";
|
||||
sym.loc = locaddr(p->vaddr);
|
||||
|
|
@ -64,6 +65,23 @@ elfsyminit(Fhdr *fp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
elfsymlookup(Elf *elf, char *name, ulong *addr)
|
||||
{
|
||||
int i;
|
||||
ElfSym esym;
|
||||
|
||||
for(i=0; elfsym(elf, i, &esym) >= 0; i++){
|
||||
if(esym.name == nil)
|
||||
continue;
|
||||
if(strcmp(esym.name, name) == 0){
|
||||
*addr = esym.value;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
symelf(Fhdr *fhdr)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue