Also when I checked the f->region()->geArch() parameter passed to the decoder it showed me Dyninst::Arch_x86_64.
On Tue, Jan 8, 2019 at 9:00 PM Buddhika Chamith Kahawitage Don < budkahaw@xxxxxx> wrote: I retired with Dyninst 10.0.0. Now I get the following
RegAudit: /home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/InstructionDecoderImpl.C:77: static Dyninst::InstructionAPI::InstructionDecoderImpl::Ptr Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl(Dyninst::Architecture): Assertion `0' failed.
Thread 1 "RegAudit" received signal SIGABRT, Aborted. __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 51ÂÂÂ ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt #0Â __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51 #1Â 0x00007ffff639b801 in __GI_abort () at abort.c:79 #2Â 0x00007ffff638b39a in __assert_fail_base (fmt=0x7ffff65127d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", ÂÂÂ assertion=assertion@entry=0x7ffff73f2a48 "0", ÂÂÂ file=file@entry=0x7ffff73fbc00 "/home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/InstructionDecoderImpl.C", line=line@entry=77, ÂÂÂ function=function@entry=0x7ffff73fc180 <Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl(Dyninst::Architecture)::__PRETTY_FUNCTION__> "static Dyninst::InstructionAPI::InstructionDecoderImpl::Ptr Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl(Dyninst::Architecture)") at assert.c:92 #3Â 0x00007ffff638b412 in __GI___assert_fail (assertion=assertion@entry=0x7ffff73f2a48 "0", ÂÂÂ file=file@entry=0x7ffff73fbc00 "/home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/InstructionDecoderImpl.C", line=line@entry=77, ÂÂÂ function=function@entry=0x7ffff73fc180 <Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl(Dyninst::Architecture)::__PRETTY_FUNCTION__> "static Dyninst::InstructionAPI::InstructionDecoderImpl::Ptr Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl(Dyninst::Architecture)") at assert.c:101 #4Â 0x00007ffff73f0d56 in Dyninst::InstructionAPI::InstructionDecoderImpl::makeDecoderImpl ( ÂÂÂ a=a@entry=Dyninst::Arch_none) ÂÂÂ at /home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/InstructionDecoderImpl.C:77 #5Â 0x00007ffff7277644 in Dyninst::InstructionAPI::InstructionDecoder::InstructionDecoder (this=0x7fffffffd210, ÂÂÂ buffer=<optimized out>, size=<optimized out>, arch=Dyninst::Arch_none) ÂÂÂ at /home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/InstructionDecoder.C:49 #6Â 0x00007ffff72533a8 in Dyninst::InstructionAPI::Instruction::decodeOperands (this=0x7fffffffd540) ÂÂÂ at /home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/Instruction.C:120 #7Â 0x00007ffff72554d5 in Dyninst::InstructionAPI::Instruction::getReadSet (this=0x7fffffffd540, ÂÂÂ regsRead=std::set with 0 elements) at /home/buddhika/Builds/dyninst-10.0.0/instructionAPI/src/Instruction.C:288 #8Â 0x0000555555559025 in main (argc=2, argv=0x7fffffffd968) at RegAudit.cpp:178
Looks like it didn't pick up the Architecture looking at InstructionDecoderImpl.C? I create the InstructionDecoder as below.
ÂÂÂ Function* f; // Get function from CodeObject->funcs()
ÂÂÂ InstructionDecoder decoder(f->isrc()->getPtrToInstruction(f->addr()), ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ InstructionDecoder::maxInstructionLength, ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ f->region()->getArch());
Any ideas?
Cheers
On Tue, Jan 8, 2019 at 5:34 PM Buddhika Chamith Kahawitage Don < budkahaw@xxxxxx> wrote: Sure. I will update and report back.
Thanks Buddhika
Hi,
Can you upgrade to use Dyninst 10.0.0? Dyninst 10 contains many bug fixes and new features over 9.3.2, but you will need to use libdw-0.173. If the same problem shows up, please let me know and I will take a look at it.
Thanks,
--Xiaozhu
On Sat, Jan 5, 2019 at 9:56 PM Buddhika Chamith Kahawitage Don < budkahaw@xxxxxx> wrote: Hi,
I am trying to use
SymtabAPI to analyze the register usage of a binary. My implementation
fails on some binaries (built with -g) with below stack trace.
I have installed libdw-0.170 on my system using Ubuntu package manager. Does this look familiar?
#0Â Dyninst::SymtabAPI::DwarfWalker::findDieName (dbg=dbg@entry=0x5555557be3c0, die=0x5555559b3840, name="") ÂÂÂ at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/dwarfWalker.C:1448 #1Â 0x00007ffff7226767 in Dyninst::SymtabAPI::Object::dwarf_parse_aranges (this=this@entry=0x5555557b6440, ÂÂÂ dbg=dbg@entry=0x5555557be3c0, dies_seen=std::set with 0 elements) ÂÂÂ at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Object-elf.C:2461 #2Â 0x00007ffff7226b75 in Dyninst::SymtabAPI::Object::fix_global_symbol_modules_static_dwarf ( ÂÂÂ this=this@entry=0x5555557b6440) at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Object-elf.C:2490 #3Â 0x00007ffff7229ab4 in Dyninst::SymtabAPI::Object::load_object (this=this@entry=0x5555557b6440, ÂÂÂ alloc_syms=alloc_syms@entry=true) at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Object-elf.C:1602 #4Â 0x00007ffff722aa1e in Dyninst::SymtabAPI::Object::Object (this=0x5555557b6440, mf_=0x5555557b0460, ÂÂÂ err_func=<optimized out>, alloc_syms=<optimized out>, st=<optimized out>) ÂÂÂ at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Object-elf.C:2967 #5Â 0x00007ffff71e63d3 in Dyninst::SymtabAPI::Symtab::Symtab (this=0x5555557b5230, filename="", ÂÂÂ defensive_bin=<optimized out>, err=@0x7fffffffd61f: false) ÂÂÂ at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Symtab.C:1261 #6Â 0x00007ffff71e68d1 in Dyninst::SymtabAPI::Symtab::openFile (obj=@0x7fffffffd6a0: 0x0, filename="CG", ÂÂÂ def_binary=Dyninst::SymtabAPI::Symtab::NotDefensive) ÂÂÂ at /home/buddhika/Builds/dyninst-9.3.2/symtabAPI/src/Symtab.C:2077
Regards Buddhika
_______________________________________________
Dyninst-api mailing list
Dyninst-api@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/dyninst-api
|