Coverage Report

Created: 2026-08-30 07:12

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