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

Reply via email to