Merge "Fix debuggerd (native crash dump)."

This commit is contained in:
Jean-Baptiste Queru 2010-12-14 13:21:11 -08:00 committed by Android Code Review
commit cbb9257a87

View file

@ -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);