| http://sources.redhat.com/gdb/onlinedocs/stabs.html |
| stabsym(Stab *stabs, int i, StabSym *sym) |
| if(stabs->e2==0 || stabs->e4==0){ |
| werrstr("no data extractors"); |
| if(i >= stabs->stabsize/12){ |
| werrstr("stabs index out of range"); |
| p = stabs->stabbase+i*12; |
| else if(x < stabs->strsize) |
| sym->name = stabs->strbase+x; |
| werrstr("bad stabs string index"); |
| * In theory, if name ends with a backslash, |
| * it continues into the next entry. We could |
| * rewrite these in place and then zero the next |
| * few entries, but let's wait until we run across |
| * some system that generates these. |
| sym->desc = stabs->e2(p+6); |
| sym->value = stabs->e4(p+8); |