Lines Matching refs:stash

64   /* Linked starting from stash->lastUnit.  */
138 then attached into the 'stash' at 'stash->lastUnit'. */
141 alloc_dwarf1_unit (struct dwarf1_debug* stash)
145 struct dwarf1_unit* x = (struct dwarf1_unit *) bfd_zalloc (stash->abfd, amt);
148 x->prev = stash->lastUnit;
149 stash->lastUnit = x;
159 alloc_dwarf1_func (struct dwarf1_debug* stash, struct dwarf1_unit* aUnit)
163 struct dwarf1_func* x = (struct dwarf1_func *) bfd_zalloc (stash->abfd, amt);
293 parse_line_table (struct dwarf1_debug* stash, struct dwarf1_unit* aUnit)
298 if (stash->line_section == 0)
303 msec = bfd_get_section_by_name (stash->abfd, ".line");
308 stash->line_section
309 = bfd_simple_get_relocated_section_contents (stash->abfd, msec, NULL,
310 stash->syms);
312 if (! stash->line_section)
315 stash->line_section_end = stash->line_section + size;
318 xptr = stash->line_section + aUnit->stmt_list_offset;
319 if (xptr + 8 <= stash->line_section_end)
327 tblend = bfd_get_32 (stash->abfd, (bfd_byte *) xptr) + xptr;
331 base = bfd_get_32 (stash->abfd, (bfd_byte *) xptr);
340 aUnit->linenumber_table = (struct linenumber *) bfd_alloc (stash->abfd,
347 if (xptr + 10 > stash->line_section_end)
354 = bfd_get_32 (stash->abfd, (bfd_byte *) xptr);
362 = base + bfd_get_32 (stash->abfd, (bfd_byte *) xptr);
376 parse_functions_in_unit (struct dwarf1_debug* stash, struct dwarf1_unit* aUnit)
382 eachDie < stash->debug_section_end;
387 if (! parse_die (stash->abfd, &eachDieInfo, eachDie,
388 stash->debug_section_end))
396 struct dwarf1_func* aFunc = alloc_dwarf1_func (stash,aUnit);
407 eachDie = stash->debug_section + eachDieInfo.sibling;
419 dwarf1_unit_find_nearest_line (struct dwarf1_debug* stash,
438 if (! parse_line_table (stash, aUnit))
444 if (! parse_functions_in_unit (stash, aUnit))
490 struct dwarf1_debug *stash = elf_tdata (abfd)->dwarf1_find_line_info;
501 if (! stash)
506 stash = elf_tdata (abfd)->dwarf1_find_line_info
509 if (! stash)
515 /* No dwarf1 info. Note that at this point the stash
521 stash->debug_section
525 if (! stash->debug_section)
528 stash->debug_section_end = stash->debug_section + size;
529 stash->currentDie = stash->debug_section;
530 stash->abfd = abfd;
531 stash->syms = symbols;
535 or that an error occured while setting up the stash. */
537 if (! stash->debug_section)
542 for (eachUnit = stash->lastUnit; eachUnit; eachUnit = eachUnit->prev)
544 return dwarf1_unit_find_nearest_line (stash, eachUnit, addr,
549 while (stash->currentDie < stash->debug_section_end)
553 if (! parse_die (stash->abfd, &aDieInfo, stash->currentDie,
554 stash->debug_section_end))
560 = alloc_dwarf1_unit (stash);
573 && stash->currentDie + aDieInfo.length
574 < stash->debug_section_end
575 && stash->currentDie + aDieInfo.length
576 != stash->debug_section + aDieInfo.sibling)
577 aUnit->first_child = stash->currentDie + aDieInfo.length;
582 return dwarf1_unit_find_nearest_line (stash, aUnit, addr,
589 stash->currentDie = stash->debug_section + aDieInfo.sibling;
591 stash->currentDie += aDieInfo.length;
600 struct dwarf1_debug* stash = *pinfo;
602 if (stash == NULL)
605 free (stash->debug_section);
606 free (stash->line_section);