----- Original Message ----- > > sp-1 will be NULL if sp pointer the first element in symbol > > table, so > > (sp-1)->value w! ill cause segment fault. > > S! o I modify the code segment as follow: > > if (sp->value > value) { > > if (sp - st->symtable == 0) return NULL; > > if (offset) > > *offset = value - ((sp-1)->value); > > return((struct syment *)(sp-1)); > > } > > Is that OK? I hope you could give me some advices. > > Looks good to me, although I would prefer "if (sp == st->symtable)" to make > it a bit clearer. But wait a minute -- how did you get past the address value check at the top of value_search_base_kernel(): struct syment * value_search_base_kernel(ulong value, ulong *offset) { struct syment *sp; ======> if (value < st->symtable[0].value) return((struct syment *)NULL); What value is in st->symtable[0].value, and what value are you passing to the function? Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility