dwarf-el-0.3: Parser for DWARF debug format.

Safe HaskellNone
LanguageHaskell98

Data.Dwarf

Description

Parses the DWARF 2 and DWARF 3 specifications at http://www.dwarfstd.org given the debug sections in ByteString form.

Synopsis

Documentation

data Endianess Source #

Constructors

LittleEndian 
BigEndian 

Instances

Eq Endianess Source # 
Ord Endianess Source # 
Read Endianess Source # 
Show Endianess Source # 
Generic Endianess Source # 

Associated Types

type Rep Endianess :: * -> * #

TextShow Endianess Source # 
type Rep Endianess Source # 
type Rep Endianess = D1 * (MetaData "Endianess" "Data.Dwarf.Reader" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "LittleEndian" PrefixI False) (U1 *)) (C1 * (MetaCons "BigEndian" PrefixI False) (U1 *)))

data TargetSize Source #

Constructors

TargetSize32 
TargetSize64 

Instances

Eq TargetSize Source # 
Ord TargetSize Source # 
Read TargetSize Source # 
Show TargetSize Source # 
Generic TargetSize Source # 

Associated Types

type Rep TargetSize :: * -> * #

TextShow TargetSize Source # 
type Rep TargetSize Source # 
type Rep TargetSize = D1 * (MetaData "TargetSize" "Data.Dwarf.Reader" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "TargetSize32" PrefixI False) (U1 *)) (C1 * (MetaCons "TargetSize64" PrefixI False) (U1 *)))

parseInfo Source #

Arguments

:: Endianess 
-> Sections 
-> ([DIE], DIEMap)

The die list is of compilation unit dies

Parses the .debug_info section (as ByteString) using the .debug_abbrev and .debug_str sections.

data DIE Source #

The dwarf information entries form a graph of nodes tagged with attributes. Please refer to the DWARF specification for semantics. Although it looks like a tree, there can be attributes which have adjacency information which will introduce cross-branch edges.

Constructors

DIE 

Fields

Instances

(!?) :: DIE -> DW_AT -> [DW_ATVAL] Source #

Utility function for retrieving the list of values for a specified attribute from a DWARF information entry.

data DIERefs Source #

Constructors

DIERefs 

Fields

Instances

Show DIERefs Source # 
Generic DIERefs Source # 

Associated Types

type Rep DIERefs :: * -> * #

Methods

from :: DIERefs -> Rep DIERefs x #

to :: Rep DIERefs x -> DIERefs #

type Rep DIERefs Source # 

data Reader Source #

Type containing functions and data needed for decoding DWARF information.

Constructors

Reader 

Fields

parseAranges :: Endianess -> TargetSize -> ByteString -> [([Range], CUOffset)] Source #

Parses the .debug_aranges section (as ByteString) into a map from an address range to a DieID that indexes the Info.

parsePubnames :: Endianess -> TargetSize -> ByteString -> Map Text [DieID] Source #

Parses the .debug_pubnames section (as ByteString) into a map from a value name to a DieID

parsePubtypes :: Endianess -> TargetSize -> ByteString -> Map Text [DieID] Source #

Parses the .debug_pubtypes section (as ByteString) into a map from a type name to a DieID

data Range Source #

Constructors

Range 

Fields

Instances

Eq Range Source # 

Methods

(==) :: Range -> Range -> Bool #

(/=) :: Range -> Range -> Bool #

Ord Range Source # 

Methods

compare :: Range -> Range -> Ordering #

(<) :: Range -> Range -> Bool #

(<=) :: Range -> Range -> Bool #

(>) :: Range -> Range -> Bool #

(>=) :: Range -> Range -> Bool #

max :: Range -> Range -> Range #

min :: Range -> Range -> Range #

Read Range Source # 
Show Range Source # 

Methods

showsPrec :: Int -> Range -> ShowS #

show :: Range -> String #

showList :: [Range] -> ShowS #

Generic Range Source # 

Associated Types

type Rep Range :: * -> * #

Methods

from :: Range -> Rep Range x #

to :: Rep Range x -> Range #

TextShow Range Source # 
type Rep Range Source # 
type Rep Range = D1 * (MetaData "Range" "Data.Dwarf" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) (C1 * (MetaCons "Range" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "rangeBegin") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word64)) (S1 * (MetaSel (Just Symbol "rangeEnd") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 * Word64))))

parseRanges :: Reader -> ByteString -> [Either RangeEnd Range] Source #

Retrieves the non-contiguous address ranges for a compilation unit from a given substring of the .debug_ranges section. The offset into the .debug_ranges section is obtained from the DW_AT_ranges attribute of a compilation unit DIE. Left results are base address entries. Right results are address ranges.

parseLoc :: Reader -> ByteString -> [Either RangeEnd (Range, ByteString)] Source #

Retrieves the location list expressions from a given substring of the .debug_loc section. The offset into the .debug_loc section is obtained from an attribute of class loclistptr for a given DIE. Left results are base address entries. Right results are address ranges and a location expression.

data DW_CFA Source #

Instances

Eq DW_CFA Source # 

Methods

(==) :: DW_CFA -> DW_CFA -> Bool #

(/=) :: DW_CFA -> DW_CFA -> Bool #

Ord DW_CFA Source # 
Read DW_CFA Source # 
Show DW_CFA Source # 
Generic DW_CFA Source # 

Associated Types

type Rep DW_CFA :: * -> * #

Methods

from :: DW_CFA -> Rep DW_CFA x #

to :: Rep DW_CFA x -> DW_CFA #

TextShow DW_CFA Source # 
type Rep DW_CFA Source # 
type Rep DW_CFA = D1 * (MetaData "DW_CFA" "Data.Dwarf.CFA" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_advance_loc" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8))) ((:+:) * (C1 * (MetaCons "DW_CFA_offset" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))) (C1 * (MetaCons "DW_CFA_restore" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8))))) ((:+:) * (C1 * (MetaCons "DW_CFA_nop" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_CFA_set_loc" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_CFA_advance_loc1" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_advance_loc2" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word16))) ((:+:) * (C1 * (MetaCons "DW_CFA_advance_loc4" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word32))) (C1 * (MetaCons "DW_CFA_offset_extended" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_restore_extended" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_CFA_undefined" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))) ((:+:) * (C1 * (MetaCons "DW_CFA_same_value" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_CFA_register" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_remember_state" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_CFA_restore_state" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_CFA_def_cfa" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))))) ((:+:) * (C1 * (MetaCons "DW_CFA_def_cfa_register" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) ((:+:) * (C1 * (MetaCons "DW_CFA_def_cfa_offset" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_CFA_def_cfa_expression" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ByteString)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_expression" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ByteString)))) ((:+:) * (C1 * (MetaCons "DW_CFA_offset_extended_sf" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))) (C1 * (MetaCons "DW_CFA_def_cfa_sf" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_CFA_def_cfa_offset_sf" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64))) (C1 * (MetaCons "DW_CFA_val_offset" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))))) ((:+:) * (C1 * (MetaCons "DW_CFA_val_offset_sf" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))) (C1 * (MetaCons "DW_CFA_val_expression" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * ByteString)))))))))

data DW_MACINFO Source #

Constructors

DW_MACINFO_define Word64 Text

Line number and defined symbol with definition

DW_MACINFO_undef Word64 Text

Line number and undefined symbol

DW_MACINFO_start_file Word64 Word64

Marks start of file with the line where the file was included from and a source file index

DW_MACINFO_end_file

Marks end of file

DW_MACINFO_vendor_ext Word64 Text

Implementation defined

Instances

Eq DW_MACINFO Source # 
Ord DW_MACINFO Source # 
Read DW_MACINFO Source # 
Show DW_MACINFO Source # 
Generic DW_MACINFO Source # 

Associated Types

type Rep DW_MACINFO :: * -> * #

TextShow DW_MACINFO Source # 
type Rep DW_MACINFO Source # 

parseMacInfo :: ByteString -> [DW_MACINFO] Source #

Retrieves the macro information for a compilation unit from a given substring of the .debug_macinfo section. The offset into the .debug_macinfo section is obtained from the DW_AT_macro_info attribute of a compilation unit DIE.

data DW_CIEFDE Source #

Instances

Eq DW_CIEFDE Source # 
Ord DW_CIEFDE Source # 
Read DW_CIEFDE Source # 
Show DW_CIEFDE Source # 
Generic DW_CIEFDE Source # 

Associated Types

type Rep DW_CIEFDE :: * -> * #

TextShow DW_CIEFDE Source # 
type Rep DW_CIEFDE Source # 

parseFrame Source #

Arguments

:: Endianess 
-> TargetSize 
-> ByteString

ByteString for the .debug_frame section.

-> [DW_CIEFDE] 

Parse the .debug_frame section into a list of DW_CIEFDE records.

data DW_OP Source #

Instances

Eq DW_OP Source # 

Methods

(==) :: DW_OP -> DW_OP -> Bool #

(/=) :: DW_OP -> DW_OP -> Bool #

Ord DW_OP Source # 

Methods

compare :: DW_OP -> DW_OP -> Ordering #

(<) :: DW_OP -> DW_OP -> Bool #

(<=) :: DW_OP -> DW_OP -> Bool #

(>) :: DW_OP -> DW_OP -> Bool #

(>=) :: DW_OP -> DW_OP -> Bool #

max :: DW_OP -> DW_OP -> DW_OP #

min :: DW_OP -> DW_OP -> DW_OP #

Read DW_OP Source # 
Show DW_OP Source # 

Methods

showsPrec :: Int -> DW_OP -> ShowS #

show :: DW_OP -> String #

showList :: [DW_OP] -> ShowS #

Generic DW_OP Source # 

Associated Types

type Rep DW_OP :: * -> * #

Methods

from :: DW_OP -> Rep DW_OP x #

to :: Rep DW_OP x -> DW_OP #

TextShow DW_OP Source # 
type Rep DW_OP Source # 
type Rep DW_OP = D1 * (MetaData "DW_OP" "Data.Dwarf.OP" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_addr" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) ((:+:) * (C1 * (MetaCons "DW_OP_deref" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_const1u" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_const1s" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int8))) (C1 * (MetaCons "DW_OP_const2u" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word16)))) ((:+:) * (C1 * (MetaCons "DW_OP_const2s" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int16))) (C1 * (MetaCons "DW_OP_const4u" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word32)))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_const4s" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int32))) ((:+:) * (C1 * (MetaCons "DW_OP_const8u" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_OP_const8s" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_constu" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_OP_consts" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))) ((:+:) * (C1 * (MetaCons "DW_OP_dup" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_drop" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_over" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_OP_pick" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8))) (C1 * (MetaCons "DW_OP_swap" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_rot" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_xderef" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_abs" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_and" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_div" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_minus" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_mod" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_mul" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_neg" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_not" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_or" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_plus" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_plus_uconst" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) ((:+:) * (C1 * (MetaCons "DW_OP_shl" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_shr" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_shra" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_xor" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_skip" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int16))) (C1 * (MetaCons "DW_OP_bra" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int16)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_eq" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_ge" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_gt" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_le" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_lt" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_ne" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_lit" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int))) (C1 * (MetaCons "DW_OP_reg" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int))))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_breg" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))) ((:+:) * (C1 * (MetaCons "DW_OP_regx" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_OP_fbreg" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_bregx" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int64)))) (C1 * (MetaCons "DW_OP_piece" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))) ((:+:) * (C1 * (MetaCons "DW_OP_deref_size" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8))) (C1 * (MetaCons "DW_OP_xderef_size" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word8)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_nop" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_push_object_address" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_call2" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word16))) (C1 * (MetaCons "DW_OP_call4" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word32))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_OP_call_ref" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))) (C1 * (MetaCons "DW_OP_form_tls_address" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_OP_call_frame_cfa" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_OP_bit_piece" PrefixI False) ((:*:) * (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))))))))))

parseDW_OP :: Reader -> ByteString -> DW_OP Source #

Parse a ByteString into a DWARF opcode. This will be needed for further decoding of DIE attributes.

data DW_TAG Source #

Instances

Eq DW_TAG Source # 

Methods

(==) :: DW_TAG -> DW_TAG -> Bool #

(/=) :: DW_TAG -> DW_TAG -> Bool #

Ord DW_TAG Source # 
Read DW_TAG Source # 
Show DW_TAG Source # 
Generic DW_TAG Source # 

Associated Types

type Rep DW_TAG :: * -> * #

Methods

from :: DW_TAG -> Rep DW_TAG x #

to :: Rep DW_TAG x -> DW_TAG #

TextShow DW_TAG Source # 
type Rep DW_TAG Source # 
type Rep DW_TAG = D1 * (MetaData "DW_TAG" "Data.Dwarf.TAG" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_array_type" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_class_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_entry_point" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_enumeration_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_formal_parameter" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_imported_declaration" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_label" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_lexical_block" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_member" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_pointer_type" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_reference_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_compile_unit" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_string_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_structure_type" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_subroutine_type" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_typedef" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_union_type" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_unspecified_parameters" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_variant" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_common_block" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_common_inclusion" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_inheritance" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_inlined_subroutine" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_module" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_ptr_to_member_type" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_set_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_subrange_type" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_with_stmt" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_access_declaration" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_base_type" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_catch_block" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_const_type" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_constant" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_enumerator" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_file_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_friend" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_namelist" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_namelist_item" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_packed_type" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_subprogram" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_template_type_parameter" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_template_value_parameter" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_thrown_type" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_try_block" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_TAG_variant_part" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_variable" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_volatile_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_dwarf_procedure" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_restrict_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_interface_type" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_namespace" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_imported_module" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_unspecified_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_partial_unit" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_TAG_imported_unit" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_condition" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_TAG_shared_type" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_TAG_user" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64)))))))))

data DW_AT Source #

Constructors

DW_AT_sibling

reference

DW_AT_location

block, loclistptr

DW_AT_name

string

DW_AT_ordering

constant

DW_AT_byte_size

block, constant, reference

DW_AT_bit_offset

block, constant, reference

DW_AT_bit_size

block, constant, reference

DW_AT_stmt_list

lineptr

DW_AT_low_pc

address

DW_AT_high_pc

address

DW_AT_language

constant (DW_LANG)

DW_AT_discr

reference

DW_AT_discr_value

constant

DW_AT_visibility

constant

DW_AT_import

reference

DW_AT_string_length

block, loclistptr

DW_AT_common_reference

reference

DW_AT_comp_dir

string

DW_AT_const_value

block, constant, string

DW_AT_containing_type

reference

DW_AT_default_value

reference

DW_AT_inline

constant

DW_AT_is_optional

flag

DW_AT_lower_bound

block, constant, reference

DW_AT_producer

string

DW_AT_prototyped

flag

DW_AT_return_addr

block, loclistptr

DW_AT_start_scope

constant

DW_AT_bit_stride

constant

DW_AT_upper_bound

block, constant, reference

DW_AT_abstract_origin

reference

DW_AT_accessibility

constant

DW_AT_address_class

constant

DW_AT_artificial

flag

DW_AT_base_types

reference

DW_AT_calling_convention

constant

DW_AT_count

block, constant, reference

DW_AT_data_member_location

block, constant, loclistptr

DW_AT_decl_column

constant

DW_AT_decl_file

constant

DW_AT_decl_line

constant

DW_AT_declaration

flag

DW_AT_discr_list

block

DW_AT_encoding

constant

DW_AT_external

flag

DW_AT_frame_base

block, loclistptr

DW_AT_friend

reference

DW_AT_identifier_case

constant

DW_AT_macro_info

macptr

DW_AT_namelist_item

block

DW_AT_priority

reference

DW_AT_segment

block, loclistptr

DW_AT_specification

reference

DW_AT_static_link

block, loclistptr

DW_AT_type

reference

DW_AT_use_location

block, loclistptr

DW_AT_variable_parameter

flag

DW_AT_virtuality

constant

DW_AT_vtable_elem_location

block, loclistptr

DW_AT_allocated

block, constant, reference

DW_AT_associated

block, constant, reference

DW_AT_data_location

block

DW_AT_byte_stride

block, constant, reference

DW_AT_entry_pc

address

DW_AT_use_UTF8

flag

DW_AT_extension

reference

DW_AT_ranges

rangelistptr

DW_AT_trampoline

address, flag, reference, string

DW_AT_call_column

constant

DW_AT_call_file

constant

DW_AT_call_line

constant

DW_AT_description

string

DW_AT_binary_scale

constant

DW_AT_decimal_scale

constant

DW_AT_small

reference

DW_AT_decimal_sign

constant

DW_AT_digit_count

constant

DW_AT_picture_string

string

DW_AT_mutable

flag

DW_AT_threads_scaled

flag

DW_AT_explicit

flag

DW_AT_object_pointer

reference

DW_AT_endianity

constant

DW_AT_elemental

flag

DW_AT_return

flag

DW_AT_recursive

flag

DW_AT_signature 
DW_AT_main_subprogram 
DW_AT_data_bit_offset 
DW_AT_const_expr 
DW_AT_enum_class 
DW_AT_linkage_name 
DW_AT_string_length_bit_size 
DW_AT_string_length_byte_size 
DW_AT_rank 
DW_AT_str_offsets_base 
DW_AT_addr_base 
DW_AT_rnglists_base 
DW_AT_dwo_name 
DW_AT_reference 
DW_AT_rvalue_reference 
DW_AT_macros 
DW_AT_call_all_calls 
DW_AT_call_all_source_calls 
DW_AT_call_all_tail_calls 
DW_AT_call_return_pc 
DW_AT_call_value 
DW_AT_call_origin 
DW_AT_call_parameter 
DW_AT_call_pc 
DW_AT_call_tail_call 
DW_AT_call_target 
DW_AT_call_target_clobbered 
DW_AT_call_data_location 
DW_AT_call_data_value 
DW_AT_noreturn 
DW_AT_alignment 
DW_AT_export_symbols 
DW_AT_deleted 
DW_AT_defaulted 
DW_AT_loclists_base 
DW_AT_user Word64

user extension

Instances

Eq DW_AT Source # 

Methods

(==) :: DW_AT -> DW_AT -> Bool #

(/=) :: DW_AT -> DW_AT -> Bool #

Ord DW_AT Source # 

Methods

compare :: DW_AT -> DW_AT -> Ordering #

(<) :: DW_AT -> DW_AT -> Bool #

(<=) :: DW_AT -> DW_AT -> Bool #

(>) :: DW_AT -> DW_AT -> Bool #

(>=) :: DW_AT -> DW_AT -> Bool #

max :: DW_AT -> DW_AT -> DW_AT #

min :: DW_AT -> DW_AT -> DW_AT #

Read DW_AT Source # 
Show DW_AT Source # 

Methods

showsPrec :: Int -> DW_AT -> ShowS #

show :: DW_AT -> String #

showList :: [DW_AT] -> ShowS #

Generic DW_AT Source # 

Associated Types

type Rep DW_AT :: * -> * #

Methods

from :: DW_AT -> Rep DW_AT x #

to :: Rep DW_AT x -> DW_AT #

TextShow DW_AT Source # 
type Rep DW_AT Source # 
type Rep DW_AT = D1 * (MetaData "DW_AT" "Data.Dwarf.AT" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_sibling" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_location" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_name" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_ordering" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_byte_size" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_bit_offset" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_bit_size" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_stmt_list" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_low_pc" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_high_pc" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_language" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_discr" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_discr_value" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_visibility" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_import" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_string_length" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_common_reference" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_comp_dir" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_const_value" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_containing_type" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_default_value" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_inline" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_is_optional" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_lower_bound" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_producer" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_prototyped" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_return_addr" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_start_scope" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_bit_stride" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_upper_bound" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_abstract_origin" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_accessibility" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_address_class" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_artificial" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_base_types" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_calling_convention" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_count" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_data_member_location" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_decl_column" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_decl_file" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_decl_line" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_declaration" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_discr_list" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_encoding" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_external" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_frame_base" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_friend" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_identifier_case" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_macro_info" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_namelist_item" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_priority" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_segment" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_specification" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_static_link" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_type" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_use_location" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_variable_parameter" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_virtuality" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_vtable_elem_location" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_allocated" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_associated" PrefixI False) (U1 *)))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_data_location" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_byte_stride" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_entry_pc" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_use_UTF8" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_extension" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_ranges" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_trampoline" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_call_column" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_file" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_call_line" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_description" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_binary_scale" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_decimal_scale" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_small" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_decimal_sign" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_digit_count" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_picture_string" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_mutable" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_threads_scaled" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_explicit" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_object_pointer" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_endianity" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_elemental" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_return" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_recursive" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_signature" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_main_subprogram" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_data_bit_offset" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_const_expr" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_enum_class" PrefixI False) (U1 *))))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_linkage_name" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_AT_string_length_bit_size" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_string_length_byte_size" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_rank" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_str_offsets_base" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_addr_base" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_rnglists_base" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_dwo_name" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_reference" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_rvalue_reference" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_macros" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_call_all_calls" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_all_source_calls" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_call_all_tail_calls" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_return_pc" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_call_value" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_origin" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_call_parameter" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_pc" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_call_tail_call" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_target" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_call_target_clobbered" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_call_data_location" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_call_data_value" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_noreturn" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_alignment" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_export_symbols" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_AT_deleted" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_defaulted" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_AT_loclists_base" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_AT_user" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Word64))))))))))

data DW_ATVAL Source #

Instances

Eq DW_ATVAL Source # 
Ord DW_ATVAL Source # 
Show DW_ATVAL Source # 
Generic DW_ATVAL Source # 

Associated Types

type Rep DW_ATVAL :: * -> * #

Methods

from :: DW_ATVAL -> Rep DW_ATVAL x #

to :: Rep DW_ATVAL x -> DW_ATVAL #

TextShow DW_ATVAL Source # 
type Rep DW_ATVAL Source # 

data DW_LNE Source #

Instances

Eq DW_LNE Source # 

Methods

(==) :: DW_LNE -> DW_LNE -> Bool #

(/=) :: DW_LNE -> DW_LNE -> Bool #

Ord DW_LNE Source # 
Read DW_LNE Source # 
Show DW_LNE Source # 
Generic DW_LNE Source # 

Associated Types

type Rep DW_LNE :: * -> * #

Methods

from :: DW_LNE -> Rep DW_LNE x #

to :: Rep DW_LNE x -> DW_LNE #

TextShow DW_LNE Source # 
type Rep DW_LNE Source # 

parseLNE :: Endianess -> TargetSize -> Word64 -> ByteString -> ([Text], [DW_LNE]) Source #

Retrieves the line information for a DIE from a given substring of the .debug_line section. The offset into the .debug_line section is obtained from the DW_AT_stmt_list attribute of a DIE.

data DW_ATE Source #

Instances

Eq DW_ATE Source # 

Methods

(==) :: DW_ATE -> DW_ATE -> Bool #

(/=) :: DW_ATE -> DW_ATE -> Bool #

Ord DW_ATE Source # 
Read DW_ATE Source # 
Show DW_ATE Source # 
Generic DW_ATE Source # 

Associated Types

type Rep DW_ATE :: * -> * #

Methods

from :: DW_ATE -> Rep DW_ATE x #

to :: Rep DW_ATE x -> DW_ATE #

TextShow DW_ATE Source # 
type Rep DW_ATE Source # 
type Rep DW_ATE = D1 * (MetaData "DW_ATE" "Data.Dwarf.ATE" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_ATE_address" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_ATE_boolean" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_complex_float" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_ATE_float" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_signed" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_ATE_signed_char" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_unsigned" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_ATE_unsigned_char" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_imaginary_float" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_ATE_packed_decimal" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_numeric_string" PrefixI False) (U1 *)))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_ATE_edited" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_signed_fixed" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_ATE_unsigned_fixed" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ATE_decimal_float" PrefixI False) (U1 *))))))

data DW_DS Source #

Instances

Eq DW_DS Source # 

Methods

(==) :: DW_DS -> DW_DS -> Bool #

(/=) :: DW_DS -> DW_DS -> Bool #

Ord DW_DS Source # 

Methods

compare :: DW_DS -> DW_DS -> Ordering #

(<) :: DW_DS -> DW_DS -> Bool #

(<=) :: DW_DS -> DW_DS -> Bool #

(>) :: DW_DS -> DW_DS -> Bool #

(>=) :: DW_DS -> DW_DS -> Bool #

max :: DW_DS -> DW_DS -> DW_DS #

min :: DW_DS -> DW_DS -> DW_DS #

Read DW_DS Source # 
Show DW_DS Source # 

Methods

showsPrec :: Int -> DW_DS -> ShowS #

show :: DW_DS -> String #

showList :: [DW_DS] -> ShowS #

Generic DW_DS Source # 

Associated Types

type Rep DW_DS :: * -> * #

Methods

from :: DW_DS -> Rep DW_DS x #

to :: Rep DW_DS x -> DW_DS #

TextShow DW_DS Source # 
type Rep DW_DS Source # 
type Rep DW_DS = D1 * (MetaData "DW_DS" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_DS_unsigned" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_DS_leading_overpunch" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_DS_trailing_overpunch" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_DS_leading_separate" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_DS_trailing_separate" PrefixI False) (U1 *)))))

data DW_END Source #

Instances

Eq DW_END Source # 

Methods

(==) :: DW_END -> DW_END -> Bool #

(/=) :: DW_END -> DW_END -> Bool #

Ord DW_END Source # 
Read DW_END Source # 
Show DW_END Source # 
Generic DW_END Source # 

Associated Types

type Rep DW_END :: * -> * #

Methods

from :: DW_END -> Rep DW_END x #

to :: Rep DW_END x -> DW_END #

TextShow DW_END Source # 
type Rep DW_END Source # 
type Rep DW_END = D1 * (MetaData "DW_END" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_END_default" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_END_big" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_END_little" PrefixI False) (U1 *))))

data DW_ACCESS Source #

Instances

Eq DW_ACCESS Source # 
Ord DW_ACCESS Source # 
Read DW_ACCESS Source # 
Show DW_ACCESS Source # 
Generic DW_ACCESS Source # 

Associated Types

type Rep DW_ACCESS :: * -> * #

TextShow DW_ACCESS Source # 
type Rep DW_ACCESS Source # 
type Rep DW_ACCESS = D1 * (MetaData "DW_ACCESS" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_ACCESS_public" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_ACCESS_protected" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ACCESS_private" PrefixI False) (U1 *))))

data DW_VIS Source #

Instances

Eq DW_VIS Source # 

Methods

(==) :: DW_VIS -> DW_VIS -> Bool #

(/=) :: DW_VIS -> DW_VIS -> Bool #

Ord DW_VIS Source # 
Read DW_VIS Source # 
Show DW_VIS Source # 
Generic DW_VIS Source # 

Associated Types

type Rep DW_VIS :: * -> * #

Methods

from :: DW_VIS -> Rep DW_VIS x #

to :: Rep DW_VIS x -> DW_VIS #

TextShow DW_VIS Source # 
type Rep DW_VIS Source # 
type Rep DW_VIS = D1 * (MetaData "DW_VIS" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_VIS_local" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_VIS_exported" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_VIS_qualified" PrefixI False) (U1 *))))

data DW_VIRTUALITY Source #

Instances

Eq DW_VIRTUALITY Source # 
Ord DW_VIRTUALITY Source # 
Read DW_VIRTUALITY Source # 
Show DW_VIRTUALITY Source # 
Generic DW_VIRTUALITY Source # 

Associated Types

type Rep DW_VIRTUALITY :: * -> * #

TextShow DW_VIRTUALITY Source # 
type Rep DW_VIRTUALITY Source # 
type Rep DW_VIRTUALITY = D1 * (MetaData "DW_VIRTUALITY" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_VIRTUALITY_none" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_VIRTUALITY_virtual" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_VIRTUALITY_return_virtual" PrefixI False) (U1 *))))

data DW_LANG Source #

Instances

Eq DW_LANG Source # 

Methods

(==) :: DW_LANG -> DW_LANG -> Bool #

(/=) :: DW_LANG -> DW_LANG -> Bool #

Ord DW_LANG Source # 
Read DW_LANG Source # 
Show DW_LANG Source # 
Generic DW_LANG Source # 

Associated Types

type Rep DW_LANG :: * -> * #

Methods

from :: DW_LANG -> Rep DW_LANG x #

to :: Rep DW_LANG x -> DW_LANG #

TextShow DW_LANG Source # 
type Rep DW_LANG Source # 
type Rep DW_LANG = D1 * (MetaData "DW_LANG" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_LANG_C89" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_C" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_LANG_Ada83" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_LANG_C_plus_plus" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_Cobol74" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_LANG_Cobol85" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_Fortran77" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_LANG_Fortran90" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_LANG_Pascal83" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_Modula2" PrefixI False) (U1 *)))))) ((:+:) * ((:+:) * ((:+:) * (C1 * (MetaCons "DW_LANG_Java" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_C99" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_LANG_Ada95" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_LANG_Fortran95" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_PLI" PrefixI False) (U1 *))))) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_LANG_ObjC" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_ObjC_plus_plus" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_LANG_UPC" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_LANG_D" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_LANG_User" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * Int))))))))

data DW_ID Source #

Instances

Eq DW_ID Source # 

Methods

(==) :: DW_ID -> DW_ID -> Bool #

(/=) :: DW_ID -> DW_ID -> Bool #

Ord DW_ID Source # 

Methods

compare :: DW_ID -> DW_ID -> Ordering #

(<) :: DW_ID -> DW_ID -> Bool #

(<=) :: DW_ID -> DW_ID -> Bool #

(>) :: DW_ID -> DW_ID -> Bool #

(>=) :: DW_ID -> DW_ID -> Bool #

max :: DW_ID -> DW_ID -> DW_ID #

min :: DW_ID -> DW_ID -> DW_ID #

Read DW_ID Source # 
Show DW_ID Source # 

Methods

showsPrec :: Int -> DW_ID -> ShowS #

show :: DW_ID -> String #

showList :: [DW_ID] -> ShowS #

Generic DW_ID Source # 

Associated Types

type Rep DW_ID :: * -> * #

Methods

from :: DW_ID -> Rep DW_ID x #

to :: Rep DW_ID x -> DW_ID #

TextShow DW_ID Source # 
type Rep DW_ID Source # 
type Rep DW_ID = D1 * (MetaData "DW_ID" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_ID_case_sensitive" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ID_up_case" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_ID_down_case" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ID_case_insensitive" PrefixI False) (U1 *))))

data DW_INL Source #

Instances

Eq DW_INL Source # 

Methods

(==) :: DW_INL -> DW_INL -> Bool #

(/=) :: DW_INL -> DW_INL -> Bool #

Ord DW_INL Source # 
Read DW_INL Source # 
Show DW_INL Source # 
Generic DW_INL Source # 

Associated Types

type Rep DW_INL :: * -> * #

Methods

from :: DW_INL -> Rep DW_INL x #

to :: Rep DW_INL x -> DW_INL #

TextShow DW_INL Source # 
type Rep DW_INL Source # 
type Rep DW_INL = D1 * (MetaData "DW_INL" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * ((:+:) * (C1 * (MetaCons "DW_INL_not_inlined" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_INL_inlined" PrefixI False) (U1 *))) ((:+:) * (C1 * (MetaCons "DW_INL_declared_not_inlined" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_INL_declared_inlined" PrefixI False) (U1 *))))

data DW_CC Source #

Instances

Eq DW_CC Source # 

Methods

(==) :: DW_CC -> DW_CC -> Bool #

(/=) :: DW_CC -> DW_CC -> Bool #

Ord DW_CC Source # 

Methods

compare :: DW_CC -> DW_CC -> Ordering #

(<) :: DW_CC -> DW_CC -> Bool #

(<=) :: DW_CC -> DW_CC -> Bool #

(>) :: DW_CC -> DW_CC -> Bool #

(>=) :: DW_CC -> DW_CC -> Bool #

max :: DW_CC -> DW_CC -> DW_CC #

min :: DW_CC -> DW_CC -> DW_CC #

Read DW_CC Source # 
Show DW_CC Source # 

Methods

showsPrec :: Int -> DW_CC -> ShowS #

show :: DW_CC -> String #

showList :: [DW_CC] -> ShowS #

Generic DW_CC Source # 

Associated Types

type Rep DW_CC :: * -> * #

Methods

from :: DW_CC -> Rep DW_CC x #

to :: Rep DW_CC x -> DW_CC #

TextShow DW_CC Source # 
type Rep DW_CC Source # 
type Rep DW_CC = D1 * (MetaData "DW_CC" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_CC_normal" PrefixI False) (U1 *)) ((:+:) * (C1 * (MetaCons "DW_CC_program" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_CC_nocall" PrefixI False) (U1 *))))

data DW_ORD Source #

Instances

Eq DW_ORD Source # 

Methods

(==) :: DW_ORD -> DW_ORD -> Bool #

(/=) :: DW_ORD -> DW_ORD -> Bool #

Ord DW_ORD Source # 
Read DW_ORD Source # 
Show DW_ORD Source # 
Generic DW_ORD Source # 

Associated Types

type Rep DW_ORD :: * -> * #

Methods

from :: DW_ORD -> Rep DW_ORD x #

to :: Rep DW_ORD x -> DW_ORD #

TextShow DW_ORD Source # 
type Rep DW_ORD Source # 
type Rep DW_ORD = D1 * (MetaData "DW_ORD" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_ORD_row_major" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_ORD_col_major" PrefixI False) (U1 *)))

data DW_DSC Source #

Constructors

DW_DSC_label 
DW_DSC_range 

Instances

Eq DW_DSC Source # 

Methods

(==) :: DW_DSC -> DW_DSC -> Bool #

(/=) :: DW_DSC -> DW_DSC -> Bool #

Ord DW_DSC Source # 
Read DW_DSC Source # 
Show DW_DSC Source # 
Generic DW_DSC Source # 

Associated Types

type Rep DW_DSC :: * -> * #

Methods

from :: DW_DSC -> Rep DW_DSC x #

to :: Rep DW_DSC x -> DW_DSC #

TextShow DW_DSC Source # 
type Rep DW_DSC Source # 
type Rep DW_DSC = D1 * (MetaData "DW_DSC" "Data.Dwarf.Types" "dwarf-el-0.3-GBhEnIqm0TQHLR8xlc6kfE" False) ((:+:) * (C1 * (MetaCons "DW_DSC_label" PrefixI False) (U1 *)) (C1 * (MetaCons "DW_DSC_range" PrefixI False) (U1 *)))