dwarf 0.1 → 0.2
raw patch · 2 files changed
+15/−10 lines, 2 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- dwarf.cabal +2/−2
- src/Data/Dwarf.hs +13/−8
dwarf.cabal view
@@ -1,5 +1,5 @@ Name: dwarf-Version: 0.1+Version: 0.2 License: BSD3 License-file: LICENSE Category: Data@@ -15,6 +15,6 @@ Data-Files: tests/Test.hs library- build-depends: base, bytestring, containers, binary+ build-depends: base >= 2 && < 5, bytestring, containers, binary hs-source-dirs: src exposed-modules: Data.Dwarf
src/Data/Dwarf.hs view
@@ -216,14 +216,19 @@ } getAbbrevList :: Get [(Word64, DW_ABBREV)]-getAbbrevList = getWhile ((/=) 0 . fst) getAbbrev- where getAbbrev = do- abbrev <- getULEB128- tag <- getDW_TAG- children <- liftM (== 1) getWord8- attrForms <- getAttrFormList- return (abbrev, DW_ABBREV abbrev tag children attrForms)- getAttrFormList = liftM (map (\(x,y) -> (dw_at x, dw_form y))) $ getWhile (/= (0,0)) (liftM2 (,) getULEB128 getULEB128)+getAbbrevList =+ do abbrev <- getULEB128+ if abbrev == 0+ then return []+ else do tag <- getDW_TAG+ children <- liftM (== 1) getWord8+ attrForms <- getAttrFormList+ xs <- getAbbrevList+ return ((abbrev, DW_ABBREV abbrev tag children attrForms) : xs)+ where+ getAttrFormList = liftM (map (\(x,y) -> (dw_at x, dw_form y)))+ $ getWhile (/= (0,0)) (liftM2 (,) getULEB128 getULEB128)+ --------------------------------------------------------------------------------------------------------------------------------------------------------------- -- DWARF information entry and .debug_info section parsing.