Coverage Report

Created: 2025-07-11 06:46

/src/elfutils/libdw/libdwP.h
Line
Count
Source (jump to first uncovered line)
1
/* Internal definitions for libdw.
2
   Copyright (C) 2002-2011, 2013-2018 Red Hat, Inc.
3
   This file is part of elfutils.
4
5
   This file is free software; you can redistribute it and/or modify
6
   it under the terms of either
7
8
     * the GNU Lesser General Public License as published by the Free
9
       Software Foundation; either version 3 of the License, or (at
10
       your option) any later version
11
12
   or
13
14
     * the GNU General Public License as published by the Free
15
       Software Foundation; either version 2 of the License, or (at
16
       your option) any later version
17
18
   or both in parallel, as here.
19
20
   elfutils is distributed in the hope that it will be useful, but
21
   WITHOUT ANY WARRANTY; without even the implied warranty of
22
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23
   General Public License for more details.
24
25
   You should have received copies of the GNU General Public License and
26
   the GNU Lesser General Public License along with this program.  If
27
   not, see <http://www.gnu.org/licenses/>.  */
28
29
#ifndef _LIBDWP_H
30
#define _LIBDWP_H 1
31
32
#include <stdbool.h>
33
#include <pthread.h>
34
35
#include "libdw.h"
36
#include "dwarf.h"
37
#include "eu-search.h"
38
39
40
/* Known location expressions already decoded.  */
41
struct loc_s
42
{
43
  void *addr;
44
  Dwarf_Op *loc;
45
  size_t nloc;
46
};
47
48
/* Known DW_OP_implicit_value blocks already decoded.
49
   This overlaps struct loc_s exactly, but only the
50
   first member really has to match.  */
51
struct loc_block_s
52
{
53
  void *addr;
54
  unsigned char *data;
55
  size_t length;
56
};
57
58
/* Already decoded .debug_line units.  */
59
struct files_lines_s
60
{
61
  Dwarf_Off debug_line_offset;
62
  Dwarf_Files *files;
63
  Dwarf_Lines *lines;
64
};
65
66
/* Valid indices for the section data.  */
67
enum
68
  {
69
    IDX_debug_info = 0,
70
    IDX_debug_types,
71
    IDX_debug_abbrev,
72
    IDX_debug_aranges,
73
    IDX_debug_addr,
74
    IDX_debug_line,
75
    IDX_debug_line_str,
76
    IDX_debug_frame,
77
    IDX_debug_loc,
78
    IDX_debug_loclists,
79
    IDX_debug_pubnames,
80
    IDX_debug_str,
81
    IDX_debug_str_offsets,
82
    IDX_debug_macinfo,
83
    IDX_debug_macro,
84
    IDX_debug_ranges,
85
    IDX_debug_rnglists,
86
    IDX_debug_cu_index,
87
    IDX_debug_tu_index,
88
    IDX_gnu_debugaltlink,
89
    IDX_last
90
  };
91
92
/* Valid indices for the string section's information.  */
93
enum string_section_index
94
  {
95
    STR_SCN_IDX_debug_line_str,
96
    STR_SCN_IDX_debug_str,
97
    STR_SCN_IDX_last
98
  };
99
100
/* Error values.  */
101
enum
102
{
103
  DWARF_E_NOERROR = 0,
104
  DWARF_E_UNKNOWN_ERROR,
105
  DWARF_E_INVALID_ACCESS,
106
  DWARF_E_NO_REGFILE,
107
  DWARF_E_IO_ERROR,
108
  DWARF_E_INVALID_ELF,
109
  DWARF_E_NO_DWARF,
110
  DWARF_E_COMPRESSED_ERROR,
111
  DWARF_E_NOELF,
112
  DWARF_E_GETEHDR_ERROR,
113
  DWARF_E_NOMEM,
114
  DWARF_E_UNIMPL,
115
  DWARF_E_INVALID_CMD,
116
  DWARF_E_INVALID_VERSION,
117
  DWARF_E_INVALID_FILE,
118
  DWARF_E_NO_ENTRY,
119
  DWARF_E_INVALID_DWARF,
120
  DWARF_E_NO_STRING,
121
  DWARF_E_NO_DEBUG_STR,
122
  DWARF_E_NO_DEBUG_LINE_STR,
123
  DWARF_E_NO_STR_OFFSETS,
124
  DWARF_E_NO_ADDR,
125
  DWARF_E_NO_CONSTANT,
126
  DWARF_E_NO_REFERENCE,
127
  DWARF_E_INVALID_REFERENCE,
128
  DWARF_E_NO_DEBUG_LINE,
129
  DWARF_E_INVALID_DEBUG_LINE,
130
  DWARF_E_TOO_BIG,
131
  DWARF_E_VERSION,
132
  DWARF_E_INVALID_DIR_IDX,
133
  DWARF_E_ADDR_OUTOFRANGE,
134
  DWARF_E_NO_DEBUG_LOC,
135
  DWARF_E_NO_DEBUG_LOCLISTS,
136
  DWARF_E_NO_LOC_VALUE,
137
  DWARF_E_NO_BLOCK,
138
  DWARF_E_INVALID_LINE_IDX,
139
  DWARF_E_INVALID_ARANGE_IDX,
140
  DWARF_E_NO_MATCH,
141
  DWARF_E_NO_FLAG,
142
  DWARF_E_INVALID_OFFSET,
143
  DWARF_E_NO_DEBUG_RANGES,
144
  DWARF_E_NO_DEBUG_RNGLISTS,
145
  DWARF_E_INVALID_CFI,
146
  DWARF_E_NO_ALT_DEBUGLINK,
147
  DWARF_E_INVALID_OPCODE,
148
  DWARF_E_NOT_CUDIE,
149
  DWARF_E_UNKNOWN_LANGUAGE,
150
  DWARF_E_NO_DEBUG_ADDR,
151
  DWARF_E_UNKNOWN_SECTION,
152
};
153
154
155
#include "dwarf_sig8_hash.h"
156
157
/* The type of Dwarf object, sorted by preference
158
   (if there is a higher order type, we pick that one over the others).  */
159
enum dwarf_type
160
  {
161
    TYPE_UNKNOWN = 0,
162
    TYPE_GNU_LTO = 16,
163
    TYPE_DWO = 32,
164
    TYPE_PLAIN = 64,
165
  };
166
167
/* This is the structure representing the debugging state.  */
168
struct Dwarf
169
{
170
  /* The underlying ELF file.  */
171
  Elf *elf;
172
173
  /* The (absolute) path to the ELF file, if known.  To help locating
174
     dwp files.  */
175
  char *elfpath;
176
177
  /* The (absolute) path to the ELF dir, if known.  To help locating
178
     alt and dwo files.  */
179
  char *debugdir;
180
181
  /* dwz alternate DWARF file.  */
182
  Dwarf *alt_dwarf;
183
184
  /* DWARF package file.  */
185
  Dwarf *dwp_dwarf;
186
187
  /* The section data.  */
188
  Elf_Data *sectiondata[IDX_last];
189
190
  /* Size of a prefix of string sections, where any string will be
191
     null-terminated. */
192
  size_t string_section_size[STR_SCN_IDX_last];
193
194
  /* True if the file has a byte order different from the host.  */
195
  bool other_byte_order;
196
197
  /* If true, we allocated the ELF descriptor ourselves.  */
198
  bool free_elf;
199
200
  /* If >= 0, we allocated the alt_dwarf ourselves and must end it and
201
     close this file descriptor.  */
202
  int alt_fd;
203
204
  /* File descriptor of DWARF package file.  */
205
  int dwp_fd;
206
207
  /* Information for traversing the .debug_pubnames section.  This is
208
     an array and separately allocated with malloc.  */
209
  struct pubnames_s
210
  {
211
    Dwarf_Off cu_offset;
212
    Dwarf_Off set_start;
213
    unsigned int cu_header_size;
214
    int address_len;
215
  } *pubnames_sets;
216
  size_t pubnames_nsets;
217
218
  /* Search tree for the CUs.  */
219
  search_tree cu_tree;
220
  Dwarf_Off next_cu_offset;
221
222
  /* Search tree and sig8 hash table for .debug_types type units.  */
223
  search_tree tu_tree;
224
  Dwarf_Off next_tu_offset;
225
  Dwarf_Sig8_Hash sig8_hash;
226
227
  /* Search tree for split Dwarf associated with CUs in this debug.  */
228
  search_tree split_tree;
229
230
  /* Search tree for .debug_macro operator tables.  */
231
  search_tree macro_ops_tree;
232
233
  /* Search tree for decoded .debug_line units.  */
234
  search_tree files_lines_tree;
235
236
  /* Address ranges read from .debug_aranges.  */
237
  Dwarf_Aranges *aranges;
238
239
  /* Address ranges inferred from CUs.  */
240
  Dwarf_Aranges *dieranges;
241
242
  /* Cached info from the CFI section.  */
243
  struct Dwarf_CFI_s *cfi;
244
245
  /* DWARF package file CU index section.  */
246
  struct Dwarf_Package_Index_s *cu_index;
247
  /* DWARF package file TU index section.  */
248
  struct Dwarf_Package_Index_s *tu_index;
249
250
  /* Fake loc CU.  Used when synthesizing attributes for Dwarf_Ops that
251
     came from a location list entry in dwarf_getlocation_attr.
252
     Depending on version this is the .debug_loc or .debug_loclists
253
     section (could be both if mixing CUs with different DWARF versions).  */
254
  struct Dwarf_CU *fake_loc_cu;
255
  struct Dwarf_CU *fake_loclists_cu;
256
257
  /* Similar for addrx/constx, which will come from .debug_addr section.  */
258
  struct Dwarf_CU *fake_addr_cu;
259
260
  enum dwarf_type type;
261
262
  /* Supporting lock for internal memory handling.  Ensures threads that have
263
     an entry in the mem_tails array are not disturbed by new threads doing
264
     allocations for this Dwarf.  */
265
  pthread_rwlock_t mem_rwl;
266
267
  /* Recursive mutex intended for setting/getting alt_dwarf, next_tu_offset,
268
     and next_cu_offset.  Should be held when calling
269
     __libdw_intern_next_unit.  */
270
  mutex_define(, dwarf_lock);
271
272
  /* Synchronize access to dwarf_macro_getsrcfiles and cache_op_table.  */
273
  mutex_define(, macro_lock);
274
275
  /* Internal memory handling.  This is basically a simplified thread-local
276
     reimplementation of obstacks.  Unfortunately the standard obstack
277
     implementation is not usable in libraries.  */
278
  size_t mem_stacks;
279
  struct libdw_memblock
280
  {
281
    size_t size;
282
    size_t remaining;
283
    struct libdw_memblock *prev;
284
    char mem[0];
285
  } **mem_tails;
286
287
  /* Default size of allocated memory blocks.  */
288
  size_t mem_default_size;
289
290
  /* Registered OOM handler.  */
291
  Dwarf_OOM oom_handler;
292
};
293
294
295
/* Abbreviation representation.  */
296
struct Dwarf_Abbrev
297
{
298
  Dwarf_Off offset;   /* Offset to start of abbrev into .debug_abbrev.  */
299
  unsigned char *attrp;   /* Pointer to start of attribute name/form pairs. */
300
  bool has_children : 1;  /* Whether or not the DIE has children. */
301
  unsigned int code : 31; /* The (unique) abbrev code.  */
302
  unsigned int tag;   /* The tag of the DIE. */
303
} attribute_packed;
304
305
#include "dwarf_abbrev_hash.h"
306
307
308
/* Files in line information records.  */
309
struct Dwarf_Files_s
310
  {
311
    unsigned int ndirs;
312
    unsigned int nfiles;
313
    struct Dwarf_Fileinfo_s
314
    {
315
      char *name;
316
      Dwarf_Word mtime;
317
      Dwarf_Word length;
318
    } info[0];
319
    /* nfiles of those, followed by char *[ndirs].  */
320
  };
321
typedef struct Dwarf_Fileinfo_s Dwarf_Fileinfo;
322
323
324
/* Representation of a row in the line table.  */
325
326
struct Dwarf_Line_s
327
{
328
  Dwarf_Files *files;
329
330
  Dwarf_Addr addr;
331
  unsigned int file;
332
  int line;
333
  unsigned short int column;
334
  unsigned int is_stmt:1;
335
  unsigned int basic_block:1;
336
  unsigned int end_sequence:1;
337
  unsigned int prologue_end:1;
338
  unsigned int epilogue_begin:1;
339
  /* The remaining bit fields are not flags, but hold values presumed to be
340
     small.  All the flags and other bit fields should add up to 48 bits
341
     to give the whole struct a nice round size.  */
342
  unsigned int op_index:8;
343
  unsigned int isa:8;
344
  unsigned int discriminator:24;
345
  /* These are currently only used for the NVIDIA extensions.  */
346
  unsigned int context;
347
  unsigned int function_name;
348
};
349
350
struct Dwarf_Lines_s
351
{
352
  size_t nlines;
353
  struct Dwarf_Line_s info[0];
354
};
355
356
/* Representation of address ranges.  */
357
struct Dwarf_Aranges_s
358
{
359
  Dwarf *dbg;
360
  size_t naranges;
361
362
  struct Dwarf_Arange_s
363
  {
364
    Dwarf_Addr addr;
365
    Dwarf_Word length;
366
    Dwarf_Off offset;
367
  } info[0];
368
};
369
370
/* DWARF package file unit index.  */
371
typedef struct Dwarf_Package_Index_s
372
{
373
  Dwarf *dbg;
374
  uint32_t section_count;
375
  uint32_t unit_count;
376
  uint32_t slot_count;
377
  /* Mapping from DW_SECT_* - 1 to column number in the section tables, or
378
     UINT32_MAX if not present.  */
379
  uint32_t sections[DW_SECT_RNGLISTS];
380
  /* Row number of last unit found in the index.  */
381
  uint32_t last_unit_found;
382
  const unsigned char *hash_table;
383
  const unsigned char *indices;
384
  const unsigned char *section_offsets;
385
  const unsigned char *section_sizes;
386
  /* If DW_SECT_INFO section offsets were truncated to 32 bits, recovered
387
     64-bit offsets.  */
388
  Dwarf_Off *debug_info_offsets;
389
} Dwarf_Package_Index;
390
391
/* CU representation.  */
392
struct Dwarf_CU
393
{
394
  Dwarf *dbg;
395
  Dwarf_Off start;
396
  Dwarf_Off end;
397
  /* Row number of this unit in DWARF package file index.  */
398
  uint32_t dwp_row;
399
  uint8_t address_size;
400
  uint8_t offset_size;
401
  uint16_t version;
402
403
  size_t sec_idx; /* Normally .debug_info, could be .debug_type or "fake". */
404
405
  /* The unit type if version >= 5.  Otherwise 0 for normal CUs (from
406
     .debug_info) or 1 for v4 type units (from .debug_types).  */
407
  uint8_t unit_type;
408
409
  /* Zero if the unit type doesn't support a die/type offset and/or id/sig.
410
     Nonzero if it is a v4 type unit or for DWARFv5 units depending on
411
     unit_type.  */
412
  size_t subdie_offset;
413
  uint64_t unit_id8;
414
415
  /* If this is a skeleton unit this points to the split compile unit.
416
     Or the other way around if this is a split compile unit.  Set to -1
417
     if not yet searched.  Always use __libdw_find_split_unit to access
418
     this field.  */
419
  struct Dwarf_CU *split;
420
421
  /* Hash table for the abbreviations.  */
422
  Dwarf_Abbrev_Hash abbrev_hash;
423
  /* Offset of the first abbreviation.  */
424
  size_t orig_abbrev_offset;
425
  /* Offset past last read abbreviation.  */
426
  size_t last_abbrev_offset;
427
428
  /* The srcline information.  */
429
  Dwarf_Lines *lines;
430
431
  /* The source file information.  */
432
  Dwarf_Files *files;
433
434
  /* Known location lists.  */
435
  search_tree locs_tree;
436
437
  /* Base address for use with ranges and locs.
438
     Don't access directly, call __libdw_cu_base_address.  */
439
  Dwarf_Addr base_address;
440
441
  /* The offset into the .debug_addr section where index zero begins.
442
     Don't access directly, call __libdw_cu_addr_base.  */
443
  Dwarf_Off addr_base;
444
445
  /* The offset into the .debug_str_offsets section where index zero begins.
446
     Don't access directly, call __libdw_cu_str_off_base.  */
447
  Dwarf_Off str_off_base;
448
449
  /* The offset into the .debug_ranges section to use for GNU
450
     DebugFission split units.  Don't access directly, call
451
     __libdw_cu_ranges_base.  */
452
  Dwarf_Off ranges_base;
453
454
  /* The start of the offset table in .debug_loclists.
455
     Don't access directly, call __libdw_cu_locs_base.  */
456
  Dwarf_Off locs_base;
457
458
  /* Synchronize access to the abbrev member of a Dwarf_Die that
459
     refers to this Dwarf_CU.  Covers __libdw_die_abbrev. */
460
  rwlock_define(, abbrev_lock);
461
462
  /* Synchronize access to the split member of this Dwarf_CU.
463
     Covers __libdw_find_split_unit.  */
464
  rwlock_define(, split_lock);
465
466
  /* Synchronize access to the lines and files members.
467
     Covers dwarf_getsrclines and dwarf_getsrcfiles.  */
468
  mutex_define(, src_lock);
469
470
  /* Synchronize access to the str_off_base of this Dwarf_CU.
471
     Covers __libdw_str_offsets_base_off.  */
472
  mutex_define(, str_off_base_lock);
473
474
  /* Synchronize access to is_constant_offset.  Should also be held
475
     when calling __libdw_intern_expression with Dwarf_CU members.  */
476
  mutex_define(, intern_lock);
477
478
  /* Memory boundaries of this CU.  */
479
  void *startp;
480
  void *endp;
481
};
482
483
/* Aliases to avoid PLTs.  */
484
INTDECL (dwarf_aggregate_size)
485
INTDECL (dwarf_attr)
486
INTDECL (dwarf_attr_integrate)
487
INTDECL (dwarf_begin)
488
INTDECL (dwarf_begin_elf)
489
INTDECL (dwarf_child)
490
INTDECL (dwarf_cu_dwp_section_info)
491
INTDECL (dwarf_default_lower_bound)
492
INTDECL (dwarf_dieoffset)
493
INTDECL (dwarf_diename)
494
INTDECL (dwarf_end)
495
INTDECL (dwarf_entrypc)
496
INTDECL (dwarf_errmsg)
497
INTDECL (dwarf_formaddr)
498
INTDECL (dwarf_formblock)
499
INTDECL (dwarf_formref_die)
500
INTDECL (dwarf_formsdata)
501
INTDECL (dwarf_formstring)
502
INTDECL (dwarf_formudata)
503
INTDECL (dwarf_getabbrevattr_data)
504
INTDECL (dwarf_getalt)
505
INTDECL (dwarf_getarange_addr)
506
INTDECL (dwarf_getarangeinfo)
507
INTDECL (dwarf_getaranges)
508
INTDECL (dwarf_getlocation_die)
509
INTDECL (dwarf_getsrcfiles)
510
INTDECL (dwarf_getsrclines)
511
INTDECL (dwarf_get_units)
512
INTDECL (dwarf_hasattr)
513
INTDECL (dwarf_haschildren)
514
INTDECL (dwarf_haspc)
515
INTDECL (dwarf_highpc)
516
INTDECL (dwarf_language)
517
INTDECL (dwarf_language_lower_bound)
518
INTDECL (dwarf_lowpc)
519
INTDECL (dwarf_nextcu)
520
INTDECL (dwarf_next_unit)
521
INTDECL (dwarf_offdie)
522
INTDECL (dwarf_peel_type)
523
INTDECL (dwarf_ranges)
524
INTDECL (dwarf_setalt)
525
INTDECL (dwarf_siblingof)
526
INTDECL (dwarf_srclang)
527
INTDECL (dwarf_tag)
528
529
#define ISV4TU(cu) ((cu)->version == 4 && (cu)->sec_idx == IDX_debug_types)
530
531
/* Compute the offset of a CU's first DIE from the CU offset.
532
   CU must be a valid/known version/unit_type.  */
533
static inline Dwarf_Off
534
__libdw_first_die_from_cu_start (Dwarf_Off cu_start,
535
         uint8_t offset_size,
536
         uint16_t version,
537
         uint8_t unit_type)
538
0
{
539
/*
540
  assert (offset_size == 4 || offset_size == 8);
541
  assert (version >= 2 && version <= 5);
542
  assert (unit_type == DW_UT_compile
543
    || unit_type == DW_UT_partial
544
    || unit_type == DW_UT_skeleton
545
    || unit_type == DW_UT_split_compile
546
    || unit_type == DW_UT_type
547
    || unit_type == DW_UT_split_type);
548
*/
549
550
0
  Dwarf_Off off = cu_start;
551
0
  if (version < 5)
552
0
    {
553
   /*
554
        LEN       VER     OFFSET    ADDR
555
      4-bytes + 2-bytes + 4-bytes + 1-byte  for 32-bit dwarf
556
     12-bytes + 2-bytes + 8-bytes + 1-byte  for 64-bit dwarf
557
   or in .debug_types,           SIGNATURE TYPE-OFFSET
558
      4-bytes + 2-bytes + 4-bytes + 1-byte + 8-bytes + 4-bytes  for 32-bit
559
     12-bytes + 2-bytes + 8-bytes + 1-byte + 8-bytes + 8-bytes  for 64-bit
560
561
   Note the trick in the computation.  If the offset_size is 4
562
   the '- 4' term changes the '3 *' (or '4 *') into a '2 *' (or '3 *).
563
   If the offset_size is 8 it accounts for the 4-byte escape value
564
   used at the start of the length.  */
565
0
      if (unit_type != DW_UT_type)
566
0
  off += 3 * offset_size - 4 + 3;
567
0
      else
568
0
  off += 4 * offset_size - 4 + 3 + 8;
569
0
    }
570
0
  else
571
0
    {
572
     /*
573
        LEN       VER      TYPE     ADDR     OFFSET   SIGNATURE  TYPE-OFFSET
574
      4-bytes + 2-bytes + 1-byte + 1-byte + 4-bytes + 8-bytes + 4-bytes 32-bit
575
     12-bytes + 2-bytes + 1-byte + 1-byte + 8-bytes + 8-bytes + 8-bytes 64-bit
576
        Both signature and type offset are optional.
577
578
        Note same 4/8 offset size trick as above.
579
        We explicitly ignore unknown unit types (see asserts above).  */
580
0
      off += 3 * offset_size - 4 + 4;
581
0
      if (unit_type == DW_UT_skeleton || unit_type == DW_UT_split_compile
582
0
    || unit_type == DW_UT_type || unit_type == DW_UT_split_type)
583
0
  {
584
0
    off += 8;
585
0
    if (unit_type == DW_UT_type || unit_type == DW_UT_split_type)
586
0
      off += offset_size;
587
0
  }
588
0
    }
589
590
0
  return off;
591
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_end.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_error.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: offline.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: find-debuginfo.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: open.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: image-header.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_frame.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: frame_unwind.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: gzip.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: mips_retval.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_end.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_tag.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_error.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_attr.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_child.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formudata.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formref_die.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_siblingof.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_diecu.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_hasattr.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_bytesize.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_bitsize.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formflag.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdw_findcu.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdw_form.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdw_alloc.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: frame-cache.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_frame_register.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_getalt.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_setalt.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_peel_type.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_report_elf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: relocate.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: linux-proc-maps.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: libdwfl_crc32.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: elf-from-memory.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: linux-pid-attach.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_begin.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_nextcu.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_offdie.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formstring.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_haschildren.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formsdata.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formref.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_srclang.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_getlocation.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: fde.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: cfi.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_getcfi.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_get_units.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: segment.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formaddr.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_lowpc.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_ranges.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_formblock.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: cie.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwarf_highpc.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: core-file.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: linux-core-attach.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: link_map.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_first_die_from_cu_start
Unexecuted instantiation: derelocate.c:__libdw_first_die_from_cu_start
592
593
static inline Dwarf_Off
594
__libdw_first_die_off_from_cu (struct Dwarf_CU *cu)
595
0
{
596
0
  return __libdw_first_die_from_cu_start (cu->start,
597
0
            cu->offset_size,
598
0
            cu->version,
599
0
            cu->unit_type);
600
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_end.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_error.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: offline.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: find-debuginfo.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: open.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: image-header.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_frame.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: frame_unwind.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: gzip.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: mips_retval.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_end.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_tag.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_error.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_attr.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_child.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formudata.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formref_die.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_siblingof.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_diecu.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_hasattr.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_bytesize.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_bitsize.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formflag.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdw_findcu.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdw_form.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdw_alloc.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: frame-cache.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_frame_register.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_getalt.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_setalt.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_peel_type.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_report_elf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: relocate.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: linux-proc-maps.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: libdwfl_crc32.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: elf-from-memory.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: linux-pid-attach.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_begin.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_nextcu.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_offdie.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formstring.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_haschildren.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formsdata.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formref.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_srclang.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_getlocation.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: fde.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: cfi.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_getcfi.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_get_units.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: segment.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formaddr.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_lowpc.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_ranges.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_formblock.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: cie.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwarf_highpc.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: core-file.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: linux-core-attach.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: link_map.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_first_die_off_from_cu
Unexecuted instantiation: derelocate.c:__libdw_first_die_off_from_cu
601
602
#define CUDIE(fromcu)                   \
603
0
  ((Dwarf_Die)                      \
604
0
   {                        \
605
0
     .cu = (fromcu),                    \
606
0
     .addr = ((char *) (fromcu)->dbg->sectiondata[cu_sec_idx (fromcu)]->d_buf \
607
0
        + __libdw_first_die_off_from_cu (fromcu))           \
608
0
   })
609
610
#define SUBDIE(fromcu)                    \
611
0
  ((Dwarf_Die)                      \
612
0
   {                        \
613
0
     .cu = (fromcu),                    \
614
0
     .addr = ((char *) (fromcu)->dbg->sectiondata[cu_sec_idx (fromcu)]->d_buf \
615
0
        + (fromcu)->start + (fromcu)->subdie_offset)          \
616
0
   })
617
618
619
/* Prototype of a single .debug_macro operator.  */
620
typedef struct
621
{
622
  Dwarf_Word nforms;
623
  unsigned char const *forms;
624
} Dwarf_Macro_Op_Proto;
625
626
/* Prototype table.  */
627
typedef struct
628
{
629
  Dwarf *dbg;
630
631
  /* Offset of .debug_macro section.  */
632
  Dwarf_Off offset;
633
634
  /* Offset of associated .debug_line section.  */
635
  Dwarf_Off line_offset;
636
637
  /* The source file information.  */
638
  Dwarf_Files *files;
639
640
  /* If this macro unit was opened through dwarf_getmacros or
641
     dwarf_getmacros_die, this caches value of DW_AT_comp_dir, if
642
     present.  */
643
  const char *comp_dir;
644
645
  /* Header length.  */
646
  Dwarf_Half header_len;
647
648
  uint16_t version;
649
  uint8_t address_size;
650
  uint8_t offset_size;
651
  uint8_t sec_index;  /* IDX_debug_macro or IDX_debug_macinfo.  */
652
653
  /* Shows where in TABLE each opcode is defined.  Since opcode 0 is
654
     never used, it stores index of opcode X in X-1'th element.  The
655
     value of 0xff means not stored at all.  */
656
  unsigned char opcodes[255];
657
658
  /* Individual opcode prototypes.  */
659
  Dwarf_Macro_Op_Proto table[];
660
} Dwarf_Macro_Op_Table;
661
662
struct Dwarf_Macro_s
663
{
664
  Dwarf_Macro_Op_Table *table;
665
  Dwarf_Attribute *attributes;
666
  uint8_t opcode;
667
};
668
669
static inline Dwarf_Word
670
libdw_macro_nforms (Dwarf_Macro *macro)
671
0
{
672
0
  return macro->table->table[macro->table->opcodes[macro->opcode - 1]].nforms;
673
0
}
Unexecuted instantiation: dwfl_begin.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_end.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_error.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module.c:libdw_macro_nforms
Unexecuted instantiation: offline.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module_getdwarf.c:libdw_macro_nforms
Unexecuted instantiation: find-debuginfo.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:libdw_macro_nforms
Unexecuted instantiation: libdwfl_crc32_file.c:libdw_macro_nforms
Unexecuted instantiation: open.c:libdw_macro_nforms
Unexecuted instantiation: image-header.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_frame.c:libdw_macro_nforms
Unexecuted instantiation: frame_unwind.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_frame_pc.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_frame_regs.c:libdw_macro_nforms
Unexecuted instantiation: gzip.c:libdw_macro_nforms
Unexecuted instantiation: dwflst_process_tracker.c:libdw_macro_nforms
Unexecuted instantiation: dwflst_tracker_find_elf.c:libdw_macro_nforms
Unexecuted instantiation: dwflst_tracker_elftab.c:libdw_macro_nforms
Unexecuted instantiation: dwflst_tracker_dwfltab.c:libdw_macro_nforms
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:libdw_macro_nforms
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:libdw_macro_nforms
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:libdw_macro_nforms
Unexecuted instantiation: mips_retval.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_begin_elf.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_end.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_tag.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_error.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_attr.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_abbrev_hash.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_attr_integrate.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_hasattr_integrate.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_child.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formudata.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formref_die.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_siblingof.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_diecu.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_hasattr.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_bytesize.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_bitsize.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formflag.c:libdw_macro_nforms
Unexecuted instantiation: libdw_findcu.c:libdw_macro_nforms
Unexecuted instantiation: libdw_form.c:libdw_macro_nforms
Unexecuted instantiation: libdw_alloc.c:libdw_macro_nforms
Unexecuted instantiation: frame-cache.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_frame_cfa.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_frame_register.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_cfi_addrframe.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_cfi_end.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_aggregate_size.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_getalt.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_setalt.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_peel_type.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_default_lower_bound.c:libdw_macro_nforms
Unexecuted instantiation: libdw_find_split_unit.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_report_elf.c:libdw_macro_nforms
Unexecuted instantiation: relocate.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module_build_id.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_build_id_find_elf.c:libdw_macro_nforms
Unexecuted instantiation: linux-proc-maps.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_addrmodule.c:libdw_macro_nforms
Unexecuted instantiation: libdwfl_crc32.c:libdw_macro_nforms
Unexecuted instantiation: elf-from-memory.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module_eh_cfi.c:libdw_macro_nforms
Unexecuted instantiation: linux-pid-attach.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_begin.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_getabbrev.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_nextcu.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_offdie.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formstring.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_haschildren.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formsdata.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formref.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_srclang.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_getlocation.c:libdw_macro_nforms
Unexecuted instantiation: fde.c:libdw_macro_nforms
Unexecuted instantiation: cfi.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_getcfi.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_getcfi_elf.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_get_units.c:libdw_macro_nforms
Unexecuted instantiation: segment.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formaddr.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_lowpc.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_ranges.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_formblock.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_next_cfi.c:libdw_macro_nforms
Unexecuted instantiation: cie.c:libdw_macro_nforms
Unexecuted instantiation: dwarf_highpc.c:libdw_macro_nforms
Unexecuted instantiation: core-file.c:libdw_macro_nforms
Unexecuted instantiation: linux-core-attach.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_segment_report_module.c:libdw_macro_nforms
Unexecuted instantiation: link_map.c:libdw_macro_nforms
Unexecuted instantiation: dwfl_module_report_build_id.c:libdw_macro_nforms
Unexecuted instantiation: derelocate.c:libdw_macro_nforms
674
675
/* Returns true for any allowed FORM in the opcode_operands_table as
676
   mentioned in the DWARF5 spec (6.3.1 Macro Information Header).
677
   Or those mentioned in DWARF5 spec (6.2.4.2 Vendor-defined Content
678
   Descriptions) for the directory/file table (plus DW_FORM_strp_sup).  */
679
static inline bool
680
libdw_valid_user_form (int form)
681
0
{
682
0
  switch (form)
683
0
    {
684
0
      case DW_FORM_block:
685
0
      case DW_FORM_block1:
686
0
      case DW_FORM_block2:
687
0
      case DW_FORM_block4:
688
0
      case DW_FORM_data1:
689
0
      case DW_FORM_data2:
690
0
      case DW_FORM_data4:
691
0
      case DW_FORM_data8:
692
0
      case DW_FORM_data16:
693
0
      case DW_FORM_flag:
694
0
      case DW_FORM_line_strp:
695
0
      case DW_FORM_sdata:
696
0
      case DW_FORM_sec_offset:
697
0
      case DW_FORM_string:
698
0
      case DW_FORM_strp:
699
0
      case DW_FORM_strp_sup:
700
0
      case DW_FORM_strx:
701
0
      case DW_FORM_strx1:
702
0
      case DW_FORM_strx2:
703
0
      case DW_FORM_strx3:
704
0
      case DW_FORM_strx4:
705
0
      case DW_FORM_udata:
706
0
  return true;
707
0
      default:
708
0
  return false;
709
0
    }
710
0
}
Unexecuted instantiation: dwfl_begin.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_end.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_error.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module.c:libdw_valid_user_form
Unexecuted instantiation: offline.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module_getdwarf.c:libdw_valid_user_form
Unexecuted instantiation: find-debuginfo.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:libdw_valid_user_form
Unexecuted instantiation: libdwfl_crc32_file.c:libdw_valid_user_form
Unexecuted instantiation: open.c:libdw_valid_user_form
Unexecuted instantiation: image-header.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_frame.c:libdw_valid_user_form
Unexecuted instantiation: frame_unwind.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_frame_pc.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_frame_regs.c:libdw_valid_user_form
Unexecuted instantiation: gzip.c:libdw_valid_user_form
Unexecuted instantiation: dwflst_process_tracker.c:libdw_valid_user_form
Unexecuted instantiation: dwflst_tracker_find_elf.c:libdw_valid_user_form
Unexecuted instantiation: dwflst_tracker_elftab.c:libdw_valid_user_form
Unexecuted instantiation: dwflst_tracker_dwfltab.c:libdw_valid_user_form
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:libdw_valid_user_form
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:libdw_valid_user_form
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:libdw_valid_user_form
Unexecuted instantiation: mips_retval.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_begin_elf.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_end.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_tag.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_error.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_attr.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_abbrev_hash.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_attr_integrate.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_hasattr_integrate.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_child.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formudata.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formref_die.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_siblingof.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_diecu.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_hasattr.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_bytesize.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_bitsize.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formflag.c:libdw_valid_user_form
Unexecuted instantiation: libdw_findcu.c:libdw_valid_user_form
Unexecuted instantiation: libdw_form.c:libdw_valid_user_form
Unexecuted instantiation: libdw_alloc.c:libdw_valid_user_form
Unexecuted instantiation: frame-cache.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_frame_cfa.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_frame_register.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_cfi_addrframe.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_cfi_end.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_aggregate_size.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_getalt.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_setalt.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_peel_type.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_default_lower_bound.c:libdw_valid_user_form
Unexecuted instantiation: libdw_find_split_unit.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_report_elf.c:libdw_valid_user_form
Unexecuted instantiation: relocate.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module_build_id.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_build_id_find_elf.c:libdw_valid_user_form
Unexecuted instantiation: linux-proc-maps.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_addrmodule.c:libdw_valid_user_form
Unexecuted instantiation: libdwfl_crc32.c:libdw_valid_user_form
Unexecuted instantiation: elf-from-memory.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module_eh_cfi.c:libdw_valid_user_form
Unexecuted instantiation: linux-pid-attach.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_begin.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_getabbrev.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_nextcu.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_offdie.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formstring.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_haschildren.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formsdata.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formref.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_srclang.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_getlocation.c:libdw_valid_user_form
Unexecuted instantiation: fde.c:libdw_valid_user_form
Unexecuted instantiation: cfi.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_getcfi.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_getcfi_elf.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_get_units.c:libdw_valid_user_form
Unexecuted instantiation: segment.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formaddr.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_lowpc.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_ranges.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_formblock.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_next_cfi.c:libdw_valid_user_form
Unexecuted instantiation: cie.c:libdw_valid_user_form
Unexecuted instantiation: dwarf_highpc.c:libdw_valid_user_form
Unexecuted instantiation: core-file.c:libdw_valid_user_form
Unexecuted instantiation: linux-core-attach.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_segment_report_module.c:libdw_valid_user_form
Unexecuted instantiation: link_map.c:libdw_valid_user_form
Unexecuted instantiation: dwfl_module_report_build_id.c:libdw_valid_user_form
Unexecuted instantiation: derelocate.c:libdw_valid_user_form
711
712
713
/* We have to include the file at this point because the inline
714
   functions access internals of the Dwarf structure.  */
715
#include "memory-access.h"
716
717
718
/* Set error value.  */
719
extern void __libdw_seterrno (int value) internal_function;
720
721
722
/* Memory handling, the easy parts.  */
723
#define libdw_alloc(dbg, type, tsize, cnt) \
724
0
  ({ struct libdw_memblock *_tail = __libdw_alloc_tail(dbg);          \
725
0
     size_t _required = (tsize) * (cnt);              \
726
0
     type *_result = (type *) (_tail->mem + (_tail->size - _tail->remaining));\
727
0
     size_t _padding = ((__alignof (type)             \
728
0
       - ((uintptr_t) _result & (__alignof (type) - 1)))    \
729
0
      & (__alignof (type) - 1));            \
730
0
     if (unlikely (_tail->remaining < _required + _padding))         \
731
0
       _result = (type *) __libdw_allocate (dbg, _required, __alignof (type));\
732
0
     else                     \
733
0
       {                     \
734
0
   _required += _padding;                 \
735
0
   _result = (type *) ((char *) _result + _padding);          \
736
0
   _tail->remaining -= _required;               \
737
0
       }                      \
738
0
     _result; })
739
740
#define libdw_typed_alloc(dbg, type) \
741
0
  libdw_alloc (dbg, type, sizeof (type), 1)
742
743
/* Can only be used to undo the last libdw_alloc.  */
744
#define libdw_unalloc(dbg, type, tsize, cnt) \
745
0
  ({ struct libdw_memblock *_tail = __libdw_thread_tail (dbg);          \
746
0
     size_t _required = (tsize) * (cnt);              \
747
0
     /* We cannot know the padding, it is lost.  */           \
748
0
     _tail->remaining += _required; })                \
749
750
#define libdw_typed_unalloc(dbg, type) \
751
0
  libdw_unalloc (dbg, type, sizeof (type), 1)
752
753
/* Callback to choose a thread-local memory allocation stack.  */
754
extern struct libdw_memblock *__libdw_alloc_tail (Dwarf* dbg)
755
     __nonnull_attribute__ (1);
756
757
extern struct libdw_memblock *__libdw_thread_tail (Dwarf* dbg)
758
     __nonnull_attribute__ (1);
759
760
/* Callback to allocate more.  */
761
extern void *__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align)
762
     __attribute__ ((__malloc__)) __nonnull_attribute__ (1);
763
764
/* Default OOM handler.  */
765
extern void __libdw_oom (void) __attribute ((noreturn)) attribute_hidden;
766
767
/* Read next unit (or v4 debug type) and return next offset.  Doesn't
768
   create an actual Dwarf_CU just provides necessary header fields.  */
769
extern int
770
internal_function
771
__libdw_next_unit (Dwarf *dbg, bool v4_debug_types, Dwarf_Off off,
772
       Dwarf_Off *next_off, size_t *header_sizep,
773
       Dwarf_Half *versionp, uint8_t *unit_typep,
774
       Dwarf_Off *abbrev_offsetp, uint8_t *address_sizep,
775
       uint8_t *offset_sizep, uint64_t *unit_id8p,
776
       Dwarf_Off *subdie_offsetp)
777
     __nonnull_attribute__ (4) internal_function;
778
779
/* Allocate the internal data for a unit not seen before.  */
780
extern struct Dwarf_CU *__libdw_intern_next_unit (Dwarf *dbg, bool debug_types)
781
     __nonnull_attribute__ (1) internal_function;
782
783
/* Find CU for given offset.  */
784
extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset, bool tu)
785
     __nonnull_attribute__ (1) internal_function;
786
787
/* Find CU for given DIE address.  */
788
extern struct Dwarf_CU *__libdw_findcu_addr (Dwarf *dbg, void *addr)
789
     __nonnull_attribute__ (1) internal_function;
790
791
/* Find split Dwarf for given DIE address.  */
792
extern struct Dwarf *__libdw_find_split_dbg_addr (Dwarf *dbg, void *addr)
793
     __nonnull_attribute__ (1) internal_function;
794
795
/* Find the split (or skeleton) unit.  */
796
extern struct Dwarf_CU *__libdw_find_split_unit (Dwarf_CU *cu)
797
     internal_function;
798
799
/* Find a unit in a DWARF package file for __libdw_intern_next_unit.  */
800
extern int __libdw_dwp_find_unit (Dwarf *dbg, bool debug_types, Dwarf_Off off,
801
          uint16_t version, uint8_t unit_type,
802
          uint64_t unit_id8, uint32_t *unit_rowp,
803
          Dwarf_Off *abbrev_offsetp)
804
     __nonnull_attribute__ (1, 7, 8) internal_function;
805
806
/* Find the compilation unit in a DWARF package file with the given id.  */
807
extern Dwarf_CU *__libdw_dwp_findcu_id (Dwarf *dbg, uint64_t unit_id8)
808
     __nonnull_attribute__ (1) internal_function;
809
810
/* Get abbreviation with given code.  */
811
extern Dwarf_Abbrev *__libdw_findabbrev (struct Dwarf_CU *cu,
812
           unsigned int code)
813
     __nonnull_attribute__ (1) internal_function;
814
815
/* Get abbreviation at given offset.  */
816
extern Dwarf_Abbrev *__libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu,
817
          Dwarf_Off offset, size_t *lengthp)
818
     __nonnull_attribute__ (1) internal_function;
819
820
/* Get abbreviation of given DIE, and optionally set *READP to the DIE memory
821
   just past the abbreviation code.  */
822
static inline Dwarf_Abbrev *
823
__nonnull_attribute__ (1)
824
__libdw_dieabbrev (Dwarf_Die *die, const unsigned char **readp)
825
0
{
826
0
  if (unlikely (die->cu == NULL))
827
0
    {
828
0
      die->abbrev = DWARF_END_ABBREV;
829
0
      return DWARF_END_ABBREV;
830
0
    }
831
832
0
  rwlock_wrlock (die->cu->abbrev_lock);
833
834
  /* Do we need to get the abbreviation, or need to read after the code?  */
835
0
  if (die->abbrev == NULL || readp != NULL)
836
0
    {
837
      /* Get the abbreviation code.  */
838
0
      unsigned int code;
839
0
      const unsigned char *addr = die->addr;
840
841
0
      if (addr >= (const unsigned char *) die->cu->endp)
842
0
  {
843
0
    die->abbrev = DWARF_END_ABBREV;
844
0
    rwlock_unlock (die->cu->abbrev_lock);
845
0
    return DWARF_END_ABBREV;
846
0
  }
847
848
0
      get_uleb128 (code, addr, die->cu->endp);
849
0
      if (readp != NULL)
850
0
  *readp = addr;
851
852
      /* Find the abbreviation.  */
853
0
      if (die->abbrev == NULL)
854
0
  die->abbrev = __libdw_findabbrev (die->cu, code);
855
0
    }
856
857
0
  Dwarf_Abbrev *result = die->abbrev;
858
0
  rwlock_unlock (die->cu->abbrev_lock);
859
860
0
  return result;
861
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_end.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_error.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module.c:__libdw_dieabbrev
Unexecuted instantiation: offline.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_dieabbrev
Unexecuted instantiation: find-debuginfo.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_dieabbrev
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_dieabbrev
Unexecuted instantiation: open.c:__libdw_dieabbrev
Unexecuted instantiation: image-header.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_frame.c:__libdw_dieabbrev
Unexecuted instantiation: frame_unwind.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_dieabbrev
Unexecuted instantiation: gzip.c:__libdw_dieabbrev
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_dieabbrev
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_dieabbrev
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_dieabbrev
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_dieabbrev
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_dieabbrev
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_dieabbrev
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_dieabbrev
Unexecuted instantiation: mips_retval.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_end.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_tag.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_error.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_attr.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_child.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formudata.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formref_die.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_siblingof.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_diecu.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_hasattr.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_bytesize.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_bitsize.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formflag.c:__libdw_dieabbrev
Unexecuted instantiation: libdw_findcu.c:__libdw_dieabbrev
Unexecuted instantiation: libdw_form.c:__libdw_dieabbrev
Unexecuted instantiation: libdw_alloc.c:__libdw_dieabbrev
Unexecuted instantiation: frame-cache.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_frame_register.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_getalt.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_setalt.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_peel_type.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_dieabbrev
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_report_elf.c:__libdw_dieabbrev
Unexecuted instantiation: relocate.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_dieabbrev
Unexecuted instantiation: linux-proc-maps.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_dieabbrev
Unexecuted instantiation: libdwfl_crc32.c:__libdw_dieabbrev
Unexecuted instantiation: elf-from-memory.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_dieabbrev
Unexecuted instantiation: linux-pid-attach.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_begin.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_nextcu.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_offdie.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formstring.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_haschildren.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formsdata.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formref.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_srclang.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_getlocation.c:__libdw_dieabbrev
Unexecuted instantiation: fde.c:__libdw_dieabbrev
Unexecuted instantiation: cfi.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_getcfi.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_get_units.c:__libdw_dieabbrev
Unexecuted instantiation: segment.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formaddr.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_lowpc.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_ranges.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_formblock.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_dieabbrev
Unexecuted instantiation: cie.c:__libdw_dieabbrev
Unexecuted instantiation: dwarf_highpc.c:__libdw_dieabbrev
Unexecuted instantiation: core-file.c:__libdw_dieabbrev
Unexecuted instantiation: linux-core-attach.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_dieabbrev
Unexecuted instantiation: link_map.c:__libdw_dieabbrev
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_dieabbrev
Unexecuted instantiation: derelocate.c:__libdw_dieabbrev
862
863
/* Helper functions for form handling.  */
864
extern size_t __libdw_form_val_compute_len (struct Dwarf_CU *cu,
865
              unsigned int form,
866
              const unsigned char *valp)
867
     __nonnull_attribute__ (1, 3) internal_function;
868
869
/* Find the length of a form attribute in DIE/info data.  */
870
static inline size_t
871
__nonnull_attribute__ (1, 3)
872
__libdw_form_val_len (struct Dwarf_CU *cu, unsigned int form,
873
          const unsigned char *valp)
874
0
{
875
  /* Small lookup table of forms with fixed lengths.  Absent indexes are
876
     initialized 0, so any truly desired 0 is set to 0x80 and masked.  */
877
0
  static const uint8_t form_lengths[] =
878
0
    {
879
0
      [DW_FORM_flag_present] = 0x80,
880
0
      [DW_FORM_implicit_const] = 0x80, /* Value is in abbrev, not in info.  */
881
882
0
      [DW_FORM_flag] = 1,
883
0
      [DW_FORM_data1] = 1, [DW_FORM_ref1] = 1,
884
0
      [DW_FORM_addrx1] = 1, [DW_FORM_strx1] = 1,
885
886
0
      [DW_FORM_data2] = 2, [DW_FORM_ref2] = 2,
887
0
      [DW_FORM_addrx2] = 2, [DW_FORM_strx2] = 2,
888
889
0
      [DW_FORM_addrx3] = 3, [DW_FORM_strx3] = 3,
890
891
0
      [DW_FORM_data4] = 4, [DW_FORM_ref4] = 4, [DW_FORM_ref_sup4] = 4,
892
0
      [DW_FORM_addrx4] = 4, [DW_FORM_strx4] = 4,
893
894
0
      [DW_FORM_ref_sig8] = 8,
895
0
      [DW_FORM_data8] = 8, [DW_FORM_ref8] = 8, [DW_FORM_ref_sup8] = 8,
896
897
0
      [DW_FORM_data16] = 16,
898
0
    };
899
900
  /* Return immediately for forms with fixed lengths.  */
901
0
  if (form < sizeof form_lengths / sizeof form_lengths[0])
902
0
    {
903
0
      uint8_t len = form_lengths[form];
904
0
      if (len != 0)
905
0
  {
906
0
    const unsigned char *endp = cu->endp;
907
0
    len &= 0x7f; /* Mask to allow 0x80 -> 0.  */
908
0
    if (unlikely (len > (size_t) (endp - valp)))
909
0
      {
910
0
        __libdw_seterrno (DWARF_E_INVALID_DWARF);
911
0
        return -1;
912
0
      }
913
0
    return len;
914
0
  }
915
0
    }
916
917
  /* Other forms require some computation.  */
918
0
  return __libdw_form_val_compute_len (cu, form, valp);
919
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_end.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_error.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module.c:__libdw_form_val_len
Unexecuted instantiation: offline.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_form_val_len
Unexecuted instantiation: find-debuginfo.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_form_val_len
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_form_val_len
Unexecuted instantiation: open.c:__libdw_form_val_len
Unexecuted instantiation: image-header.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_frame.c:__libdw_form_val_len
Unexecuted instantiation: frame_unwind.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_form_val_len
Unexecuted instantiation: gzip.c:__libdw_form_val_len
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_form_val_len
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_form_val_len
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_form_val_len
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_form_val_len
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_form_val_len
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_form_val_len
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_form_val_len
Unexecuted instantiation: mips_retval.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_end.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_tag.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_error.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_attr.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_child.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formudata.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formref_die.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_siblingof.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_diecu.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_hasattr.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_bytesize.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_bitsize.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formflag.c:__libdw_form_val_len
Unexecuted instantiation: libdw_findcu.c:__libdw_form_val_len
Unexecuted instantiation: libdw_form.c:__libdw_form_val_len
Unexecuted instantiation: libdw_alloc.c:__libdw_form_val_len
Unexecuted instantiation: frame-cache.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_frame_register.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_getalt.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_setalt.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_peel_type.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_form_val_len
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_report_elf.c:__libdw_form_val_len
Unexecuted instantiation: relocate.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_form_val_len
Unexecuted instantiation: linux-proc-maps.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_form_val_len
Unexecuted instantiation: libdwfl_crc32.c:__libdw_form_val_len
Unexecuted instantiation: elf-from-memory.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_form_val_len
Unexecuted instantiation: linux-pid-attach.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_begin.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_nextcu.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_offdie.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formstring.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_haschildren.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formsdata.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formref.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_srclang.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_getlocation.c:__libdw_form_val_len
Unexecuted instantiation: fde.c:__libdw_form_val_len
Unexecuted instantiation: cfi.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_getcfi.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_get_units.c:__libdw_form_val_len
Unexecuted instantiation: segment.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formaddr.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_lowpc.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_ranges.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_formblock.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_form_val_len
Unexecuted instantiation: cie.c:__libdw_form_val_len
Unexecuted instantiation: dwarf_highpc.c:__libdw_form_val_len
Unexecuted instantiation: core-file.c:__libdw_form_val_len
Unexecuted instantiation: linux-core-attach.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_form_val_len
Unexecuted instantiation: link_map.c:__libdw_form_val_len
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_form_val_len
Unexecuted instantiation: derelocate.c:__libdw_form_val_len
920
921
/* Helper function for DW_FORM_ref* handling.  */
922
extern int __libdw_formref (Dwarf_Attribute *attr, Dwarf_Off *return_offset)
923
     __nonnull_attribute__ (1, 2) internal_function;
924
925
926
/* Helper function to locate attribute.  */
927
extern unsigned char *__libdw_find_attr (Dwarf_Die *die,
928
           unsigned int search_name,
929
           unsigned int *codep,
930
           unsigned int *formp)
931
     __nonnull_attribute__ (1) internal_function;
932
933
/* Helper function to access integer attribute.  */
934
extern int __libdw_attr_intval (Dwarf_Die *die, int *valp, int attval)
935
     __nonnull_attribute__ (1, 2) internal_function;
936
937
/* Helper function to walk scopes.  */
938
struct Dwarf_Die_Chain
939
{
940
  Dwarf_Die die;
941
  struct Dwarf_Die_Chain *parent;
942
  bool prune;     /* The PREVISIT function can set this.  */
943
};
944
extern int __libdw_visit_scopes (unsigned int depth,
945
         struct Dwarf_Die_Chain *root,
946
         struct Dwarf_Die_Chain *imports,
947
         int (*previsit) (unsigned int depth,
948
              struct Dwarf_Die_Chain *,
949
              void *arg),
950
         int (*postvisit) (unsigned int depth,
951
               struct Dwarf_Die_Chain *,
952
               void *arg),
953
         void *arg)
954
  __nonnull_attribute__ (2, 4) internal_function;
955
956
/* Parse a DWARF Dwarf_Block into an array of Dwarf_Op's, and cache the
957
   result (via tsearch).  The owner of CACHE (typically a Dwarf_CU or
958
   Dwarf_CFI_s) must hold a lock when calling this function.  */
959
extern int __libdw_intern_expression (Dwarf *dbg,
960
              bool other_byte_order,
961
              unsigned int address_size,
962
              unsigned int ref_size,
963
              search_tree *cache,
964
              const Dwarf_Block *block,
965
              bool cfap, bool valuep,
966
              Dwarf_Op **llbuf, size_t *listlen,
967
              int sec_index)
968
  __nonnull_attribute__ (5, 6, 9, 10) internal_function;
969
970
extern Dwarf_Die *__libdw_offdie (Dwarf *dbg, Dwarf_Off offset,
971
          Dwarf_Die *result, bool debug_types)
972
  internal_function;
973
974
975
/* Return error code of last failing function call.  This value is kept
976
   separately for each thread.  */
977
extern int __dwarf_errno_internal (void);
978
979
980
/* Reader hooks.  */
981
982
/* Relocation hooks return -1 on error (in that case the error code
983
   must already have been set), 0 if there is no relocation and 1 if a
984
   relocation was present.*/
985
986
static inline int
987
__libdw_relocate_address (Dwarf *dbg __attribute__ ((unused)),
988
        int sec_index __attribute__ ((unused)),
989
        const void *addr __attribute__ ((unused)),
990
        int width __attribute__ ((unused)),
991
        Dwarf_Addr *val __attribute__ ((unused)))
992
0
{
993
0
  return 0;
994
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_end.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_error.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module.c:__libdw_relocate_address
Unexecuted instantiation: offline.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_relocate_address
Unexecuted instantiation: find-debuginfo.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_relocate_address
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_relocate_address
Unexecuted instantiation: open.c:__libdw_relocate_address
Unexecuted instantiation: image-header.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_frame.c:__libdw_relocate_address
Unexecuted instantiation: frame_unwind.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_relocate_address
Unexecuted instantiation: gzip.c:__libdw_relocate_address
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_relocate_address
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_relocate_address
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_relocate_address
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_relocate_address
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_relocate_address
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_relocate_address
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_relocate_address
Unexecuted instantiation: mips_retval.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_end.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_tag.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_error.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_attr.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_child.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formudata.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formref_die.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_siblingof.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_diecu.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_hasattr.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_bytesize.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_bitsize.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formflag.c:__libdw_relocate_address
Unexecuted instantiation: libdw_findcu.c:__libdw_relocate_address
Unexecuted instantiation: libdw_form.c:__libdw_relocate_address
Unexecuted instantiation: libdw_alloc.c:__libdw_relocate_address
Unexecuted instantiation: frame-cache.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_frame_register.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_getalt.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_setalt.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_peel_type.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_relocate_address
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_report_elf.c:__libdw_relocate_address
Unexecuted instantiation: relocate.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_relocate_address
Unexecuted instantiation: linux-proc-maps.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_relocate_address
Unexecuted instantiation: libdwfl_crc32.c:__libdw_relocate_address
Unexecuted instantiation: elf-from-memory.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_relocate_address
Unexecuted instantiation: linux-pid-attach.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_begin.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_nextcu.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_offdie.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formstring.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_haschildren.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formsdata.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formref.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_srclang.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_getlocation.c:__libdw_relocate_address
Unexecuted instantiation: fde.c:__libdw_relocate_address
Unexecuted instantiation: cfi.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_getcfi.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_get_units.c:__libdw_relocate_address
Unexecuted instantiation: segment.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formaddr.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_lowpc.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_ranges.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_formblock.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_relocate_address
Unexecuted instantiation: cie.c:__libdw_relocate_address
Unexecuted instantiation: dwarf_highpc.c:__libdw_relocate_address
Unexecuted instantiation: core-file.c:__libdw_relocate_address
Unexecuted instantiation: linux-core-attach.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_relocate_address
Unexecuted instantiation: link_map.c:__libdw_relocate_address
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_relocate_address
Unexecuted instantiation: derelocate.c:__libdw_relocate_address
995
996
static inline int
997
__libdw_relocate_offset (Dwarf *dbg __attribute__ ((unused)),
998
       int sec_index __attribute__ ((unused)),
999
       const void *addr __attribute__ ((unused)),
1000
       int width __attribute__ ((unused)),
1001
       Dwarf_Off *val __attribute__ ((unused)))
1002
0
{
1003
0
  return 0;
1004
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_end.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_error.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module.c:__libdw_relocate_offset
Unexecuted instantiation: offline.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_relocate_offset
Unexecuted instantiation: find-debuginfo.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_relocate_offset
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_relocate_offset
Unexecuted instantiation: open.c:__libdw_relocate_offset
Unexecuted instantiation: image-header.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_frame.c:__libdw_relocate_offset
Unexecuted instantiation: frame_unwind.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_relocate_offset
Unexecuted instantiation: gzip.c:__libdw_relocate_offset
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_relocate_offset
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_relocate_offset
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_relocate_offset
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_relocate_offset
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_relocate_offset
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_relocate_offset
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_relocate_offset
Unexecuted instantiation: mips_retval.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_end.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_tag.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_error.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_attr.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_child.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formudata.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formref_die.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_siblingof.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_diecu.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_hasattr.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_bytesize.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_bitsize.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formflag.c:__libdw_relocate_offset
Unexecuted instantiation: libdw_findcu.c:__libdw_relocate_offset
Unexecuted instantiation: libdw_form.c:__libdw_relocate_offset
Unexecuted instantiation: libdw_alloc.c:__libdw_relocate_offset
Unexecuted instantiation: frame-cache.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_frame_register.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_getalt.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_setalt.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_peel_type.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_relocate_offset
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_report_elf.c:__libdw_relocate_offset
Unexecuted instantiation: relocate.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_relocate_offset
Unexecuted instantiation: linux-proc-maps.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_relocate_offset
Unexecuted instantiation: libdwfl_crc32.c:__libdw_relocate_offset
Unexecuted instantiation: elf-from-memory.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_relocate_offset
Unexecuted instantiation: linux-pid-attach.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_begin.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_nextcu.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_offdie.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formstring.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_haschildren.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formsdata.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formref.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_srclang.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_getlocation.c:__libdw_relocate_offset
Unexecuted instantiation: fde.c:__libdw_relocate_offset
Unexecuted instantiation: cfi.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_getcfi.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_get_units.c:__libdw_relocate_offset
Unexecuted instantiation: segment.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formaddr.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_lowpc.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_ranges.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_formblock.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_relocate_offset
Unexecuted instantiation: cie.c:__libdw_relocate_offset
Unexecuted instantiation: dwarf_highpc.c:__libdw_relocate_offset
Unexecuted instantiation: core-file.c:__libdw_relocate_offset
Unexecuted instantiation: linux-core-attach.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_relocate_offset
Unexecuted instantiation: link_map.c:__libdw_relocate_offset
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_relocate_offset
Unexecuted instantiation: derelocate.c:__libdw_relocate_offset
1005
1006
static inline Elf_Data *
1007
__libdw_checked_get_data (Dwarf *dbg, int sec_index)
1008
0
{
1009
0
  Elf_Data *data = dbg->sectiondata[sec_index];
1010
0
  if (unlikely (data == NULL)
1011
0
      || unlikely (data->d_buf == NULL))
1012
0
    {
1013
0
      __libdw_seterrno (DWARF_E_INVALID_DWARF);
1014
0
      return NULL;
1015
0
    }
1016
0
  return data;
1017
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_end.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_error.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module.c:__libdw_checked_get_data
Unexecuted instantiation: offline.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_checked_get_data
Unexecuted instantiation: find-debuginfo.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_checked_get_data
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_checked_get_data
Unexecuted instantiation: open.c:__libdw_checked_get_data
Unexecuted instantiation: image-header.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_frame.c:__libdw_checked_get_data
Unexecuted instantiation: frame_unwind.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_checked_get_data
Unexecuted instantiation: gzip.c:__libdw_checked_get_data
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_checked_get_data
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_checked_get_data
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_checked_get_data
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_checked_get_data
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_checked_get_data
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_checked_get_data
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_checked_get_data
Unexecuted instantiation: mips_retval.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_end.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_tag.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_error.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_attr.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_child.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formudata.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formref_die.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_siblingof.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_diecu.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_hasattr.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_bytesize.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_bitsize.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formflag.c:__libdw_checked_get_data
Unexecuted instantiation: libdw_findcu.c:__libdw_checked_get_data
Unexecuted instantiation: libdw_form.c:__libdw_checked_get_data
Unexecuted instantiation: libdw_alloc.c:__libdw_checked_get_data
Unexecuted instantiation: frame-cache.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_frame_register.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_getalt.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_setalt.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_peel_type.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_checked_get_data
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_report_elf.c:__libdw_checked_get_data
Unexecuted instantiation: relocate.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_checked_get_data
Unexecuted instantiation: linux-proc-maps.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_checked_get_data
Unexecuted instantiation: libdwfl_crc32.c:__libdw_checked_get_data
Unexecuted instantiation: elf-from-memory.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_checked_get_data
Unexecuted instantiation: linux-pid-attach.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_begin.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_nextcu.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_offdie.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formstring.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_haschildren.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formsdata.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formref.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_srclang.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_getlocation.c:__libdw_checked_get_data
Unexecuted instantiation: fde.c:__libdw_checked_get_data
Unexecuted instantiation: cfi.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_getcfi.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_get_units.c:__libdw_checked_get_data
Unexecuted instantiation: segment.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formaddr.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_lowpc.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_ranges.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_formblock.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_checked_get_data
Unexecuted instantiation: cie.c:__libdw_checked_get_data
Unexecuted instantiation: dwarf_highpc.c:__libdw_checked_get_data
Unexecuted instantiation: core-file.c:__libdw_checked_get_data
Unexecuted instantiation: linux-core-attach.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_checked_get_data
Unexecuted instantiation: link_map.c:__libdw_checked_get_data
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_checked_get_data
Unexecuted instantiation: derelocate.c:__libdw_checked_get_data
1018
1019
static inline int
1020
__libdw_offset_in_section (Dwarf *dbg, int sec_index,
1021
         Dwarf_Off offset, size_t size)
1022
0
{
1023
0
  Elf_Data *data = __libdw_checked_get_data (dbg, sec_index);
1024
0
  if (data == NULL)
1025
0
    return -1;
1026
0
  if (unlikely (offset > data->d_size)
1027
0
      || unlikely (data->d_size < size)
1028
0
      || unlikely (offset > data->d_size - size))
1029
0
    {
1030
0
      __libdw_seterrno (DWARF_E_INVALID_OFFSET);
1031
0
      return -1;
1032
0
    }
1033
1034
0
  return 0;
1035
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_end.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_error.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module.c:__libdw_offset_in_section
Unexecuted instantiation: offline.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_offset_in_section
Unexecuted instantiation: find-debuginfo.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_offset_in_section
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_offset_in_section
Unexecuted instantiation: open.c:__libdw_offset_in_section
Unexecuted instantiation: image-header.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_frame.c:__libdw_offset_in_section
Unexecuted instantiation: frame_unwind.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_offset_in_section
Unexecuted instantiation: gzip.c:__libdw_offset_in_section
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_offset_in_section
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_offset_in_section
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_offset_in_section
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_offset_in_section
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_offset_in_section
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_offset_in_section
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_offset_in_section
Unexecuted instantiation: mips_retval.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_end.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_tag.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_error.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_attr.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_child.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formudata.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formref_die.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_siblingof.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_diecu.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_hasattr.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_bytesize.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_bitsize.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formflag.c:__libdw_offset_in_section
Unexecuted instantiation: libdw_findcu.c:__libdw_offset_in_section
Unexecuted instantiation: libdw_form.c:__libdw_offset_in_section
Unexecuted instantiation: libdw_alloc.c:__libdw_offset_in_section
Unexecuted instantiation: frame-cache.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_frame_register.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_getalt.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_setalt.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_peel_type.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_offset_in_section
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_report_elf.c:__libdw_offset_in_section
Unexecuted instantiation: relocate.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_offset_in_section
Unexecuted instantiation: linux-proc-maps.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_offset_in_section
Unexecuted instantiation: libdwfl_crc32.c:__libdw_offset_in_section
Unexecuted instantiation: elf-from-memory.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_offset_in_section
Unexecuted instantiation: linux-pid-attach.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_begin.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_nextcu.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_offdie.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formstring.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_haschildren.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formsdata.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formref.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_srclang.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_getlocation.c:__libdw_offset_in_section
Unexecuted instantiation: fde.c:__libdw_offset_in_section
Unexecuted instantiation: cfi.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_getcfi.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_get_units.c:__libdw_offset_in_section
Unexecuted instantiation: segment.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formaddr.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_lowpc.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_ranges.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_formblock.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_offset_in_section
Unexecuted instantiation: cie.c:__libdw_offset_in_section
Unexecuted instantiation: dwarf_highpc.c:__libdw_offset_in_section
Unexecuted instantiation: core-file.c:__libdw_offset_in_section
Unexecuted instantiation: linux-core-attach.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_offset_in_section
Unexecuted instantiation: link_map.c:__libdw_offset_in_section
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_offset_in_section
Unexecuted instantiation: derelocate.c:__libdw_offset_in_section
1036
1037
static inline bool
1038
__libdw_in_section (Dwarf *dbg, int sec_index,
1039
        const void *addr, size_t size)
1040
0
{
1041
0
  Elf_Data *data = __libdw_checked_get_data (dbg, sec_index);
1042
0
  if (data == NULL)
1043
0
    return false;
1044
0
  if (unlikely (addr < data->d_buf)
1045
0
      || unlikely (data->d_size < size)
1046
0
      || unlikely ((size_t)(addr - data->d_buf) > data->d_size - size))
1047
0
    {
1048
0
      __libdw_seterrno (DWARF_E_INVALID_OFFSET);
1049
0
      return false;
1050
0
    }
1051
1052
0
  return true;
1053
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_in_section
Unexecuted instantiation: dwfl_end.c:__libdw_in_section
Unexecuted instantiation: dwfl_error.c:__libdw_in_section
Unexecuted instantiation: dwfl_module.c:__libdw_in_section
Unexecuted instantiation: offline.c:__libdw_in_section
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_in_section
Unexecuted instantiation: find-debuginfo.c:__libdw_in_section
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_in_section
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_in_section
Unexecuted instantiation: open.c:__libdw_in_section
Unexecuted instantiation: image-header.c:__libdw_in_section
Unexecuted instantiation: dwfl_frame.c:__libdw_in_section
Unexecuted instantiation: frame_unwind.c:__libdw_in_section
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_in_section
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_in_section
Unexecuted instantiation: gzip.c:__libdw_in_section
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_in_section
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_in_section
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_in_section
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_in_section
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_in_section
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_in_section
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_in_section
Unexecuted instantiation: mips_retval.c:__libdw_in_section
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_in_section
Unexecuted instantiation: dwarf_end.c:__libdw_in_section
Unexecuted instantiation: dwarf_tag.c:__libdw_in_section
Unexecuted instantiation: dwarf_error.c:__libdw_in_section
Unexecuted instantiation: dwarf_attr.c:__libdw_in_section
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_in_section
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_in_section
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_in_section
Unexecuted instantiation: dwarf_child.c:__libdw_in_section
Unexecuted instantiation: dwarf_formudata.c:__libdw_in_section
Unexecuted instantiation: dwarf_formref_die.c:__libdw_in_section
Unexecuted instantiation: dwarf_siblingof.c:__libdw_in_section
Unexecuted instantiation: dwarf_diecu.c:__libdw_in_section
Unexecuted instantiation: dwarf_hasattr.c:__libdw_in_section
Unexecuted instantiation: dwarf_bytesize.c:__libdw_in_section
Unexecuted instantiation: dwarf_bitsize.c:__libdw_in_section
Unexecuted instantiation: dwarf_formflag.c:__libdw_in_section
Unexecuted instantiation: libdw_findcu.c:__libdw_in_section
Unexecuted instantiation: libdw_form.c:__libdw_in_section
Unexecuted instantiation: libdw_alloc.c:__libdw_in_section
Unexecuted instantiation: frame-cache.c:__libdw_in_section
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_in_section
Unexecuted instantiation: dwarf_frame_register.c:__libdw_in_section
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_in_section
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_in_section
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_in_section
Unexecuted instantiation: dwarf_getalt.c:__libdw_in_section
Unexecuted instantiation: dwarf_setalt.c:__libdw_in_section
Unexecuted instantiation: dwarf_peel_type.c:__libdw_in_section
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_in_section
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_in_section
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_in_section
Unexecuted instantiation: dwfl_report_elf.c:__libdw_in_section
Unexecuted instantiation: relocate.c:__libdw_in_section
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_in_section
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_in_section
Unexecuted instantiation: linux-proc-maps.c:__libdw_in_section
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_in_section
Unexecuted instantiation: libdwfl_crc32.c:__libdw_in_section
Unexecuted instantiation: elf-from-memory.c:__libdw_in_section
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_in_section
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_in_section
Unexecuted instantiation: linux-pid-attach.c:__libdw_in_section
Unexecuted instantiation: dwarf_begin.c:__libdw_in_section
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_in_section
Unexecuted instantiation: dwarf_nextcu.c:__libdw_in_section
Unexecuted instantiation: dwarf_offdie.c:__libdw_in_section
Unexecuted instantiation: dwarf_formstring.c:__libdw_in_section
Unexecuted instantiation: dwarf_haschildren.c:__libdw_in_section
Unexecuted instantiation: dwarf_formsdata.c:__libdw_in_section
Unexecuted instantiation: dwarf_formref.c:__libdw_in_section
Unexecuted instantiation: dwarf_srclang.c:__libdw_in_section
Unexecuted instantiation: dwarf_getlocation.c:__libdw_in_section
Unexecuted instantiation: fde.c:__libdw_in_section
Unexecuted instantiation: cfi.c:__libdw_in_section
Unexecuted instantiation: dwarf_getcfi.c:__libdw_in_section
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_in_section
Unexecuted instantiation: dwarf_get_units.c:__libdw_in_section
Unexecuted instantiation: segment.c:__libdw_in_section
Unexecuted instantiation: dwarf_formaddr.c:__libdw_in_section
Unexecuted instantiation: dwarf_lowpc.c:__libdw_in_section
Unexecuted instantiation: dwarf_ranges.c:__libdw_in_section
Unexecuted instantiation: dwarf_formblock.c:__libdw_in_section
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_in_section
Unexecuted instantiation: cie.c:__libdw_in_section
Unexecuted instantiation: dwarf_highpc.c:__libdw_in_section
Unexecuted instantiation: core-file.c:__libdw_in_section
Unexecuted instantiation: linux-core-attach.c:__libdw_in_section
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_in_section
Unexecuted instantiation: link_map.c:__libdw_in_section
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_in_section
Unexecuted instantiation: derelocate.c:__libdw_in_section
1054
1055
#define READ_AND_RELOCATE(RELOC_HOOK, VAL)        \
1056
0
  ({                  \
1057
0
    if (!__libdw_in_section (dbg, sec_index, addr, width))   \
1058
0
      return -1;             \
1059
0
                  \
1060
0
    const unsigned char *orig_addr = addr;        \
1061
0
    if (width == 4)             \
1062
0
      VAL = read_4ubyte_unaligned_inc (dbg, addr);     \
1063
0
    else                \
1064
0
      VAL = read_8ubyte_unaligned_inc (dbg, addr);     \
1065
0
                  \
1066
0
    int status = RELOC_HOOK (dbg, sec_index, orig_addr, width, &VAL); \
1067
0
    if (status < 0)             \
1068
0
      return status;             \
1069
0
    status > 0;               \
1070
0
   })
1071
1072
static inline int
1073
__libdw_read_address_inc (Dwarf *dbg,
1074
        int sec_index, const unsigned char **addrp,
1075
        int width, Dwarf_Addr *ret)
1076
0
{
1077
0
  const unsigned char *addr = *addrp;
1078
0
  READ_AND_RELOCATE (__libdw_relocate_address, (*ret));
1079
0
  *addrp = addr;
1080
0
  return 0;
1081
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_end.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_error.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module.c:__libdw_read_address_inc
Unexecuted instantiation: offline.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_read_address_inc
Unexecuted instantiation: find-debuginfo.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_read_address_inc
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_read_address_inc
Unexecuted instantiation: open.c:__libdw_read_address_inc
Unexecuted instantiation: image-header.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_frame.c:__libdw_read_address_inc
Unexecuted instantiation: frame_unwind.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_read_address_inc
Unexecuted instantiation: gzip.c:__libdw_read_address_inc
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_read_address_inc
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_read_address_inc
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_read_address_inc
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_read_address_inc
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_read_address_inc
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_read_address_inc
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_read_address_inc
Unexecuted instantiation: mips_retval.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_end.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_tag.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_error.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_attr.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_child.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formudata.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formref_die.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_siblingof.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_diecu.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_hasattr.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_bytesize.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_bitsize.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formflag.c:__libdw_read_address_inc
Unexecuted instantiation: libdw_findcu.c:__libdw_read_address_inc
Unexecuted instantiation: libdw_form.c:__libdw_read_address_inc
Unexecuted instantiation: libdw_alloc.c:__libdw_read_address_inc
Unexecuted instantiation: frame-cache.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_frame_register.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_getalt.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_setalt.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_peel_type.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_read_address_inc
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_report_elf.c:__libdw_read_address_inc
Unexecuted instantiation: relocate.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_read_address_inc
Unexecuted instantiation: linux-proc-maps.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_read_address_inc
Unexecuted instantiation: libdwfl_crc32.c:__libdw_read_address_inc
Unexecuted instantiation: elf-from-memory.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_read_address_inc
Unexecuted instantiation: linux-pid-attach.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_begin.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_nextcu.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_offdie.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formstring.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_haschildren.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formsdata.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formref.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_srclang.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_getlocation.c:__libdw_read_address_inc
Unexecuted instantiation: fde.c:__libdw_read_address_inc
Unexecuted instantiation: cfi.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_getcfi.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_get_units.c:__libdw_read_address_inc
Unexecuted instantiation: segment.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formaddr.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_lowpc.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_ranges.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_formblock.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_read_address_inc
Unexecuted instantiation: cie.c:__libdw_read_address_inc
Unexecuted instantiation: dwarf_highpc.c:__libdw_read_address_inc
Unexecuted instantiation: core-file.c:__libdw_read_address_inc
Unexecuted instantiation: linux-core-attach.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_read_address_inc
Unexecuted instantiation: link_map.c:__libdw_read_address_inc
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_read_address_inc
Unexecuted instantiation: derelocate.c:__libdw_read_address_inc
1082
1083
static inline int
1084
__libdw_read_address (Dwarf *dbg,
1085
          int sec_index, const unsigned char *addr,
1086
          int width, Dwarf_Addr *ret)
1087
0
{
1088
0
  READ_AND_RELOCATE (__libdw_relocate_address, (*ret));
1089
0
  return 0;
1090
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_read_address
Unexecuted instantiation: dwfl_end.c:__libdw_read_address
Unexecuted instantiation: dwfl_error.c:__libdw_read_address
Unexecuted instantiation: dwfl_module.c:__libdw_read_address
Unexecuted instantiation: offline.c:__libdw_read_address
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_read_address
Unexecuted instantiation: find-debuginfo.c:__libdw_read_address
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_read_address
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_read_address
Unexecuted instantiation: open.c:__libdw_read_address
Unexecuted instantiation: image-header.c:__libdw_read_address
Unexecuted instantiation: dwfl_frame.c:__libdw_read_address
Unexecuted instantiation: frame_unwind.c:__libdw_read_address
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_read_address
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_read_address
Unexecuted instantiation: gzip.c:__libdw_read_address
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_read_address
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_read_address
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_read_address
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_read_address
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_read_address
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_read_address
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_read_address
Unexecuted instantiation: mips_retval.c:__libdw_read_address
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_read_address
Unexecuted instantiation: dwarf_end.c:__libdw_read_address
Unexecuted instantiation: dwarf_tag.c:__libdw_read_address
Unexecuted instantiation: dwarf_error.c:__libdw_read_address
Unexecuted instantiation: dwarf_attr.c:__libdw_read_address
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_read_address
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_read_address
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_read_address
Unexecuted instantiation: dwarf_child.c:__libdw_read_address
Unexecuted instantiation: dwarf_formudata.c:__libdw_read_address
Unexecuted instantiation: dwarf_formref_die.c:__libdw_read_address
Unexecuted instantiation: dwarf_siblingof.c:__libdw_read_address
Unexecuted instantiation: dwarf_diecu.c:__libdw_read_address
Unexecuted instantiation: dwarf_hasattr.c:__libdw_read_address
Unexecuted instantiation: dwarf_bytesize.c:__libdw_read_address
Unexecuted instantiation: dwarf_bitsize.c:__libdw_read_address
Unexecuted instantiation: dwarf_formflag.c:__libdw_read_address
Unexecuted instantiation: libdw_findcu.c:__libdw_read_address
Unexecuted instantiation: libdw_form.c:__libdw_read_address
Unexecuted instantiation: libdw_alloc.c:__libdw_read_address
Unexecuted instantiation: frame-cache.c:__libdw_read_address
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_read_address
Unexecuted instantiation: dwarf_frame_register.c:__libdw_read_address
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_read_address
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_read_address
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_read_address
Unexecuted instantiation: dwarf_getalt.c:__libdw_read_address
Unexecuted instantiation: dwarf_setalt.c:__libdw_read_address
Unexecuted instantiation: dwarf_peel_type.c:__libdw_read_address
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_read_address
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_read_address
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_read_address
Unexecuted instantiation: dwfl_report_elf.c:__libdw_read_address
Unexecuted instantiation: relocate.c:__libdw_read_address
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_read_address
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_read_address
Unexecuted instantiation: linux-proc-maps.c:__libdw_read_address
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_read_address
Unexecuted instantiation: libdwfl_crc32.c:__libdw_read_address
Unexecuted instantiation: elf-from-memory.c:__libdw_read_address
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_read_address
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_read_address
Unexecuted instantiation: linux-pid-attach.c:__libdw_read_address
Unexecuted instantiation: dwarf_begin.c:__libdw_read_address
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_read_address
Unexecuted instantiation: dwarf_nextcu.c:__libdw_read_address
Unexecuted instantiation: dwarf_offdie.c:__libdw_read_address
Unexecuted instantiation: dwarf_formstring.c:__libdw_read_address
Unexecuted instantiation: dwarf_haschildren.c:__libdw_read_address
Unexecuted instantiation: dwarf_formsdata.c:__libdw_read_address
Unexecuted instantiation: dwarf_formref.c:__libdw_read_address
Unexecuted instantiation: dwarf_srclang.c:__libdw_read_address
Unexecuted instantiation: dwarf_getlocation.c:__libdw_read_address
Unexecuted instantiation: fde.c:__libdw_read_address
Unexecuted instantiation: cfi.c:__libdw_read_address
Unexecuted instantiation: dwarf_getcfi.c:__libdw_read_address
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_read_address
Unexecuted instantiation: dwarf_get_units.c:__libdw_read_address
Unexecuted instantiation: segment.c:__libdw_read_address
Unexecuted instantiation: dwarf_formaddr.c:__libdw_read_address
Unexecuted instantiation: dwarf_lowpc.c:__libdw_read_address
Unexecuted instantiation: dwarf_ranges.c:__libdw_read_address
Unexecuted instantiation: dwarf_formblock.c:__libdw_read_address
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_read_address
Unexecuted instantiation: cie.c:__libdw_read_address
Unexecuted instantiation: dwarf_highpc.c:__libdw_read_address
Unexecuted instantiation: core-file.c:__libdw_read_address
Unexecuted instantiation: linux-core-attach.c:__libdw_read_address
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_read_address
Unexecuted instantiation: link_map.c:__libdw_read_address
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_read_address
Unexecuted instantiation: derelocate.c:__libdw_read_address
1091
1092
static inline int
1093
__libdw_read_offset_inc (Dwarf *dbg,
1094
       int sec_index, const unsigned char **addrp,
1095
       int width, Dwarf_Off *ret, int sec_ret,
1096
       size_t size)
1097
0
{
1098
0
  const unsigned char *addr = *addrp;
1099
0
  READ_AND_RELOCATE (__libdw_relocate_offset, (*ret));
1100
0
  *addrp = addr;
1101
0
  return __libdw_offset_in_section (dbg, sec_ret, *ret, size);
1102
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_end.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_error.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module.c:__libdw_read_offset_inc
Unexecuted instantiation: offline.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_read_offset_inc
Unexecuted instantiation: find-debuginfo.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_read_offset_inc
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_read_offset_inc
Unexecuted instantiation: open.c:__libdw_read_offset_inc
Unexecuted instantiation: image-header.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_frame.c:__libdw_read_offset_inc
Unexecuted instantiation: frame_unwind.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_read_offset_inc
Unexecuted instantiation: gzip.c:__libdw_read_offset_inc
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_read_offset_inc
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_read_offset_inc
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_read_offset_inc
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_read_offset_inc
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_read_offset_inc
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_read_offset_inc
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_read_offset_inc
Unexecuted instantiation: mips_retval.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_end.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_tag.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_error.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_attr.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_child.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formudata.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formref_die.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_siblingof.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_diecu.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_hasattr.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_bytesize.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_bitsize.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formflag.c:__libdw_read_offset_inc
Unexecuted instantiation: libdw_findcu.c:__libdw_read_offset_inc
Unexecuted instantiation: libdw_form.c:__libdw_read_offset_inc
Unexecuted instantiation: libdw_alloc.c:__libdw_read_offset_inc
Unexecuted instantiation: frame-cache.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_frame_register.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_getalt.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_setalt.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_peel_type.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_read_offset_inc
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_report_elf.c:__libdw_read_offset_inc
Unexecuted instantiation: relocate.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_read_offset_inc
Unexecuted instantiation: linux-proc-maps.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_read_offset_inc
Unexecuted instantiation: libdwfl_crc32.c:__libdw_read_offset_inc
Unexecuted instantiation: elf-from-memory.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_read_offset_inc
Unexecuted instantiation: linux-pid-attach.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_begin.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_nextcu.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_offdie.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formstring.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_haschildren.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formsdata.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formref.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_srclang.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_getlocation.c:__libdw_read_offset_inc
Unexecuted instantiation: fde.c:__libdw_read_offset_inc
Unexecuted instantiation: cfi.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_getcfi.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_get_units.c:__libdw_read_offset_inc
Unexecuted instantiation: segment.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formaddr.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_lowpc.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_ranges.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_formblock.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_read_offset_inc
Unexecuted instantiation: cie.c:__libdw_read_offset_inc
Unexecuted instantiation: dwarf_highpc.c:__libdw_read_offset_inc
Unexecuted instantiation: core-file.c:__libdw_read_offset_inc
Unexecuted instantiation: linux-core-attach.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_read_offset_inc
Unexecuted instantiation: link_map.c:__libdw_read_offset_inc
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_read_offset_inc
Unexecuted instantiation: derelocate.c:__libdw_read_offset_inc
1103
1104
static inline int
1105
__libdw_read_offset (Dwarf *dbg, Dwarf *dbg_ret,
1106
         int sec_index, const unsigned char *addr,
1107
         int width, Dwarf_Off *ret, int sec_ret,
1108
         size_t size)
1109
0
{
1110
0
  READ_AND_RELOCATE (__libdw_relocate_offset, (*ret));
1111
0
  return __libdw_offset_in_section (dbg_ret, sec_ret, *ret, size);
1112
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_read_offset
Unexecuted instantiation: dwfl_end.c:__libdw_read_offset
Unexecuted instantiation: dwfl_error.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module.c:__libdw_read_offset
Unexecuted instantiation: offline.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_read_offset
Unexecuted instantiation: find-debuginfo.c:__libdw_read_offset
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_read_offset
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_read_offset
Unexecuted instantiation: open.c:__libdw_read_offset
Unexecuted instantiation: image-header.c:__libdw_read_offset
Unexecuted instantiation: dwfl_frame.c:__libdw_read_offset
Unexecuted instantiation: frame_unwind.c:__libdw_read_offset
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_read_offset
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_read_offset
Unexecuted instantiation: gzip.c:__libdw_read_offset
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_read_offset
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_read_offset
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_read_offset
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_read_offset
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_read_offset
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_read_offset
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_read_offset
Unexecuted instantiation: mips_retval.c:__libdw_read_offset
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_read_offset
Unexecuted instantiation: dwarf_end.c:__libdw_read_offset
Unexecuted instantiation: dwarf_tag.c:__libdw_read_offset
Unexecuted instantiation: dwarf_error.c:__libdw_read_offset
Unexecuted instantiation: dwarf_attr.c:__libdw_read_offset
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_read_offset
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_read_offset
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_read_offset
Unexecuted instantiation: dwarf_child.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formudata.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formref_die.c:__libdw_read_offset
Unexecuted instantiation: dwarf_siblingof.c:__libdw_read_offset
Unexecuted instantiation: dwarf_diecu.c:__libdw_read_offset
Unexecuted instantiation: dwarf_hasattr.c:__libdw_read_offset
Unexecuted instantiation: dwarf_bytesize.c:__libdw_read_offset
Unexecuted instantiation: dwarf_bitsize.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formflag.c:__libdw_read_offset
Unexecuted instantiation: libdw_findcu.c:__libdw_read_offset
Unexecuted instantiation: libdw_form.c:__libdw_read_offset
Unexecuted instantiation: libdw_alloc.c:__libdw_read_offset
Unexecuted instantiation: frame-cache.c:__libdw_read_offset
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_read_offset
Unexecuted instantiation: dwarf_frame_register.c:__libdw_read_offset
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_read_offset
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_read_offset
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_read_offset
Unexecuted instantiation: dwarf_getalt.c:__libdw_read_offset
Unexecuted instantiation: dwarf_setalt.c:__libdw_read_offset
Unexecuted instantiation: dwarf_peel_type.c:__libdw_read_offset
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_read_offset
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_read_offset
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_read_offset
Unexecuted instantiation: dwfl_report_elf.c:__libdw_read_offset
Unexecuted instantiation: relocate.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_read_offset
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_read_offset
Unexecuted instantiation: linux-proc-maps.c:__libdw_read_offset
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_read_offset
Unexecuted instantiation: libdwfl_crc32.c:__libdw_read_offset
Unexecuted instantiation: elf-from-memory.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_read_offset
Unexecuted instantiation: linux-pid-attach.c:__libdw_read_offset
Unexecuted instantiation: dwarf_begin.c:__libdw_read_offset
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_read_offset
Unexecuted instantiation: dwarf_nextcu.c:__libdw_read_offset
Unexecuted instantiation: dwarf_offdie.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formstring.c:__libdw_read_offset
Unexecuted instantiation: dwarf_haschildren.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formsdata.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formref.c:__libdw_read_offset
Unexecuted instantiation: dwarf_srclang.c:__libdw_read_offset
Unexecuted instantiation: dwarf_getlocation.c:__libdw_read_offset
Unexecuted instantiation: fde.c:__libdw_read_offset
Unexecuted instantiation: cfi.c:__libdw_read_offset
Unexecuted instantiation: dwarf_getcfi.c:__libdw_read_offset
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_read_offset
Unexecuted instantiation: dwarf_get_units.c:__libdw_read_offset
Unexecuted instantiation: segment.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formaddr.c:__libdw_read_offset
Unexecuted instantiation: dwarf_lowpc.c:__libdw_read_offset
Unexecuted instantiation: dwarf_ranges.c:__libdw_read_offset
Unexecuted instantiation: dwarf_formblock.c:__libdw_read_offset
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_read_offset
Unexecuted instantiation: cie.c:__libdw_read_offset
Unexecuted instantiation: dwarf_highpc.c:__libdw_read_offset
Unexecuted instantiation: core-file.c:__libdw_read_offset
Unexecuted instantiation: linux-core-attach.c:__libdw_read_offset
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_read_offset
Unexecuted instantiation: link_map.c:__libdw_read_offset
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_read_offset
Unexecuted instantiation: derelocate.c:__libdw_read_offset
1113
1114
static inline size_t
1115
cu_sec_idx (struct Dwarf_CU *cu)
1116
0
{
1117
0
  return cu->sec_idx;
1118
0
}
Unexecuted instantiation: dwfl_begin.c:cu_sec_idx
Unexecuted instantiation: dwfl_end.c:cu_sec_idx
Unexecuted instantiation: dwfl_error.c:cu_sec_idx
Unexecuted instantiation: dwfl_module.c:cu_sec_idx
Unexecuted instantiation: offline.c:cu_sec_idx
Unexecuted instantiation: dwfl_module_getdwarf.c:cu_sec_idx
Unexecuted instantiation: find-debuginfo.c:cu_sec_idx
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:cu_sec_idx
Unexecuted instantiation: libdwfl_crc32_file.c:cu_sec_idx
Unexecuted instantiation: open.c:cu_sec_idx
Unexecuted instantiation: image-header.c:cu_sec_idx
Unexecuted instantiation: dwfl_frame.c:cu_sec_idx
Unexecuted instantiation: frame_unwind.c:cu_sec_idx
Unexecuted instantiation: dwfl_frame_pc.c:cu_sec_idx
Unexecuted instantiation: dwfl_frame_regs.c:cu_sec_idx
Unexecuted instantiation: gzip.c:cu_sec_idx
Unexecuted instantiation: dwflst_process_tracker.c:cu_sec_idx
Unexecuted instantiation: dwflst_tracker_find_elf.c:cu_sec_idx
Unexecuted instantiation: dwflst_tracker_elftab.c:cu_sec_idx
Unexecuted instantiation: dwflst_tracker_dwfltab.c:cu_sec_idx
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:cu_sec_idx
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:cu_sec_idx
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:cu_sec_idx
Unexecuted instantiation: mips_retval.c:cu_sec_idx
Unexecuted instantiation: dwarf_begin_elf.c:cu_sec_idx
Unexecuted instantiation: dwarf_end.c:cu_sec_idx
Unexecuted instantiation: dwarf_tag.c:cu_sec_idx
Unexecuted instantiation: dwarf_error.c:cu_sec_idx
Unexecuted instantiation: dwarf_attr.c:cu_sec_idx
Unexecuted instantiation: dwarf_abbrev_hash.c:cu_sec_idx
Unexecuted instantiation: dwarf_attr_integrate.c:cu_sec_idx
Unexecuted instantiation: dwarf_hasattr_integrate.c:cu_sec_idx
Unexecuted instantiation: dwarf_child.c:cu_sec_idx
Unexecuted instantiation: dwarf_formudata.c:cu_sec_idx
Unexecuted instantiation: dwarf_formref_die.c:cu_sec_idx
Unexecuted instantiation: dwarf_siblingof.c:cu_sec_idx
Unexecuted instantiation: dwarf_diecu.c:cu_sec_idx
Unexecuted instantiation: dwarf_hasattr.c:cu_sec_idx
Unexecuted instantiation: dwarf_bytesize.c:cu_sec_idx
Unexecuted instantiation: dwarf_bitsize.c:cu_sec_idx
Unexecuted instantiation: dwarf_formflag.c:cu_sec_idx
Unexecuted instantiation: libdw_findcu.c:cu_sec_idx
Unexecuted instantiation: libdw_form.c:cu_sec_idx
Unexecuted instantiation: libdw_alloc.c:cu_sec_idx
Unexecuted instantiation: frame-cache.c:cu_sec_idx
Unexecuted instantiation: dwarf_frame_cfa.c:cu_sec_idx
Unexecuted instantiation: dwarf_frame_register.c:cu_sec_idx
Unexecuted instantiation: dwarf_cfi_addrframe.c:cu_sec_idx
Unexecuted instantiation: dwarf_cfi_end.c:cu_sec_idx
Unexecuted instantiation: dwarf_aggregate_size.c:cu_sec_idx
Unexecuted instantiation: dwarf_getalt.c:cu_sec_idx
Unexecuted instantiation: dwarf_setalt.c:cu_sec_idx
Unexecuted instantiation: dwarf_peel_type.c:cu_sec_idx
Unexecuted instantiation: dwarf_default_lower_bound.c:cu_sec_idx
Unexecuted instantiation: libdw_find_split_unit.c:cu_sec_idx
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:cu_sec_idx
Unexecuted instantiation: dwfl_report_elf.c:cu_sec_idx
Unexecuted instantiation: relocate.c:cu_sec_idx
Unexecuted instantiation: dwfl_module_build_id.c:cu_sec_idx
Unexecuted instantiation: dwfl_build_id_find_elf.c:cu_sec_idx
Unexecuted instantiation: linux-proc-maps.c:cu_sec_idx
Unexecuted instantiation: dwfl_addrmodule.c:cu_sec_idx
Unexecuted instantiation: libdwfl_crc32.c:cu_sec_idx
Unexecuted instantiation: elf-from-memory.c:cu_sec_idx
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:cu_sec_idx
Unexecuted instantiation: dwfl_module_eh_cfi.c:cu_sec_idx
Unexecuted instantiation: linux-pid-attach.c:cu_sec_idx
Unexecuted instantiation: dwarf_begin.c:cu_sec_idx
Unexecuted instantiation: dwarf_getabbrev.c:cu_sec_idx
Unexecuted instantiation: dwarf_nextcu.c:cu_sec_idx
Unexecuted instantiation: dwarf_offdie.c:cu_sec_idx
Unexecuted instantiation: dwarf_formstring.c:cu_sec_idx
Unexecuted instantiation: dwarf_haschildren.c:cu_sec_idx
Unexecuted instantiation: dwarf_formsdata.c:cu_sec_idx
Unexecuted instantiation: dwarf_formref.c:cu_sec_idx
Unexecuted instantiation: dwarf_srclang.c:cu_sec_idx
Unexecuted instantiation: dwarf_getlocation.c:cu_sec_idx
Unexecuted instantiation: fde.c:cu_sec_idx
Unexecuted instantiation: cfi.c:cu_sec_idx
Unexecuted instantiation: dwarf_getcfi.c:cu_sec_idx
Unexecuted instantiation: dwarf_getcfi_elf.c:cu_sec_idx
Unexecuted instantiation: dwarf_get_units.c:cu_sec_idx
Unexecuted instantiation: segment.c:cu_sec_idx
Unexecuted instantiation: dwarf_formaddr.c:cu_sec_idx
Unexecuted instantiation: dwarf_lowpc.c:cu_sec_idx
Unexecuted instantiation: dwarf_ranges.c:cu_sec_idx
Unexecuted instantiation: dwarf_formblock.c:cu_sec_idx
Unexecuted instantiation: dwarf_next_cfi.c:cu_sec_idx
Unexecuted instantiation: cie.c:cu_sec_idx
Unexecuted instantiation: dwarf_highpc.c:cu_sec_idx
Unexecuted instantiation: core-file.c:cu_sec_idx
Unexecuted instantiation: linux-core-attach.c:cu_sec_idx
Unexecuted instantiation: dwfl_segment_report_module.c:cu_sec_idx
Unexecuted instantiation: link_map.c:cu_sec_idx
Unexecuted instantiation: dwfl_module_report_build_id.c:cu_sec_idx
Unexecuted instantiation: derelocate.c:cu_sec_idx
1119
1120
static inline bool
1121
is_cudie (Dwarf_Die *cudie)
1122
0
{
1123
0
  return cudie->cu != NULL && CUDIE (cudie->cu).addr == cudie->addr;
1124
0
}
Unexecuted instantiation: dwfl_begin.c:is_cudie
Unexecuted instantiation: dwfl_end.c:is_cudie
Unexecuted instantiation: dwfl_error.c:is_cudie
Unexecuted instantiation: dwfl_module.c:is_cudie
Unexecuted instantiation: offline.c:is_cudie
Unexecuted instantiation: dwfl_module_getdwarf.c:is_cudie
Unexecuted instantiation: find-debuginfo.c:is_cudie
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:is_cudie
Unexecuted instantiation: libdwfl_crc32_file.c:is_cudie
Unexecuted instantiation: open.c:is_cudie
Unexecuted instantiation: image-header.c:is_cudie
Unexecuted instantiation: dwfl_frame.c:is_cudie
Unexecuted instantiation: frame_unwind.c:is_cudie
Unexecuted instantiation: dwfl_frame_pc.c:is_cudie
Unexecuted instantiation: dwfl_frame_regs.c:is_cudie
Unexecuted instantiation: gzip.c:is_cudie
Unexecuted instantiation: dwflst_process_tracker.c:is_cudie
Unexecuted instantiation: dwflst_tracker_find_elf.c:is_cudie
Unexecuted instantiation: dwflst_tracker_elftab.c:is_cudie
Unexecuted instantiation: dwflst_tracker_dwfltab.c:is_cudie
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:is_cudie
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:is_cudie
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:is_cudie
Unexecuted instantiation: mips_retval.c:is_cudie
Unexecuted instantiation: dwarf_begin_elf.c:is_cudie
Unexecuted instantiation: dwarf_end.c:is_cudie
Unexecuted instantiation: dwarf_tag.c:is_cudie
Unexecuted instantiation: dwarf_error.c:is_cudie
Unexecuted instantiation: dwarf_attr.c:is_cudie
Unexecuted instantiation: dwarf_abbrev_hash.c:is_cudie
Unexecuted instantiation: dwarf_attr_integrate.c:is_cudie
Unexecuted instantiation: dwarf_hasattr_integrate.c:is_cudie
Unexecuted instantiation: dwarf_child.c:is_cudie
Unexecuted instantiation: dwarf_formudata.c:is_cudie
Unexecuted instantiation: dwarf_formref_die.c:is_cudie
Unexecuted instantiation: dwarf_siblingof.c:is_cudie
Unexecuted instantiation: dwarf_diecu.c:is_cudie
Unexecuted instantiation: dwarf_hasattr.c:is_cudie
Unexecuted instantiation: dwarf_bytesize.c:is_cudie
Unexecuted instantiation: dwarf_bitsize.c:is_cudie
Unexecuted instantiation: dwarf_formflag.c:is_cudie
Unexecuted instantiation: libdw_findcu.c:is_cudie
Unexecuted instantiation: libdw_form.c:is_cudie
Unexecuted instantiation: libdw_alloc.c:is_cudie
Unexecuted instantiation: frame-cache.c:is_cudie
Unexecuted instantiation: dwarf_frame_cfa.c:is_cudie
Unexecuted instantiation: dwarf_frame_register.c:is_cudie
Unexecuted instantiation: dwarf_cfi_addrframe.c:is_cudie
Unexecuted instantiation: dwarf_cfi_end.c:is_cudie
Unexecuted instantiation: dwarf_aggregate_size.c:is_cudie
Unexecuted instantiation: dwarf_getalt.c:is_cudie
Unexecuted instantiation: dwarf_setalt.c:is_cudie
Unexecuted instantiation: dwarf_peel_type.c:is_cudie
Unexecuted instantiation: dwarf_default_lower_bound.c:is_cudie
Unexecuted instantiation: libdw_find_split_unit.c:is_cudie
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:is_cudie
Unexecuted instantiation: dwfl_report_elf.c:is_cudie
Unexecuted instantiation: relocate.c:is_cudie
Unexecuted instantiation: dwfl_module_build_id.c:is_cudie
Unexecuted instantiation: dwfl_build_id_find_elf.c:is_cudie
Unexecuted instantiation: linux-proc-maps.c:is_cudie
Unexecuted instantiation: dwfl_addrmodule.c:is_cudie
Unexecuted instantiation: libdwfl_crc32.c:is_cudie
Unexecuted instantiation: elf-from-memory.c:is_cudie
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:is_cudie
Unexecuted instantiation: dwfl_module_eh_cfi.c:is_cudie
Unexecuted instantiation: linux-pid-attach.c:is_cudie
Unexecuted instantiation: dwarf_begin.c:is_cudie
Unexecuted instantiation: dwarf_getabbrev.c:is_cudie
Unexecuted instantiation: dwarf_nextcu.c:is_cudie
Unexecuted instantiation: dwarf_offdie.c:is_cudie
Unexecuted instantiation: dwarf_formstring.c:is_cudie
Unexecuted instantiation: dwarf_haschildren.c:is_cudie
Unexecuted instantiation: dwarf_formsdata.c:is_cudie
Unexecuted instantiation: dwarf_formref.c:is_cudie
Unexecuted instantiation: dwarf_srclang.c:is_cudie
Unexecuted instantiation: dwarf_getlocation.c:is_cudie
Unexecuted instantiation: fde.c:is_cudie
Unexecuted instantiation: cfi.c:is_cudie
Unexecuted instantiation: dwarf_getcfi.c:is_cudie
Unexecuted instantiation: dwarf_getcfi_elf.c:is_cudie
Unexecuted instantiation: dwarf_get_units.c:is_cudie
Unexecuted instantiation: segment.c:is_cudie
Unexecuted instantiation: dwarf_formaddr.c:is_cudie
Unexecuted instantiation: dwarf_lowpc.c:is_cudie
Unexecuted instantiation: dwarf_ranges.c:is_cudie
Unexecuted instantiation: dwarf_formblock.c:is_cudie
Unexecuted instantiation: dwarf_next_cfi.c:is_cudie
Unexecuted instantiation: cie.c:is_cudie
Unexecuted instantiation: dwarf_highpc.c:is_cudie
Unexecuted instantiation: core-file.c:is_cudie
Unexecuted instantiation: linux-core-attach.c:is_cudie
Unexecuted instantiation: dwfl_segment_report_module.c:is_cudie
Unexecuted instantiation: link_map.c:is_cudie
Unexecuted instantiation: dwfl_module_report_build_id.c:is_cudie
Unexecuted instantiation: derelocate.c:is_cudie
1125
1126
/* Read up begin/end pair and increment read pointer.
1127
    - If it's normal range record, set up *BEGINP and *ENDP and return 0.
1128
    - If it's base address selection record, set up *BASEP and return 1.
1129
    - If it's end of rangelist, don't set anything and return 2
1130
    - If an error occurs, don't set anything and return <0.  */
1131
int __libdw_read_begin_end_pair_inc (Dwarf_CU *cu, int sec_index,
1132
             const unsigned char **readp,
1133
             const unsigned char *readend,
1134
             int width,
1135
             Dwarf_Addr *beginp, Dwarf_Addr *endp,
1136
             Dwarf_Addr *basep)
1137
  internal_function;
1138
1139
const unsigned char * __libdw_formptr (Dwarf_Attribute *attr, int sec_index,
1140
               int err_nodata,
1141
               const unsigned char **endpp,
1142
               Dwarf_Off *offsetp)
1143
  internal_function;
1144
1145
/* Fills in the given attribute to point at an empty location expression.  */
1146
void __libdw_empty_loc_attr (Dwarf_Attribute *attr)
1147
  internal_function;
1148
1149
/* Load .debug_line unit at DEBUG_LINE_OFFSET.  COMP_DIR is a value of
1150
   DW_AT_comp_dir or NULL if that attribute is not available.  Caches
1151
   the loaded unit and optionally set *LINESP and/or *FILESP (if not
1152
   NULL) with loaded information.  Returns 0 for success or a negative
1153
   value for failure.  */
1154
int __libdw_getsrclines (Dwarf *dbg, Dwarf_Off debug_line_offset,
1155
       const char *comp_dir, unsigned address_size,
1156
       Dwarf_Lines **linesp, Dwarf_Files **filesp)
1157
  internal_function
1158
  __nonnull_attribute__ (1);
1159
1160
/* Load .debug_line unit at DEBUG_LINE_OFFSET.  COMP_DIR is a value of
1161
   DW_AT_comp_dir or NULL if that attribute is not available.  Caches
1162
   the loaded unit and set *FILESP with loaded information.  Returns 0
1163
   for success or a negative value for failure.  */
1164
int __libdw_getsrcfiles (Dwarf *dbg, Dwarf_Off debug_line_offset,
1165
       const char *comp_dir, unsigned address_size,
1166
       Dwarf_Files **filesp)
1167
  internal_function
1168
  __nonnull_attribute__ (1);
1169
1170
/* Load and return value of DW_AT_comp_dir from CUDIE.  */
1171
const char *__libdw_getcompdir (Dwarf_Die *cudie);
1172
1173
/* Get the base address for the CU, fetches it when not yet set.
1174
   This is used as initial base address for ranges and loclists.  */
1175
Dwarf_Addr __libdw_cu_base_address (Dwarf_CU *cu);
1176
1177
/* Get the address base for the CU, fetches it when not yet set.  */
1178
static inline Dwarf_Off
1179
__libdw_cu_addr_base (Dwarf_CU *cu)
1180
0
{
1181
0
  if (cu->addr_base == (Dwarf_Off) -1)
1182
0
    {
1183
0
      Dwarf_Die cu_die = CUDIE(cu);
1184
0
      Dwarf_Attribute attr;
1185
0
      Dwarf_Off offset = 0;
1186
0
      if (dwarf_attr (&cu_die, DW_AT_GNU_addr_base, &attr) != NULL
1187
0
    || dwarf_attr (&cu_die, DW_AT_addr_base, &attr) != NULL)
1188
0
  {
1189
0
    Dwarf_Word off;
1190
0
    if (dwarf_formudata (&attr, &off) == 0)
1191
0
      offset = off;
1192
0
  }
1193
0
      cu->addr_base = offset;
1194
0
    }
1195
1196
0
  return cu->addr_base;
1197
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_end.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_error.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module.c:__libdw_cu_addr_base
Unexecuted instantiation: offline.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_cu_addr_base
Unexecuted instantiation: find-debuginfo.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_cu_addr_base
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_cu_addr_base
Unexecuted instantiation: open.c:__libdw_cu_addr_base
Unexecuted instantiation: image-header.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_frame.c:__libdw_cu_addr_base
Unexecuted instantiation: frame_unwind.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_cu_addr_base
Unexecuted instantiation: gzip.c:__libdw_cu_addr_base
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_cu_addr_base
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_cu_addr_base
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_cu_addr_base
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_cu_addr_base
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_cu_addr_base
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_cu_addr_base
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_cu_addr_base
Unexecuted instantiation: mips_retval.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_end.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_tag.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_error.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_attr.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_child.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formudata.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formref_die.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_siblingof.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_diecu.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_hasattr.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_bytesize.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_bitsize.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formflag.c:__libdw_cu_addr_base
Unexecuted instantiation: libdw_findcu.c:__libdw_cu_addr_base
Unexecuted instantiation: libdw_form.c:__libdw_cu_addr_base
Unexecuted instantiation: libdw_alloc.c:__libdw_cu_addr_base
Unexecuted instantiation: frame-cache.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_frame_register.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_getalt.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_setalt.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_peel_type.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_cu_addr_base
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_report_elf.c:__libdw_cu_addr_base
Unexecuted instantiation: relocate.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_cu_addr_base
Unexecuted instantiation: linux-proc-maps.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_cu_addr_base
Unexecuted instantiation: libdwfl_crc32.c:__libdw_cu_addr_base
Unexecuted instantiation: elf-from-memory.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_cu_addr_base
Unexecuted instantiation: linux-pid-attach.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_begin.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_nextcu.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_offdie.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formstring.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_haschildren.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formsdata.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formref.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_srclang.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_getlocation.c:__libdw_cu_addr_base
Unexecuted instantiation: fde.c:__libdw_cu_addr_base
Unexecuted instantiation: cfi.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_getcfi.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_get_units.c:__libdw_cu_addr_base
Unexecuted instantiation: segment.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formaddr.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_lowpc.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_ranges.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_formblock.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_cu_addr_base
Unexecuted instantiation: cie.c:__libdw_cu_addr_base
Unexecuted instantiation: dwarf_highpc.c:__libdw_cu_addr_base
Unexecuted instantiation: core-file.c:__libdw_cu_addr_base
Unexecuted instantiation: linux-core-attach.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_cu_addr_base
Unexecuted instantiation: link_map.c:__libdw_cu_addr_base
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_cu_addr_base
Unexecuted instantiation: derelocate.c:__libdw_cu_addr_base
1198
1199
/* Gets the .debug_str_offsets base offset to use.  static inline to
1200
   be shared between libdw and eu-readelf.  */
1201
static inline Dwarf_Off
1202
str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu)
1203
0
{
1204
  /* If we don't have a CU, then find and use the first one in the
1205
     debug file (when we support .dwp files, we must actually find the
1206
     one matching our "caller" - aka macro or line).  If we (now) have
1207
     a cu and str_offsets_base attribute, just use that.  Otherwise
1208
     use the first offset.  But we might have to parse the header
1209
     first, but only if this is version 5.  Assume if all else fails,
1210
     this is version 4, without header.  */
1211
1212
0
  if (cu == NULL && dbg != NULL)
1213
0
    {
1214
0
      Dwarf_CU *first_cu;
1215
0
      if (dwarf_get_units (dbg, NULL, &first_cu, NULL, NULL, NULL, NULL) == 0)
1216
0
  cu = first_cu;
1217
0
    }
1218
1219
0
  Dwarf_Off off = 0;
1220
0
  if (cu != NULL)
1221
0
    {
1222
0
      mutex_lock (cu->str_off_base_lock);
1223
0
      if (cu->str_off_base == (Dwarf_Off) -1)
1224
0
  {
1225
0
    Dwarf_Off dwp_offset;
1226
0
    if (dwarf_cu_dwp_section_info (cu, DW_SECT_STR_OFFSETS, &dwp_offset,
1227
0
           NULL) == 0)
1228
0
      off = dwp_offset;
1229
0
    Dwarf_Die cu_die = CUDIE(cu);
1230
0
    Dwarf_Attribute attr;
1231
0
    if (dwarf_attr (&cu_die, DW_AT_str_offsets_base, &attr) != NULL)
1232
0
      {
1233
0
        Dwarf_Word base;
1234
0
        if (dwarf_formudata (&attr, &base) == 0)
1235
0
    {
1236
0
      cu->str_off_base = off + base;
1237
0
      mutex_unlock (cu->str_off_base_lock);
1238
0
      return cu->str_off_base;
1239
0
    }
1240
0
      }
1241
    /* For older DWARF simply assume zero (no header).  */
1242
0
    if (cu->version < 5)
1243
0
      {
1244
0
        cu->str_off_base = off;
1245
0
        mutex_unlock (cu->str_off_base_lock);
1246
0
        return cu->str_off_base;
1247
0
      }
1248
1249
0
    if (dbg == NULL)
1250
0
      dbg = cu->dbg;
1251
0
  }
1252
0
      else
1253
0
  {
1254
0
    mutex_unlock (cu->str_off_base_lock);
1255
0
    return cu->str_off_base;
1256
0
  }
1257
0
    }
1258
1259
  /* No str_offsets_base attribute, we have to assume "zero".
1260
     But there could be a header first.  */
1261
0
  if (dbg == NULL)
1262
0
    goto no_header;
1263
1264
0
  Elf_Data *data =  dbg->sectiondata[IDX_debug_str_offsets];
1265
0
  if (data == NULL)
1266
0
    goto no_header;
1267
1268
0
  const unsigned char *start;
1269
0
  const unsigned char *readp;
1270
0
  const unsigned char *readendp;
1271
0
  start = readp = (const unsigned char *) data->d_buf;
1272
0
  readendp = (const unsigned char *) data->d_buf + data->d_size;
1273
1274
0
  uint64_t unit_length;
1275
0
  uint16_t version;
1276
1277
0
  unit_length = read_4ubyte_unaligned_inc (dbg, readp);
1278
0
  if (unlikely (unit_length == 0xffffffff))
1279
0
    {
1280
0
      if (unlikely (readendp - readp < 8))
1281
0
  goto no_header;
1282
0
      unit_length = read_8ubyte_unaligned_inc (dbg, readp);
1283
      /* In theory the offset size could be different
1284
   between CU and str_offsets unit.  But we just
1285
   ignore that here. */
1286
0
    }
1287
1288
  /* We need at least 2-bytes (version) + 2-bytes (padding) =
1289
     4 bytes to complete the header.  And this unit cannot go
1290
     beyond the section data.  */
1291
0
  if (readendp - readp < 4
1292
0
      || unit_length < 4
1293
0
      || (uint64_t) (readendp - readp) < unit_length)
1294
0
    goto no_header;
1295
1296
0
  version = read_2ubyte_unaligned_inc (dbg, readp);
1297
0
  if (version != 5)
1298
0
    goto no_header;
1299
  /* padding */
1300
0
  read_2ubyte_unaligned_inc (dbg, readp);
1301
1302
0
  off += (Dwarf_Off) (readp - start);
1303
1304
0
 no_header:
1305
0
  if (cu != NULL)
1306
0
    {
1307
0
      cu->str_off_base = off;
1308
0
      mutex_unlock (cu->str_off_base_lock);
1309
0
    }
1310
1311
0
  return off;
1312
0
}
Unexecuted instantiation: dwfl_begin.c:str_offsets_base_off
Unexecuted instantiation: dwfl_end.c:str_offsets_base_off
Unexecuted instantiation: dwfl_error.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module.c:str_offsets_base_off
Unexecuted instantiation: offline.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module_getdwarf.c:str_offsets_base_off
Unexecuted instantiation: find-debuginfo.c:str_offsets_base_off
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:str_offsets_base_off
Unexecuted instantiation: libdwfl_crc32_file.c:str_offsets_base_off
Unexecuted instantiation: open.c:str_offsets_base_off
Unexecuted instantiation: image-header.c:str_offsets_base_off
Unexecuted instantiation: dwfl_frame.c:str_offsets_base_off
Unexecuted instantiation: frame_unwind.c:str_offsets_base_off
Unexecuted instantiation: dwfl_frame_pc.c:str_offsets_base_off
Unexecuted instantiation: dwfl_frame_regs.c:str_offsets_base_off
Unexecuted instantiation: gzip.c:str_offsets_base_off
Unexecuted instantiation: dwflst_process_tracker.c:str_offsets_base_off
Unexecuted instantiation: dwflst_tracker_find_elf.c:str_offsets_base_off
Unexecuted instantiation: dwflst_tracker_elftab.c:str_offsets_base_off
Unexecuted instantiation: dwflst_tracker_dwfltab.c:str_offsets_base_off
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:str_offsets_base_off
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:str_offsets_base_off
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:str_offsets_base_off
Unexecuted instantiation: mips_retval.c:str_offsets_base_off
Unexecuted instantiation: dwarf_begin_elf.c:str_offsets_base_off
Unexecuted instantiation: dwarf_end.c:str_offsets_base_off
Unexecuted instantiation: dwarf_tag.c:str_offsets_base_off
Unexecuted instantiation: dwarf_error.c:str_offsets_base_off
Unexecuted instantiation: dwarf_attr.c:str_offsets_base_off
Unexecuted instantiation: dwarf_abbrev_hash.c:str_offsets_base_off
Unexecuted instantiation: dwarf_attr_integrate.c:str_offsets_base_off
Unexecuted instantiation: dwarf_hasattr_integrate.c:str_offsets_base_off
Unexecuted instantiation: dwarf_child.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formudata.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formref_die.c:str_offsets_base_off
Unexecuted instantiation: dwarf_siblingof.c:str_offsets_base_off
Unexecuted instantiation: dwarf_diecu.c:str_offsets_base_off
Unexecuted instantiation: dwarf_hasattr.c:str_offsets_base_off
Unexecuted instantiation: dwarf_bytesize.c:str_offsets_base_off
Unexecuted instantiation: dwarf_bitsize.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formflag.c:str_offsets_base_off
Unexecuted instantiation: libdw_findcu.c:str_offsets_base_off
Unexecuted instantiation: libdw_form.c:str_offsets_base_off
Unexecuted instantiation: libdw_alloc.c:str_offsets_base_off
Unexecuted instantiation: frame-cache.c:str_offsets_base_off
Unexecuted instantiation: dwarf_frame_cfa.c:str_offsets_base_off
Unexecuted instantiation: dwarf_frame_register.c:str_offsets_base_off
Unexecuted instantiation: dwarf_cfi_addrframe.c:str_offsets_base_off
Unexecuted instantiation: dwarf_cfi_end.c:str_offsets_base_off
Unexecuted instantiation: dwarf_aggregate_size.c:str_offsets_base_off
Unexecuted instantiation: dwarf_getalt.c:str_offsets_base_off
Unexecuted instantiation: dwarf_setalt.c:str_offsets_base_off
Unexecuted instantiation: dwarf_peel_type.c:str_offsets_base_off
Unexecuted instantiation: dwarf_default_lower_bound.c:str_offsets_base_off
Unexecuted instantiation: libdw_find_split_unit.c:str_offsets_base_off
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:str_offsets_base_off
Unexecuted instantiation: dwfl_report_elf.c:str_offsets_base_off
Unexecuted instantiation: relocate.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module_build_id.c:str_offsets_base_off
Unexecuted instantiation: dwfl_build_id_find_elf.c:str_offsets_base_off
Unexecuted instantiation: linux-proc-maps.c:str_offsets_base_off
Unexecuted instantiation: dwfl_addrmodule.c:str_offsets_base_off
Unexecuted instantiation: libdwfl_crc32.c:str_offsets_base_off
Unexecuted instantiation: elf-from-memory.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module_eh_cfi.c:str_offsets_base_off
Unexecuted instantiation: linux-pid-attach.c:str_offsets_base_off
Unexecuted instantiation: dwarf_begin.c:str_offsets_base_off
Unexecuted instantiation: dwarf_getabbrev.c:str_offsets_base_off
Unexecuted instantiation: dwarf_nextcu.c:str_offsets_base_off
Unexecuted instantiation: dwarf_offdie.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formstring.c:str_offsets_base_off
Unexecuted instantiation: dwarf_haschildren.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formsdata.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formref.c:str_offsets_base_off
Unexecuted instantiation: dwarf_srclang.c:str_offsets_base_off
Unexecuted instantiation: dwarf_getlocation.c:str_offsets_base_off
Unexecuted instantiation: fde.c:str_offsets_base_off
Unexecuted instantiation: cfi.c:str_offsets_base_off
Unexecuted instantiation: dwarf_getcfi.c:str_offsets_base_off
Unexecuted instantiation: dwarf_getcfi_elf.c:str_offsets_base_off
Unexecuted instantiation: dwarf_get_units.c:str_offsets_base_off
Unexecuted instantiation: segment.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formaddr.c:str_offsets_base_off
Unexecuted instantiation: dwarf_lowpc.c:str_offsets_base_off
Unexecuted instantiation: dwarf_ranges.c:str_offsets_base_off
Unexecuted instantiation: dwarf_formblock.c:str_offsets_base_off
Unexecuted instantiation: dwarf_next_cfi.c:str_offsets_base_off
Unexecuted instantiation: cie.c:str_offsets_base_off
Unexecuted instantiation: dwarf_highpc.c:str_offsets_base_off
Unexecuted instantiation: core-file.c:str_offsets_base_off
Unexecuted instantiation: linux-core-attach.c:str_offsets_base_off
Unexecuted instantiation: dwfl_segment_report_module.c:str_offsets_base_off
Unexecuted instantiation: link_map.c:str_offsets_base_off
Unexecuted instantiation: dwfl_module_report_build_id.c:str_offsets_base_off
Unexecuted instantiation: derelocate.c:str_offsets_base_off
1313
1314
1315
/* Get the string offsets base for the CU, fetches it when not yet set.  */
1316
static inline Dwarf_Off __libdw_cu_str_off_base (Dwarf_CU *cu)
1317
0
{
1318
0
  return str_offsets_base_off (NULL, cu);
1319
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_end.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_error.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module.c:__libdw_cu_str_off_base
Unexecuted instantiation: offline.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_cu_str_off_base
Unexecuted instantiation: find-debuginfo.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_cu_str_off_base
Unexecuted instantiation: open.c:__libdw_cu_str_off_base
Unexecuted instantiation: image-header.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_frame.c:__libdw_cu_str_off_base
Unexecuted instantiation: frame_unwind.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_cu_str_off_base
Unexecuted instantiation: gzip.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_cu_str_off_base
Unexecuted instantiation: mips_retval.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_end.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_tag.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_error.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_attr.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_child.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formudata.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formref_die.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_siblingof.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_diecu.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_hasattr.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_bytesize.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_bitsize.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formflag.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdw_findcu.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdw_form.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdw_alloc.c:__libdw_cu_str_off_base
Unexecuted instantiation: frame-cache.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_frame_register.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_getalt.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_setalt.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_peel_type.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_report_elf.c:__libdw_cu_str_off_base
Unexecuted instantiation: relocate.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_cu_str_off_base
Unexecuted instantiation: linux-proc-maps.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_cu_str_off_base
Unexecuted instantiation: libdwfl_crc32.c:__libdw_cu_str_off_base
Unexecuted instantiation: elf-from-memory.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_cu_str_off_base
Unexecuted instantiation: linux-pid-attach.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_begin.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_nextcu.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_offdie.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formstring.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_haschildren.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formsdata.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formref.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_srclang.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_getlocation.c:__libdw_cu_str_off_base
Unexecuted instantiation: fde.c:__libdw_cu_str_off_base
Unexecuted instantiation: cfi.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_getcfi.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_get_units.c:__libdw_cu_str_off_base
Unexecuted instantiation: segment.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formaddr.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_lowpc.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_ranges.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_formblock.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_cu_str_off_base
Unexecuted instantiation: cie.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwarf_highpc.c:__libdw_cu_str_off_base
Unexecuted instantiation: core-file.c:__libdw_cu_str_off_base
Unexecuted instantiation: linux-core-attach.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_cu_str_off_base
Unexecuted instantiation: link_map.c:__libdw_cu_str_off_base
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_cu_str_off_base
Unexecuted instantiation: derelocate.c:__libdw_cu_str_off_base
1320
1321
1322
/* Either a direct offset into .debug_ranges for version < 5, or the
1323
   start of the offset table in .debug_rnglists for version > 5.  */
1324
static inline Dwarf_Off
1325
__libdw_cu_ranges_base (Dwarf_CU *cu)
1326
0
{
1327
0
  if (cu->ranges_base == (Dwarf_Off) -1)
1328
0
    {
1329
0
      Dwarf_Off offset = 0;
1330
0
      Dwarf_Die cu_die = CUDIE(cu);
1331
0
      Dwarf_Attribute attr;
1332
0
      if (cu->version < 5)
1333
0
  {
1334
0
    if (dwarf_attr (&cu_die, DW_AT_GNU_ranges_base, &attr) != NULL)
1335
0
      {
1336
0
        Dwarf_Word off;
1337
0
        if (dwarf_formudata (&attr, &off) == 0)
1338
0
    offset = off;
1339
0
      }
1340
0
  }
1341
0
      else
1342
0
  {
1343
0
    Dwarf_Off dwp_offset;
1344
0
    if (dwarf_cu_dwp_section_info (cu, DW_SECT_RNGLISTS, &dwp_offset,
1345
0
           NULL) == 0)
1346
0
      offset = dwp_offset;
1347
1348
0
    if (dwarf_attr (&cu_die, DW_AT_rnglists_base, &attr) != NULL)
1349
0
      {
1350
0
        Dwarf_Word off;
1351
0
        if (dwarf_formudata (&attr, &off) == 0)
1352
0
    offset += off;
1353
0
      }
1354
1355
    /* There wasn't an rnglists_base, if the Dwarf does have a
1356
       .debug_rnglists section, then it might be we need the
1357
       base after the first header. */
1358
0
    Elf_Data *data = cu->dbg->sectiondata[IDX_debug_rnglists];
1359
0
    if (offset == dwp_offset && data != NULL)
1360
0
      {
1361
0
        Dwarf *dbg = cu->dbg;
1362
0
        const unsigned char *readp = data->d_buf;
1363
0
        const unsigned char *const dataend
1364
0
    = (unsigned char *) data->d_buf + data->d_size;
1365
1366
0
        uint64_t unit_length = read_4ubyte_unaligned_inc (dbg, readp);
1367
0
        unsigned int offset_size = 4;
1368
0
        if (unlikely (unit_length == 0xffffffff))
1369
0
    {
1370
0
      if (unlikely (readp > dataend - 8))
1371
0
        goto no_header;
1372
1373
0
      unit_length = read_8ubyte_unaligned_inc (dbg, readp);
1374
0
      offset_size = 8;
1375
0
    }
1376
1377
0
        if (readp > dataend - 8
1378
0
      || unit_length < 8
1379
0
      || unit_length > (uint64_t) (dataend - readp))
1380
0
    goto no_header;
1381
1382
0
        uint16_t version = read_2ubyte_unaligned_inc (dbg, readp);
1383
0
        if (version != 5)
1384
0
    goto no_header;
1385
1386
0
        uint8_t address_size = *readp++;
1387
0
        if (address_size != 4 && address_size != 8)
1388
0
    goto no_header;
1389
1390
0
        uint8_t segment_size = *readp++;
1391
0
        if (segment_size != 0)
1392
0
    goto no_header;
1393
1394
0
        uint32_t offset_entry_count;
1395
0
        offset_entry_count = read_4ubyte_unaligned_inc (dbg, readp);
1396
1397
0
        const unsigned char *offset_array_start = readp;
1398
0
        if (offset_entry_count <= 0)
1399
0
    goto no_header;
1400
1401
0
        uint64_t needed = offset_entry_count * offset_size;
1402
0
        if (unit_length - 8 < needed)
1403
0
    goto no_header;
1404
1405
0
        offset += (Dwarf_Off) (offset_array_start
1406
0
             - (unsigned char *) data->d_buf);
1407
0
      }
1408
0
  }
1409
0
    no_header:
1410
0
      cu->ranges_base = offset;
1411
0
    }
1412
1413
0
  return cu->ranges_base;
1414
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_end.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_error.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module.c:__libdw_cu_ranges_base
Unexecuted instantiation: offline.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_cu_ranges_base
Unexecuted instantiation: find-debuginfo.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_cu_ranges_base
Unexecuted instantiation: open.c:__libdw_cu_ranges_base
Unexecuted instantiation: image-header.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_frame.c:__libdw_cu_ranges_base
Unexecuted instantiation: frame_unwind.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_cu_ranges_base
Unexecuted instantiation: gzip.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_cu_ranges_base
Unexecuted instantiation: mips_retval.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_end.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_tag.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_error.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_attr.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_child.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formudata.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formref_die.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_siblingof.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_diecu.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_hasattr.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_bytesize.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_bitsize.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formflag.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdw_findcu.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdw_form.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdw_alloc.c:__libdw_cu_ranges_base
Unexecuted instantiation: frame-cache.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_frame_register.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_getalt.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_setalt.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_peel_type.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_report_elf.c:__libdw_cu_ranges_base
Unexecuted instantiation: relocate.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_cu_ranges_base
Unexecuted instantiation: linux-proc-maps.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_cu_ranges_base
Unexecuted instantiation: libdwfl_crc32.c:__libdw_cu_ranges_base
Unexecuted instantiation: elf-from-memory.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_cu_ranges_base
Unexecuted instantiation: linux-pid-attach.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_begin.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_nextcu.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_offdie.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formstring.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_haschildren.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formsdata.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formref.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_srclang.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_getlocation.c:__libdw_cu_ranges_base
Unexecuted instantiation: fde.c:__libdw_cu_ranges_base
Unexecuted instantiation: cfi.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_getcfi.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_get_units.c:__libdw_cu_ranges_base
Unexecuted instantiation: segment.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formaddr.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_lowpc.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_ranges.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_formblock.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_cu_ranges_base
Unexecuted instantiation: cie.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwarf_highpc.c:__libdw_cu_ranges_base
Unexecuted instantiation: core-file.c:__libdw_cu_ranges_base
Unexecuted instantiation: linux-core-attach.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_cu_ranges_base
Unexecuted instantiation: link_map.c:__libdw_cu_ranges_base
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_cu_ranges_base
Unexecuted instantiation: derelocate.c:__libdw_cu_ranges_base
1415
1416
1417
/* The start of the offset table in .debug_loclists for DWARF5.  */
1418
static inline Dwarf_Off
1419
__libdw_cu_locs_base (Dwarf_CU *cu)
1420
0
{
1421
0
  if (cu->locs_base == (Dwarf_Off) -1)
1422
0
    {
1423
0
      Dwarf_Off offset = 0;
1424
0
      Dwarf_Off dwp_offset;
1425
0
      if (dwarf_cu_dwp_section_info (cu, DW_SECT_LOCLISTS, &dwp_offset, NULL)
1426
0
    == 0)
1427
0
  offset = dwp_offset;
1428
1429
0
      Dwarf_Die cu_die = CUDIE(cu);
1430
0
      Dwarf_Attribute attr;
1431
0
      if (dwarf_attr (&cu_die, DW_AT_loclists_base, &attr) != NULL)
1432
0
  {
1433
0
    Dwarf_Word off;
1434
0
    if (dwarf_formudata (&attr, &off) == 0)
1435
0
      offset += off;
1436
0
  }
1437
1438
      /* There wasn't an loclists_base, if the Dwarf does have a
1439
   .debug_loclists section, then it might be we need the
1440
   base after the first header. */
1441
0
      Elf_Data *data = cu->dbg->sectiondata[IDX_debug_loclists];
1442
0
      if (offset == dwp_offset && data != NULL)
1443
0
  {
1444
0
    Dwarf *dbg = cu->dbg;
1445
0
    const unsigned char *readp = data->d_buf;
1446
0
    const unsigned char *const dataend
1447
0
      = (unsigned char *) data->d_buf + data->d_size;
1448
1449
0
    uint64_t unit_length = read_4ubyte_unaligned_inc (dbg, readp);
1450
0
    unsigned int offset_size = 4;
1451
0
    if (unlikely (unit_length == 0xffffffff))
1452
0
      {
1453
0
        if (unlikely (readp > dataend - 8))
1454
0
    goto no_header;
1455
1456
0
        unit_length = read_8ubyte_unaligned_inc (dbg, readp);
1457
0
        offset_size = 8;
1458
0
      }
1459
1460
0
    if (readp > dataend - 8
1461
0
        || unit_length < 8
1462
0
        || unit_length > (uint64_t) (dataend - readp))
1463
0
      goto no_header;
1464
1465
0
    uint16_t version = read_2ubyte_unaligned_inc (dbg, readp);
1466
0
    if (version != 5)
1467
0
      goto no_header;
1468
1469
0
    uint8_t address_size = *readp++;
1470
0
    if (address_size != 4 && address_size != 8)
1471
0
      goto no_header;
1472
1473
0
    uint8_t segment_size = *readp++;
1474
0
    if (segment_size != 0)
1475
0
      goto no_header;
1476
1477
0
    uint32_t offset_entry_count;
1478
0
    offset_entry_count = read_4ubyte_unaligned_inc (dbg, readp);
1479
1480
0
    const unsigned char *offset_array_start = readp;
1481
0
    if (offset_entry_count <= 0)
1482
0
      goto no_header;
1483
1484
0
    uint64_t needed = offset_entry_count * offset_size;
1485
0
    if (unit_length - 8 < needed)
1486
0
      goto no_header;
1487
1488
0
    offset += (Dwarf_Off) (offset_array_start
1489
0
         - (unsigned char *) data->d_buf);
1490
0
  }
1491
1492
0
    no_header:
1493
0
      cu->locs_base = offset;
1494
0
    }
1495
1496
0
  return cu->locs_base;
1497
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_end.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_error.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module.c:__libdw_cu_locs_base
Unexecuted instantiation: offline.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_cu_locs_base
Unexecuted instantiation: find-debuginfo.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_cu_locs_base
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_cu_locs_base
Unexecuted instantiation: open.c:__libdw_cu_locs_base
Unexecuted instantiation: image-header.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_frame.c:__libdw_cu_locs_base
Unexecuted instantiation: frame_unwind.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_cu_locs_base
Unexecuted instantiation: gzip.c:__libdw_cu_locs_base
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_cu_locs_base
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_cu_locs_base
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_cu_locs_base
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_cu_locs_base
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_cu_locs_base
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_cu_locs_base
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_cu_locs_base
Unexecuted instantiation: mips_retval.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_end.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_tag.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_error.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_attr.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_child.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formudata.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formref_die.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_siblingof.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_diecu.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_hasattr.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_bytesize.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_bitsize.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formflag.c:__libdw_cu_locs_base
Unexecuted instantiation: libdw_findcu.c:__libdw_cu_locs_base
Unexecuted instantiation: libdw_form.c:__libdw_cu_locs_base
Unexecuted instantiation: libdw_alloc.c:__libdw_cu_locs_base
Unexecuted instantiation: frame-cache.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_frame_register.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_getalt.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_setalt.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_peel_type.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_cu_locs_base
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_report_elf.c:__libdw_cu_locs_base
Unexecuted instantiation: relocate.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_cu_locs_base
Unexecuted instantiation: linux-proc-maps.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_cu_locs_base
Unexecuted instantiation: libdwfl_crc32.c:__libdw_cu_locs_base
Unexecuted instantiation: elf-from-memory.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_cu_locs_base
Unexecuted instantiation: linux-pid-attach.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_begin.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_nextcu.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_offdie.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formstring.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_haschildren.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formsdata.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formref.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_srclang.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_getlocation.c:__libdw_cu_locs_base
Unexecuted instantiation: fde.c:__libdw_cu_locs_base
Unexecuted instantiation: cfi.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_getcfi.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_get_units.c:__libdw_cu_locs_base
Unexecuted instantiation: segment.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formaddr.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_lowpc.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_ranges.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_formblock.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_cu_locs_base
Unexecuted instantiation: cie.c:__libdw_cu_locs_base
Unexecuted instantiation: dwarf_highpc.c:__libdw_cu_locs_base
Unexecuted instantiation: core-file.c:__libdw_cu_locs_base
Unexecuted instantiation: linux-core-attach.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_cu_locs_base
Unexecuted instantiation: link_map.c:__libdw_cu_locs_base
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_cu_locs_base
Unexecuted instantiation: derelocate.c:__libdw_cu_locs_base
1498
1499
/* Helper function for tsearch/tfind split_tree Dwarf.  */
1500
int __libdw_finddbg_cb (const void *arg1, const void *arg2);
1501
1502
/* Link skeleton and split compile units.  */
1503
static inline void
1504
__libdw_link_skel_split (Dwarf_CU *skel, Dwarf_CU *split)
1505
0
{
1506
0
  skel->split = split;
1507
0
  split->split = skel;
1508
1509
  /* Get .debug_addr and addr_base greedy.
1510
     We also need it for the fake addr cu.
1511
     This needs to be done for each split unit (one per .dwo file, or multiple
1512
     per .dwp file).  */
1513
0
  Dwarf *dbg = skel->dbg;
1514
0
  Dwarf *sdbg = split->dbg;
1515
0
  if (dbg->sectiondata[IDX_debug_addr] != NULL
1516
      /* If this split file hasn't been linked yet...  */
1517
0
      && (sdbg->sectiondata[IDX_debug_addr] == NULL
1518
    /* ... or it was linked to the same skeleton file for another
1519
       unit...  */
1520
0
    || (sdbg->sectiondata[IDX_debug_addr]
1521
0
        == dbg->sectiondata[IDX_debug_addr])))
1522
0
    {
1523
      /* ... then link the address information for this file and unit.  */
1524
0
      sdbg->sectiondata[IDX_debug_addr]
1525
0
  = dbg->sectiondata[IDX_debug_addr];
1526
0
      split->addr_base = __libdw_cu_addr_base (skel);
1527
0
      sdbg->fake_addr_cu = dbg->fake_addr_cu;
1528
0
    }
1529
0
}
Unexecuted instantiation: dwfl_begin.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_end.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_error.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module.c:__libdw_link_skel_split
Unexecuted instantiation: offline.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module_getdwarf.c:__libdw_link_skel_split
Unexecuted instantiation: find-debuginfo.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:__libdw_link_skel_split
Unexecuted instantiation: libdwfl_crc32_file.c:__libdw_link_skel_split
Unexecuted instantiation: open.c:__libdw_link_skel_split
Unexecuted instantiation: image-header.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_frame.c:__libdw_link_skel_split
Unexecuted instantiation: frame_unwind.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_frame_pc.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_frame_regs.c:__libdw_link_skel_split
Unexecuted instantiation: gzip.c:__libdw_link_skel_split
Unexecuted instantiation: dwflst_process_tracker.c:__libdw_link_skel_split
Unexecuted instantiation: dwflst_tracker_find_elf.c:__libdw_link_skel_split
Unexecuted instantiation: dwflst_tracker_elftab.c:__libdw_link_skel_split
Unexecuted instantiation: dwflst_tracker_dwfltab.c:__libdw_link_skel_split
Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:__libdw_link_skel_split
Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:__libdw_link_skel_split
Unexecuted instantiation: dwelf_elf_gnu_build_id.c:__libdw_link_skel_split
Unexecuted instantiation: mips_retval.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_begin_elf.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_end.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_tag.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_error.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_attr.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_abbrev_hash.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_attr_integrate.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_hasattr_integrate.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_child.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formudata.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formref_die.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_siblingof.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_diecu.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_hasattr.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_bytesize.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_bitsize.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formflag.c:__libdw_link_skel_split
Unexecuted instantiation: libdw_findcu.c:__libdw_link_skel_split
Unexecuted instantiation: libdw_form.c:__libdw_link_skel_split
Unexecuted instantiation: libdw_alloc.c:__libdw_link_skel_split
Unexecuted instantiation: frame-cache.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_frame_cfa.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_frame_register.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_cfi_addrframe.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_cfi_end.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_aggregate_size.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_getalt.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_setalt.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_peel_type.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_default_lower_bound.c:__libdw_link_skel_split
Unexecuted instantiation: libdw_find_split_unit.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_cu_dwp_section_info.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_report_elf.c:__libdw_link_skel_split
Unexecuted instantiation: relocate.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module_build_id.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_build_id_find_elf.c:__libdw_link_skel_split
Unexecuted instantiation: linux-proc-maps.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_addrmodule.c:__libdw_link_skel_split
Unexecuted instantiation: libdwfl_crc32.c:__libdw_link_skel_split
Unexecuted instantiation: elf-from-memory.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module_dwarf_cfi.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module_eh_cfi.c:__libdw_link_skel_split
Unexecuted instantiation: linux-pid-attach.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_begin.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_getabbrev.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_nextcu.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_offdie.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formstring.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_haschildren.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formsdata.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formref.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_srclang.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_getlocation.c:__libdw_link_skel_split
Unexecuted instantiation: fde.c:__libdw_link_skel_split
Unexecuted instantiation: cfi.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_getcfi.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_getcfi_elf.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_get_units.c:__libdw_link_skel_split
Unexecuted instantiation: segment.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formaddr.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_lowpc.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_ranges.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_formblock.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_next_cfi.c:__libdw_link_skel_split
Unexecuted instantiation: cie.c:__libdw_link_skel_split
Unexecuted instantiation: dwarf_highpc.c:__libdw_link_skel_split
Unexecuted instantiation: core-file.c:__libdw_link_skel_split
Unexecuted instantiation: linux-core-attach.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_segment_report_module.c:__libdw_link_skel_split
Unexecuted instantiation: link_map.c:__libdw_link_skel_split
Unexecuted instantiation: dwfl_module_report_build_id.c:__libdw_link_skel_split
Unexecuted instantiation: derelocate.c:__libdw_link_skel_split
1530
1531
1532
/* Given an address index for a CU return the address.
1533
   Returns -1 and sets libdw_errno if an error occurs.  */
1534
int __libdw_addrx (Dwarf_CU *cu, Dwarf_Word idx, Dwarf_Addr *addr);
1535
1536
1537
/* Helper function to set elfpath field in Dwarf, used from dwarf_begin_elf
1538
   and libdwfl process_file.  */
1539
char * __libdw_elfpath (int fd);
1540
1541
/* Helper function to set debugdir field in Dwarf after elfpath field has been
1542
   set.  */
1543
void __libdw_set_debugdir (Dwarf *dbg);
1544
1545
1546
/* Given the directory of a debug file, an absolute or relative dir
1547
   to look in, and file returns a full path.
1548
1549
   If the file is absolute (starts with a /) a copy of file is returned.
1550
   the file isn't absolute, but dir is absolute, then a path that is
1551
   the concatenation of dir and file is returned.  If neither file,
1552
   nor dir is absolute, the path will be constructed using dir (if not
1553
   NULL) and file relative to the debugdir (if valid).
1554
1555
   The debugdir and the dir may be NULL (in which case they aren't used).
1556
   If file is NULL, or no full path can be constructed NULL is returned.
1557
1558
   The caller is responsible for freeing the result if not NULL.  */
1559
char * __libdw_filepath (const char *debugdir, const char *dir,
1560
       const char *file)
1561
  internal_function;
1562
1563
/* Like dwarf_getaranges but aranges are generated from CU address
1564
   ranges instead of being read from .debug_aranges.
1565
1566
   Returns 0 if successful and updates ARANGES and NARANGES.  Otherwise
1567
   returns -1 and sets libdw_errno.
1568
*/
1569
int __libdw_getdieranges (Dwarf *dbg, Dwarf_Aranges **aranges, size_t *naranges);
1570
#endif  /* libdwP.h */