[DynInst_API:] [dyninst/dyninst] ffcea6: avoid infinite loop on bad DWARF CFI record


Date: Tue, 15 Jan 2019 13:11:59 -0800
From: Xiaozhu Meng <mxz297@xxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] ffcea6: avoid infinite loop on bad DWARF CFI record
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: ffcea6a35f7a5575cf5becd4d923f2217db6b48f
      https://github.com/dyninst/dyninst/commit/ffcea6a35f7a5575cf5becd4d923f2217db6b48f
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-06-01 (Fri, 01 Jun 2018)

  Changed paths:
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  avoid infinite loop on bad DWARF CFI record


  Commit: 01414a8c688336ee07a737e2def383c0023521b0
      https://github.com/dyninst/dyninst/commit/01414a8c688336ee07a737e2def383c0023521b0
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-06-02 (Sat, 02 Jun 2018)

  Changed paths:
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  handle empty DebugSectionMap


  Commit: 026590716cdfdfd264728952e3c22ce796cd0fa8
      https://github.com/dyninst/dyninst/commit/026590716cdfdfd264728952e3c22ce796cd0fa8
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-12-07 (Fri, 07 Dec 2018)

  Changed paths:
    A .github_changelog_generator
    M .gitignore
    A .gitmodules
    M CHANGELOG.md
    M CMakeLists.txt
    R ChangeLog
    R INSTALL
    M README.md
    M cmake/Modules/FindLibDwarf.cmake
    A cmake/Modules/FindTBB
    A cmake/Modules/FindTBB.cmake
    A cmake/endian.cmake
    M cmake/options.cmake
    M cmake/packages.cmake
    M cmake/shared.cmake
    M common/CMakeLists.txt
    M common/doc/manual_frontpage.tex
    M common/h/IBSTree-fast.h
    M common/h/IBSTree.h
    M common/h/dyn_regs.h
    M common/h/dyntypes.h
    M common/h/entryIDs.h
    A common/h/mcs-lock.h
    A common/h/pfq-rwlock.h
    A common/h/race-detector-annotations.h
    M common/h/util.h
    A common/src/LockTraits.h
    M common/src/Types.h
    M common/src/arch-aarch64.h
    M common/src/arch-power.C
    M common/src/arch-power.h
    M common/src/arch-x86.C
    M common/src/arch-x86.h
    M common/src/dthread.C
    M common/src/dthread.h
    M common/src/dyn_regs.C
    M common/src/headers.h
    M common/src/linuxHeaders.h
    M common/src/linuxKludges.C
    A common/src/mcs-lock.C
    M common/src/pathName.C
    A common/src/pfq-rwlock.C
    A common/src/race-detector-annotations.C
    M common/src/singleton_object_pool.h
    M common/src/string-regex.C
    M dataflowAPI/doc/dataflowAPI.pdf
    M dataflowAPI/h/ABI.h
    M dataflowAPI/h/Absloc.h
    M dataflowAPI/h/AbslocInterface.h
    M dataflowAPI/h/SymEval.h
    M dataflowAPI/h/liveness.h
    M dataflowAPI/h/slicing.h
    M dataflowAPI/h/stackanalysis.h
    M dataflowAPI/rose/semantics/DispatcherARM64.C
    M dataflowAPI/rose/semantics/DispatcherPowerpc.C
    M dataflowAPI/rose/semantics/Registers.C
    M dataflowAPI/rose/semantics/SymEvalSemantics.h
    M dataflowAPI/rose/x86_64InstructionSemantics.h
    M dataflowAPI/src/ABI.C
    M dataflowAPI/src/Absloc.C
    M dataflowAPI/src/AbslocInterface.C
    M dataflowAPI/src/RegisterMap.C
    M dataflowAPI/src/RegisterMap.h
    M dataflowAPI/src/RoseInsnFactory.C
    M dataflowAPI/src/RoseInsnFactory.h
    M dataflowAPI/src/SymEval.C
    M dataflowAPI/src/SymEvalPolicy.C
    M dataflowAPI/src/SymEvalPolicy.h
    M dataflowAPI/src/debug_dataflow.C
    M dataflowAPI/src/debug_dataflow.h
    M dataflowAPI/src/liveness.C
    M dataflowAPI/src/slicing.C
    M dataflowAPI/src/stackanalysis.C
    M dwarf/h/dwarfFrameParser.h
    M dwarf/src/dwarfFrameParser.C
    M dwarf/src/dwarfHandle.C
    M dwarf/src/dwarfResult.C
    M dynC_API/CMakeLists.txt
    M dyninstAPI/CMakeLists.txt
    M dyninstAPI/doc/dyninstAPI.docx
    M dyninstAPI/doc/dyninstAPI.pdf
    M dyninstAPI/h/BPatch_basicBlock.h
    M dyninstAPI/h/BPatch_parRegion.h
    M dyninstAPI/h/BPatch_point.h
    M dyninstAPI/h/BPatch_snippet.h
    M dyninstAPI/src/BPatch.C
    M dyninstAPI/src/BPatch_basicBlock.C
    M dyninstAPI/src/BPatch_flowGraph.C
    M dyninstAPI/src/BPatch_function.C
    M dyninstAPI/src/BPatch_loopTreeNode.C
    M dyninstAPI/src/BPatch_memoryAccessAdapter.C
    M dyninstAPI/src/BPatch_memoryAccessAdapter.h
    M dyninstAPI/src/BPatch_parRegion.C
    M dyninstAPI/src/BPatch_point.C
    M dyninstAPI/src/BPatch_snippet.C
    M dyninstAPI/src/BPatch_type.C
    M dyninstAPI/src/Parsing-arch.C
    M dyninstAPI/src/Parsing.C
    M dyninstAPI/src/Parsing.h
    M dyninstAPI/src/Relocation/CFG/RelocBlock.C
    M dyninstAPI/src/Relocation/CFG/RelocBlock.h
    M dyninstAPI/src/Relocation/CFG/RelocGraph.C
    M dyninstAPI/src/Relocation/CFG/RelocGraph.h
    M dyninstAPI/src/Relocation/CodeBuffer.C
    M dyninstAPI/src/Relocation/CodeMover.C
    M dyninstAPI/src/Relocation/DynPointMaker.C
    M dyninstAPI/src/Relocation/DynPointMaker.h
    M dyninstAPI/src/Relocation/Springboard.C
    M dyninstAPI/src/Relocation/Transformers/Instrumenter.C
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.C
    M dyninstAPI/src/Relocation/Transformers/Movement-adhoc.h
    M dyninstAPI/src/Relocation/Transformers/Movement-analysis.C
    M dyninstAPI/src/Relocation/Transformers/Movement-analysis.h
    M dyninstAPI/src/Relocation/Widgets/CFPatch.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget-aarch64.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget-ppc.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget-x86.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget.C
    M dyninstAPI/src/Relocation/Widgets/CFWidget.h
    M dyninstAPI/src/Relocation/Widgets/InsnWidget.C
    M dyninstAPI/src/Relocation/Widgets/InsnWidget.h
    M dyninstAPI/src/Relocation/Widgets/InstWidget.C
    M dyninstAPI/src/Relocation/Widgets/PCWidget.C
    M dyninstAPI/src/Relocation/Widgets/PCWidget.h
    M dyninstAPI/src/Relocation/Widgets/RelDataWidget.C
    M dyninstAPI/src/Relocation/Widgets/RelDataWidget.h
    M dyninstAPI/src/Relocation/Widgets/StackModWidget.C
    M dyninstAPI/src/Relocation/Widgets/StackModWidget.h
    M dyninstAPI/src/Relocation/Widgets/Widget.h
    M dyninstAPI/src/StackMod/StackAccess.C
    M dyninstAPI/src/StackMod/StackAccess.h
    M dyninstAPI/src/StackMod/StackModChecker.C
    M dyninstAPI/src/StackMod/StackModChecker.h
    M dyninstAPI/src/addressSpace.C
    M dyninstAPI/src/addressSpace.h
    M dyninstAPI/src/ast.C
    M dyninstAPI/src/ast.h
    M dyninstAPI/src/baseTramp.C
    M dyninstAPI/src/block.C
    M dyninstAPI/src/block.h
    M dyninstAPI/src/codegen-aarch64.C
    M dyninstAPI/src/codegen-aarch64.h
    M dyninstAPI/src/codegen-power.C
    M dyninstAPI/src/codegen-power.h
    M dyninstAPI/src/codegen-x86.C
    M dyninstAPI/src/codegen-x86.h
    M dyninstAPI/src/codegen.C
    M dyninstAPI/src/codegen.h
    M dyninstAPI/src/dynProcess.C
    A dyninstAPI/src/emit-aarch64.C
    M dyninstAPI/src/emit-aarch64.h
    M dyninstAPI/src/emit-power.h
    M dyninstAPI/src/emit-x86.C
    M dyninstAPI/src/emit-x86.h
    M dyninstAPI/src/emitter.h
    M dyninstAPI/src/frameChecker.C
    M dyninstAPI/src/frameChecker.h
    M dyninstAPI/src/function.C
    M dyninstAPI/src/function.h
    M dyninstAPI/src/hybridInstrumentation.C
    M dyninstAPI/src/hybridOverwrites.C
    M dyninstAPI/src/image.C
    M dyninstAPI/src/inst-aarch64.C
    M dyninstAPI/src/inst-aarch64.h
    M dyninstAPI/src/inst-power.C
    M dyninstAPI/src/inst-power.h
    M dyninstAPI/src/inst-x86.C
    M dyninstAPI/src/inst-x86.h
    M dyninstAPI/src/inst.h
    M dyninstAPI/src/instPoint.C
    M dyninstAPI/src/instPoint.h
    M dyninstAPI/src/linux.C
    M dyninstAPI/src/mapped_object.C
    M dyninstAPI/src/opcode.h
    M dyninstAPI/src/parse-aarch64.C
    M dyninstAPI/src/parse-cfg.C
    M dyninstAPI/src/parse-cfg.h
    M dyninstAPI/src/parse-power.C
    M dyninstAPI/src/parse-x86.C
    M dyninstAPI/src/pcEventMuxer.C
    M dyninstAPI/src/pcEventMuxer.h
    M dyninstAPI/src/registerSpace.C
    M dyninstAPI/src/registerSpace.h
    M dyninstAPI/src/stackwalk-aarch64.C
    M dyninstAPI/src/unix.C
    M dyninstAPI_RT/src/RTcommon.c
    M elf/src/Elf_X.C
    M examples/CMakeLists.txt
    A examples/codeCoverage.dir/Makefile.afs
    A examples/codeCoverage.dir/README
    A examples/codeCoverage.dir/README.staticdist
    A examples/codeCoverage.dir/codeCoverage.C
    A examples/codeCoverage.dir/libInst.C
    A examples/codeCoverage.dir/libInst.h
    A examples/codeCoverage.dir/libtestcc.c
    A examples/codeCoverage.dir/libtestcc.h
    A examples/codeCoverage.dir/package.bash
    A examples/codeCoverage.dir/testcc.c
    R examples/codeCoverage/Makefile.afs
    R examples/codeCoverage/README
    R examples/codeCoverage/README.staticdist
    R examples/codeCoverage/codeCoverage.C
    R examples/codeCoverage/libInst.C
    R examples/codeCoverage/libInst.h
    R examples/codeCoverage/libtestcc.c
    R examples/codeCoverage/libtestcc.h
    R examples/codeCoverage/package.bash
    R examples/codeCoverage/testcc.c
    A examples/unstrip.dir/Makefile.afs
    A examples/unstrip.dir/README
    A examples/unstrip.dir/callback.C
    A examples/unstrip.dir/callback.h
    A examples/unstrip.dir/database.C
    A examples/unstrip.dir/database.h
    A examples/unstrip.dir/ddb.db
    A examples/unstrip.dir/fingerprint.C
    A examples/unstrip.dir/fingerprint.h
    A examples/unstrip.dir/foo.c
    A examples/unstrip.dir/foo.sh
    A examples/unstrip.dir/generate-learn-binary.bash
    A examples/unstrip.dir/package.bash
    A examples/unstrip.dir/params.db
    A examples/unstrip.dir/predicates.h
    A examples/unstrip.dir/semanticDescriptor.C
    A examples/unstrip.dir/semanticDescriptor.h
    A examples/unstrip.dir/test.c
    A examples/unstrip.dir/types.C
    A examples/unstrip.dir/types.h
    A examples/unstrip.dir/unistd.db
    A examples/unstrip.dir/unstrip.C
    A examples/unstrip.dir/util.C
    A examples/unstrip.dir/util.h
    R examples/unstrip/Makefile.afs
    R examples/unstrip/README
    R examples/unstrip/callback.C
    R examples/unstrip/callback.h
    R examples/unstrip/database.C
    R examples/unstrip/database.h
    R examples/unstrip/ddb.db
    R examples/unstrip/fingerprint.C
    R examples/unstrip/fingerprint.h
    R examples/unstrip/foo.c
    R examples/unstrip/foo.sh
    R examples/unstrip/generate-learn-binary.bash
    R examples/unstrip/package.bash
    R examples/unstrip/params.db
    R examples/unstrip/predicates.h
    R examples/unstrip/semanticDescriptor.C
    R examples/unstrip/semanticDescriptor.h
    R examples/unstrip/test.c
    R examples/unstrip/types.C
    R examples/unstrip/types.h
    R examples/unstrip/unistd.db
    R examples/unstrip/unstrip.C
    R examples/unstrip/util.C
    R examples/unstrip/util.h
    M instructionAPI/CMakeLists.txt
    M instructionAPI/doc/instructionAPI.pdf
    M instructionAPI/h/ArchSpecificFormatters.h
    M instructionAPI/h/BinaryFunction.h
    M instructionAPI/h/Dereference.h
    M instructionAPI/h/Expression.h
    M instructionAPI/h/Immediate.h
    M instructionAPI/h/Instruction.h
    M instructionAPI/h/InstructionAST.h
    M instructionAPI/h/InstructionCategories.h
    M instructionAPI/h/InstructionDecoder.h
    M instructionAPI/h/Operand.h
    R instructionAPI/h/Operation.h
    A instructionAPI/h/Operation_impl.h
    M instructionAPI/h/Register.h
    M instructionAPI/h/Result.h
    M instructionAPI/src/ArchSpecificFormatters.C
    M instructionAPI/src/Expression.C
    M instructionAPI/src/Immediate.C
    M instructionAPI/src/Instruction.C
    M instructionAPI/src/InstructionAST.C
    M instructionAPI/src/InstructionDecoder-aarch64.C
    M instructionAPI/src/InstructionDecoder-aarch64.h
    M instructionAPI/src/InstructionDecoder-power.C
    M instructionAPI/src/InstructionDecoder-power.h
    M instructionAPI/src/InstructionDecoder-x86.C
    M instructionAPI/src/InstructionDecoder-x86.h
    M instructionAPI/src/InstructionDecoder.C
    M instructionAPI/src/InstructionDecoderImpl.C
    M instructionAPI/src/InstructionDecoderImpl.h
    M instructionAPI/src/Operand.C
    M instructionAPI/src/Operation.C
    M instructionAPI/src/Register.C
    M instructionAPI/src/power_opcode_tables.C
    M parseAPI/CMakeLists.txt
    M parseAPI/doc/1-Intro.tex
    M parseAPI/doc/example.cc
    M parseAPI/doc/parseAPI.pdf
    M parseAPI/h/CFG.h
    M parseAPI/h/CFGFactory.h
    M parseAPI/h/CodeObject.h
    M parseAPI/h/CodeSource.h
    M parseAPI/h/InstructionAdapter.h
    M parseAPI/h/Location.h
    A parseAPI/h/LockFreeQueue.h
    M parseAPI/h/ParseCallback.h
    M parseAPI/src/Block.C
    M parseAPI/src/BoundFactCalculator.C
    M parseAPI/src/BoundFactData.C
    M parseAPI/src/BoundFactData.h
    M parseAPI/src/CFGFactory.C
    M parseAPI/src/CFGModifier.C
    M parseAPI/src/CodeObject.C
    M parseAPI/src/CodeSource.C
    M parseAPI/src/Function.C
    M parseAPI/src/IA_IAPI.C
    M parseAPI/src/IA_IAPI.h
    M parseAPI/src/IA_aarch64.C
    M parseAPI/src/IA_aarch64.h
    M parseAPI/src/IA_power.C
    M parseAPI/src/IA_power.h
    M parseAPI/src/IA_x86.C
    M parseAPI/src/IA_x86.h
    M parseAPI/src/IndirectASTVisitor.C
    M parseAPI/src/IndirectASTVisitor.h
    M parseAPI/src/IndirectAnalyzer.C
    M parseAPI/src/IndirectAnalyzer.h
    M parseAPI/src/JumpTableFormatPred.C
    M parseAPI/src/JumpTableFormatPred.h
    M parseAPI/src/JumpTableIndexPred.C
    M parseAPI/src/JumpTableIndexPred.h
    M parseAPI/src/ParseCallback.C
    M parseAPI/src/ParseData.C
    M parseAPI/src/ParseData.h
    M parseAPI/src/Parser.C
    M parseAPI/src/Parser.h
    M parseAPI/src/ParserDetails.C
    M parseAPI/src/ParserDetails.h
    M parseAPI/src/ProbabilisticParser.C
    M parseAPI/src/SymbolicExpression.C
    M parseAPI/src/SymbolicExpression.h
    M parseAPI/src/SymtabCodeSource.C
    M parseAPI/src/ThunkData.C
    M parseAPI/src/debug_parse.C
    M parseThat/CMakeLists.txt
    M patchAPI/CMakeLists.txt
    M patchAPI/h/PatchCFG.h
    M patchAPI/h/Point.h
    M patchAPI/src/ParseCallback.C
    M patchAPI/src/PatchBlock.C
    M patchAPI/src/PatchFunction.C
    M patchAPI/src/PatchMgr.C
    M patchAPI/src/PatchModifier.C
    M patchAPI/src/Point.C
    M patchAPI/src/PointMaker.C
    M proccontrol/doc/proccontrol.docx
    M proccontrol/doc/proccontrol.pdf
    M proccontrol/src/linux.C
    M proccontrol/src/process.C
    M stackwalk/CMakeLists.txt
    M stackwalk/h/framestepper.h
    M stackwalk/src/callchecker-IAPI.C
    M stackwalk/src/dbginfo-stepper.C
    M stackwalk/src/framestepper.C
    M stackwalk/src/linux-aarch64-swk.C
    M stackwalk/src/linux-x86-swk.C
    M stackwalk/src/linuxbsd-x86-swk.C
    M stackwalk/src/sw.h
    M symtabAPI/doc/symtabAPI.pdf
    M symtabAPI/h/Collections.h
    M symtabAPI/h/LineInformation.h
    M symtabAPI/h/Module.h
    M symtabAPI/h/StringTable.h
    M symtabAPI/h/Symtab.h
    M symtabAPI/h/Type.h
    M symtabAPI/src/Collections.C
    M symtabAPI/src/Function.C
    M symtabAPI/src/LineInformation.C
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/Object-elf.h
    M symtabAPI/src/Object-nt.h
    M symtabAPI/src/Symtab-edit.C
    M symtabAPI/src/Symtab-lookup.C
    M symtabAPI/src/Symtab.C
    M symtabAPI/src/Type-mem.h
    M symtabAPI/src/Type.C
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/emitElf.h
    M symtabAPI/src/emitElfStatic.C
    M symtabAPI/src/parseDwarf.C
    M symtabAPI/src/parseStab.C
    M symtabAPI/src/relocationEntry-elf-aarch64.C
    M symtabAPI/src/relocationEntry-elf-x86.C

  Log Message:
  -----------
  Merge branch 'master' of https://github.com/dyninst/dyninst


  Commit: f3da09ea3cb519554b1b483ae01259b9892c229b
      https://github.com/dyninst/dyninst/commit/f3da09ea3cb519554b1b483ae01259b9892c229b
  Author: John Mellor-Crummey <johnmc@xxxxxxxx>
  Date:   2018-12-07 (Fri, 07 Dec 2018)

  Changed paths:
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  always compute line info for CUBINs using parseLineInfoForObject


  Commit: 93e2591bed9192d758e5a6250c17680fa3ac1b50
      https://github.com/dyninst/dyninst/commit/93e2591bed9192d758e5a6250c17680fa3ac1b50
  Author: Xiaozhu Meng <mxz297@xxxxxxxxx>
  Date:   2019-01-15 (Tue, 15 Jan 2019)

  Changed paths:
    M symtabAPI/src/Module.C
    M symtabAPI/src/Object-elf.C

  Log Message:
  -----------
  Merge pull request #516 from jmellorcrummey/fix-linemap

Fix linemaps for CUBINs


Compare: https://github.com/dyninst/dyninst/compare/98b2f4ced5c8...93e2591bed91
      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.
[← Prev in Thread] Current Thread [Next in Thread→]