diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-03-14 22:18:27 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-03-14 22:18:27 (GMT) |
commit | fab9d7cd46922abea7d94f36dcd4630cdf3f4719 (patch) | |
tree | ad41bb921db17631104a069e4df64fb4fc5ccfc1 /src/format/dwarf/abbrev.h | |
parent | 8d8e5c02096f59a7227308a591fc5050ea5d92ff (diff) |
Improved the basic support of Dwarf information.
Diffstat (limited to 'src/format/dwarf/abbrev.h')
-rw-r--r-- | src/format/dwarf/abbrev.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/format/dwarf/abbrev.h b/src/format/dwarf/abbrev.h index 469d572..bc7efe6 100644 --- a/src/format/dwarf/abbrev.h +++ b/src/format/dwarf/abbrev.h @@ -28,6 +28,73 @@ #include <stdbool.h> +#include "dwarf.h" +#include "dwarf_def.h" + + + + +/* Description d'une abréviation */ +typedef struct _dw_abbrev dw_abbrev; + + + + + + + +/* Charge toutes les abbréviations présentes dans un DWARF. */ +bool load_all_dwarf_abbreviations(GDwarfFormat *); + +/* Charge une abréviation valide pour un DWARF en mémoire. */ +bool load_dwarf_abbreviation(const GDwarfFormat *, vmpa2t *, dw_abbrev **); + +/* Supprime de la mémoire toute trace d'une abréviation DWARF. */ +void free_dwarf_abbreviation(dw_abbrev *); + +/* Fournit l'étiquette associée à l'ensemble des attributs. */ +DwarfTag dwarf_abbreviation_get_tag(const dw_abbrev *); + +/* Compte le nombre d'attributs présents dans une abréviation. */ +size_t dwarf_abbreviation_count_attribs(const dw_abbrev *); + +/* Recherche un attribut dans une abréviation. */ +bool dwarf_abbreviation_get_attrib_index(const dw_abbrev *, DwarfAttrib, size_t *); + + +/* Détermine le type d'un attribut dans une abréviation. */ +bool dwarf_abbreviation_get_form_for_index(const dw_abbrev *, size_t, DwarfForm *); + + +/* Indique si une abbréviation comporte des sous-définitions. */ +bool dwarf_abbreviation_has_children(const dw_abbrev *); + + + +/* Recherche une abréviation DWARF donnée. */ +const dw_abbrev *find_dwarf_abbreviations(const GDwarfFormat *, uleb128_t); + +/* Lit la valeur correspondant à un type donné. */ +dw_value *translate_abbreviation_attributes(const GDwarfFormat *, const dw_abbrev *, const dw_compil_unit_header *, vmpa2t *); + + + + + + + + + + + + + +#if 0 + + +#include <stdbool.h> + + #include "d_dwarf.h" #include "dwarf-int.h" @@ -52,5 +119,8 @@ bool read_dwarf_abbrev_attribute(dwarf_format *, off_t *, bool, const dw_abbrev bool skip_dwarf_abbrev(dwarf_format *, off_t *, const dw_abbrev *); +#endif + + #endif /* _FORMAT_DWARF_ABBREV_H */ |