Sunny,
Well, some partial success, but not really. Running parse on itself
works without throwing exceptions. But on the hpcstruct-bin binary,
it still throws an assert.
I think everything for hpcstruct-bin should be compiled locally with
gcc. On x86, we use XED libraries from Intel, but that doesn't apply
here.
And someday, we need a discussion of alternatives to throwing asserts
from inside libraries. This makes me do things like wrap every call
to a parseapi function with siglongjmp() to protect my main program.
--Mark
Anyway, this is how it fails on hpcstruct-bin.
$ ./parse hpcstruct-bin
Instruction processing threw exception for instruction: stp X27, X28,
[SP], a << 3
Instruction processing threw exception for instruction: stp X25, X26,
[SP], 8 << 3
Instruction processing threw exception for instruction: stp X23, X24,
[SP], 6 << 3
Instruction processing threw exception for instruction: stp X21, X22,
[SP], 4 << 3
Instruction processing threw exception for instruction: stp X19, X20,
[SP], 2 << 3
parse:
/home/krentel/newarch/externals/symtabAPI/dyninst/common/src/dyn_regs.C:836:
void Dyninst::MachRegister::getROSERegister(int&, int&, int&):
Assertion `!"unknown register type!"' failed.
Aborted (core dumped)
#0 0x000003ff77c62d38 in raise () from /lib64/libc.so.6
#1 0x000003ff77c64aa8 in abort () from /lib64/libc.so.6
#2 0x000003ff77c5c4c4 in __assert_fail_base () from /lib64/libc.so.6
#3 0x000003ff77c5c57c in __assert_fail () from /lib64/libc.so.6
#4 0x000003ff780dbb10 in Dyninst::MachRegister::getROSERegister
(this=this@entry=0x3ffefd911c8, c=@0x3ffefd911d4: 0, n=@0x3ffefd911d8:
-270984048,
p=@0x3ffefd911dc: 0) at
/home/krentel/newarch/externals/symtabAPI/dyninst/common/src/dyn_regs.C:836
#5 0x000003ff7856d928 in
Dyninst::DataflowAPI::ExpressionConversionVisitor::archSpecificRegisterProc
(this=this@entry=0x3ffefd91268, regast=0x1b3997f0,
addr=<optimized out>, size=<optimized out>) at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/ExpressionConversionVisitor.C:296
#6 0x000003ff7856db00 in
Dyninst::DataflowAPI::ExpressionConversionVisitor::visit
(this=0x3ffefd91268, regast=<optimized out>)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/ExpressionConversionVisitor.C:153
#7 0x000003ff78350a10 in Dyninst::InstructionAPI::RegisterAST::apply
(this=<optimized out>, v=<optimized out>)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/instructionAPI/src/Register.C:182
#8 0x000003ff786074b8 in
Dyninst::DataflowAPI::RoseInsnFactory::convertOperand
(this=this@entry=0x3ffefd91450, expression=..., addr=addr@entry=5663248,
insnSize=4) at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/RoseInsnFactory.C:105
#9 0x000003ff78607c68 in Dyninst::DataflowAPI::RoseInsnFactory::convert
(this=0x3ffefd91450, this@entry=0x3ffefd914b0, insn=...,
addr=addr@entry=5663248)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/RoseInsnFactory.C:96
#10 0x000003ff786e11dc in Dyninst::DataflowAPI::SymEval::expandInsn
(insn=..., addr=5663248, res=std::map with 1 elements = {...})
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/SymEval.C:494
#11 0x000003ff786e22b0 in Dyninst::DataflowAPI::SymEval::expand
(res=std::map with 1 elements = {...}, failedInsns=std::set with 0
elements,
applyVisitors=applyVisitors@entry=false) at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/SymEval.C:94
#12 0x000003ff786e2560 in Dyninst::DataflowAPI::SymEval::expand
(assignment=..., applyVisitors=applyVisitors@entry=false)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/SymEval.C:75
#13 0x000003ff7852bcc8 in JumpTablePred::ExpandAssignment
(this=this@entry=0x3ffefd94b58, assign=...)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/JumpTablePred.C:401
#14 0x000003ff7852f800 in JumpTablePred::addNodeCallback
(this=0x3ffefd94b58, ap=..., visitedEdges=std::set with 9 elements = {...})
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/JumpTablePred.C:192
#15 0x000003ff78617fa8 in Dyninst::Slicer::updateAndLink
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, cand=...,
cache=..., p=...) at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:398
#16 0x000003ff78618da8 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:231
#17 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#18 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#19 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#20 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#21 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#22 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#23 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
#24 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#25 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#26 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#27 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#28 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#29 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#30 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#31 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#32 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#33 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#34 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#35 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#36 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#37 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#38 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#39 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#40 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
#41 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#42 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#43 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#44 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#45 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#46 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#47 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#48 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#49 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#50 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#51 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#52 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=false, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#53 0x000003ff78619434 in Dyninst::Slicer::sliceInternalAux
(this=this@entry=0x3ffefd94d50, g=...,
dir=dir@entry=Dyninst::Slicer::backward, p=..., cand=...,
skip=skip@entry=true, visited=std::map with 37 elements = {...},
singleCache=std::map with 38 elements = {...}, cache=std::map with 0
elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:307
#54 0x000003ff78619ba8 in Dyninst::Slicer::sliceInternal
(this=this@entry=0x3ffefd94d50, dir=dir@entry=Dyninst::Slicer::backward,
p=...)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:195
#55 0x000003ff78619fe4 in Dyninst::Slicer::backwardSlice
(this=this@entry=0x3ffefd94d50, predicates=...)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/dataflowAPI/src/slicing.C:1394
#56 0x000003ff7854bb1c in
IndirectControlFlowAnalyzer::NewJumpTableAnalysis
(this=this@entry=0x3ffefd95030, outEdges=std::vector of length 0,
capacity 0)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/IndirectAnalyzer.C:45
#57 0x000003ff785250cc in
Dyninst::InsnAdapter::IA_aarch64Details::parseJumpTable (this=<optimized
out>, currFunc=<optimized out>, currBlk=0x1b360ed0,
outEdges=std::vector of length 0, capacity 0) at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/IA_aarch64Details.C:172
#58 0x000003ff7850b6f0 in Dyninst::InsnAdapter::IA_IAPI::parseJumpTable
(this=this@entry=0x1b360f50, currFunc=currFunc@entry=0x1af82550,
currBlk=0x1b21fc90,
currBlk@entry=0x1b360ed0, outEdges=std::vector of length
-274735447302, capacity -274735447302 = {...})
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/IA_IAPI.C:958
#59 0x000003ff78511018 in Dyninst::InsnAdapter::IA_IAPI::getNewEdges
(this=0x1b360f50, outEdges=std::vector of length 0, capacity 0,
context=0x1af82550,
Python Exception <type 'exceptions.ValueError'> Cannot find type const
std::set<unsigned long, std::less<unsigned long>,
std::allocator<unsigned long> >::_Rep_type:
currBlk=0x1b360ed0, num_insns=56, plt_entries=<optimized out>,
knownTargets=std::set with 11 elements)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/IA_IAPI.C:681
#60 0x000003ff784de40c in Dyninst::ParseAPI::Parser::ProcessCFInsn
(this=this@entry=0x19c864f0, frame=..., cur=cur@entry=0x1b360ed0, ah=...)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/ParserDetails.C:425
#61 0x000003ff784e4d00 in Dyninst::ParseAPI::Parser::parse_frame
(this=this@entry=0x19c864f0, frame=..., recursive=recursive@entry=true)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/Parser.C:1122
#62 0x000003ff784e74ec in Dyninst::ParseAPI::Parser::parse_frames
(this=this@entry=0x19c864f0, work=std::vector of length 3491, capacity
4096 = {...},
recursive=recursive@entry=true) at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/Parser.C:409
#63 0x000003ff784e8c38 in Dyninst::ParseAPI::Parser::parse_vanilla
(this=this@entry=0x19c864f0)
at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/Parser.C:282
#64 0x000003ff784e8e00 in Dyninst::ParseAPI::Parser::parse
(this=0x19c864f0) at
/home/krentel/newarch/externals/symtabAPI/dyninst/parseAPI/src/Parser.C:160
#65 0x0000000000401e48 in main (argc=<optimized out>, argv=<optimized
out>) at parse.cpp:149
On 09/12/16 19:33, Sunny Shah wrote:
Hi Mark,
This message couldn't have come at a better time.
The "Instruction processing threw exception for instruction" messages
are thrown when Dyninst cannot find the semantics for said instruction.
The master branch does not contain semantics for load/store
instructions; in fact, I just added them last Friday and are available
on the arm64/feature/semantics branch.
The abort you're seeing with the hpcstruct-bin is because we added new
binary functions in Dyninst over the last year, but ROSE (which we use
for semantics) doesn't support them. I made and committed the necessary
changes a few hours ago. Again, they are on the arm64/feature/semantics
branch.
Using that branch should make these errors go away. However, I should
add that ARM semantics are a work-in-progress: I'm continuing to work on
adding support for more instructions and fixing whatever bugs I find. Do
let me know about other asserts and errors you see!
Thanks,
Sunny
On 9/12/2016 5:59 PM, Mark W. Krentel wrote:
I think instructionAPI (or maybe parseAPI) is broken in master branch
on ARM (aarch64). I'm seeing two problems. The small one is a spew
of error messages, "Instruction processing threw exception for
instruction: ldr X17, [X16 + 3c0]". The bigger one is raising an
abort.
|