If you want to send your fabdbg.py we can try it out and see if we see anything wrong.
> On Sep 19, 2016, at 9:12 AM, Greg Clayton <gclay...@apple.com> wrote: > > Try printing the type of the value you are passing in the line: > > vtableEndAddr = lldb.process.ReadPointerFromMemory(vtableAddr-8, error) > > print type(vtableAddr) > print type(vtableAddr-8) > > It seems like it thinks vtableAddr doesn't fit into a lldb::addr_t which is a > uint64_t > > > >> On Sep 16, 2016, at 7:39 PM, Lei Kong via lldb-dev <lldb-dev@lists.llvm.org> >> wrote: >> >> I tried printing error.descryption, but it didn't work, because when the >> error happens, it seems ReadPointerFromMemory never returned to my code. >> >> >> read from address 0000000001223f68 >> Traceback (most recent call last): >> File "<input>", line 1, in <module> >> File "/home/leikong/repo/WindowsFabric/build.prod/test/fabdbg.py", line >> 289, in findall >> findtypes(pattern,ignorePureVirtualType) >> File "/home/leikong/repo/WindowsFabric/build.prod/test/fabdbg.py", line >> 246, in findtypes >> if ignorePureVirtualType and has_pure_virtual(vtableAddr, >> pureVirtualFuncs) : >> File "/home/leikong/repo/WindowsFabric/build.prod/test/fabdbg.py", line >> 190, in has_pure_virtual >> vtableEndAddr = lldb.process.ReadPointerFromMemory(vtableAddr-8, error) >> File "/home/leikong/bin/lldb/lib/python2.7/site-packages/lldb/__init__.py", >> line 9418, in ReadPointerFromMemory >> return _lldb.SBProcess_ReadPointerFromMemory(self, addr, error) >> OverflowError: in method 'SBProcess_ReadPointerFromMemory', argument 2 of >> type 'lldb::addr_t' >> >> >>> Subject: Re: [lldb-dev] OverflowError: in method >>> 'SBProcess_ReadPointerFromMemory', argument 2 of type 'lldb::addr_t' >>> From: jing...@apple.com >>> Date: Fri, 16 Sep 2016 17:12:24 -0700 >>> CC: lldb-dev@lists.llvm.org >>> To: leik...@msn.com >>> >>> You passed an error into ReadPointerFromMemory. In the cases where you >>> aren't getting what you expect, what does that error say? >>> >>> Jim >>> >>>> On Sep 16, 2016, at 5:06 PM, Lei Kong via lldb-dev >>>> <lldb-dev@lists.llvm.org> wrote: >>>> >>>> I ran into the error in the subject when running a python script with >>>> "script myfile.myscript()". >>>> >>>> The value addr_t parameter used is 0x0000000001223f68, the following works >>>> fine: >>>> >>>> (lldb) scr >>>> Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D. >>>>>>> e = lldb.SBError() >>>>>>> ptr = lldb.process.ReadPointerFromMemory(0x0000000001223f68, e) >>>>>>> print ptr >>>> 0 >>>>>>> >>>> >>>> Any suggestion how to further investigate? Thanks. >>>> >>>> myfile.myscript() calls the following function in a loop (iterate through >>>> all vtable symbols), which contains the call ReadPointerFromMemory. >>>> >>>> def dump_vtbl(vtableAddr) : >>>> error = lldb.SBError() >>>> vtableEndAddr = lldb.process.ReadPointerFromMemory(vtableAddr+8, error) >>>> if not error.success : >>>> return False >>>> print "vtable: [%0.16x, %0.16x)" % (vtableAddr, vtableEndAddr) >>>> for addr in range(vtableAddr, vtableEndAddr, 8) : >>>> print "read from address %.016x" % addr >>>> try: >>>> funcAddr = lldb.process.ReadPointerFromMemory(addr, error) >>>> except: >>>> sys.exc_clear() >>>> continue >>>> if not error.success : >>>> continue >>>> >>>> _______________________________________________ >>>> lldb-dev mailing list >>>> lldb-dev@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev >>> >> _______________________________________________ >> lldb-dev mailing list >> lldb-dev@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev