Merge "Fix debuggerd (native crash dump)."
This commit is contained in:
commit
cbb9257a87
1 changed files with 19 additions and 10 deletions
|
|
@ -94,17 +94,26 @@ struct symbol_table *symbol_table_create(const char *filename)
|
||||||
table->name = strdup(filename);
|
table->name = strdup(filename);
|
||||||
table->num_symbols = 0;
|
table->num_symbols = 0;
|
||||||
|
|
||||||
Elf32_Sym *dynsyms = (Elf32_Sym*)(base + shdr[dynsym_idx].sh_offset);
|
Elf32_Sym *dynsyms = NULL;
|
||||||
Elf32_Sym *syms = (Elf32_Sym*)(base + shdr[sym_idx].sh_offset);
|
Elf32_Sym *syms = NULL;
|
||||||
|
int dynnumsyms = 0;
|
||||||
|
int numsyms = 0;
|
||||||
|
char *dynstr = NULL;
|
||||||
|
char *str = NULL;
|
||||||
|
|
||||||
int dynnumsyms = shdr[dynsym_idx].sh_size / shdr[dynsym_idx].sh_entsize;
|
if (dynsym_idx != -1) {
|
||||||
int numsyms = shdr[sym_idx].sh_size / shdr[sym_idx].sh_entsize;
|
dynsyms = (Elf32_Sym*)(base + shdr[dynsym_idx].sh_offset);
|
||||||
|
dynnumsyms = shdr[dynsym_idx].sh_size / shdr[dynsym_idx].sh_entsize;
|
||||||
|
int dynstr_idx = shdr[dynsym_idx].sh_link;
|
||||||
|
dynstr = base + shdr[dynstr_idx].sh_offset;
|
||||||
|
}
|
||||||
|
|
||||||
int dynstr_idx = shdr[dynsym_idx].sh_link;
|
if (sym_idx != -1) {
|
||||||
int str_idx = shdr[sym_idx].sh_link;
|
syms = (Elf32_Sym*)(base + shdr[sym_idx].sh_offset);
|
||||||
|
numsyms = shdr[sym_idx].sh_size / shdr[sym_idx].sh_entsize;
|
||||||
char *dynstr = base + shdr[dynstr_idx].sh_offset;
|
int str_idx = shdr[sym_idx].sh_link;
|
||||||
char *str = base + shdr[str_idx].sh_offset;
|
str = base + shdr[str_idx].sh_offset;
|
||||||
|
}
|
||||||
|
|
||||||
int symbol_count = 0;
|
int symbol_count = 0;
|
||||||
int dynsymbol_count = 0;
|
int dynsymbol_count = 0;
|
||||||
|
|
@ -134,7 +143,7 @@ struct symbol_table *symbol_table_create(const char *filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now, create an entry in our symbol table structure for each symbol...
|
// Now, create an entry in our symbol table structure for each symbol...
|
||||||
table->num_symbols += symbol_count + dynsymbol_count;;
|
table->num_symbols += symbol_count + dynsymbol_count;
|
||||||
table->symbols = malloc(table->num_symbols * sizeof(struct symbol));
|
table->symbols = malloc(table->num_symbols * sizeof(struct symbol));
|
||||||
if(!table->symbols) {
|
if(!table->symbols) {
|
||||||
free(table);
|
free(table);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue