google / pyringe

Debugger capable of attaching to and injecting code into python processes.
Other
1.63k stars 78 forks source link

attach failed #24

Open hotbaby opened 7 years ago

hotbaby commented 7 years ago
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/repl.py", line 157, in Attach
    self.inferior.Reinit(pid)
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 480, in Reinit
    self.__init__(pid, auto_symfile_loading)
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 452, in __init__
    self.StartGdb()
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 499, in StartGdb
    self._gdb.Attach(self.position)
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 197, in <lambda>
    return lambda *args, **kwargs: self._Execute(name, *args, **kwargs)
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 339, in _Execute
    result_string = self._Recv(timeout)
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/inferior.py", line 424, in _Recv
    raise ProxyError(exc_text)
ProxyError: 
-----------------------------------
Error occurred within GdbService:
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 652, in <module>
    serv.EvalLoop()
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 274, in EvalLoop
    while self._AcceptRPC():
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 293, in _AcceptRPC
    rpc_result = getattr(self, request['func'])(*request['args'])
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 428, in Attach
    GdbCache.Refresh()
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 66, in Refresh
    interp_head_name = GdbCache.FuzzySymbolLookup('interp_head')
  File "/home/yy/code/hzf/boss-be-v2/env/local/lib/python2.7/site-packages/pyringe/payload/gdb_service.py", line 101, in FuzzySymbolLookup
    return '\'%s\'' % mangled_name.group(1)
AttributeError: 'NoneType' object has no attribute 'group'
==> pid:[3779] #threads:[0] current thread:[None]
>>>  
TehMillhouse commented 7 years ago

This kind of behavior has been seen before when symbol information is (for some reason) only partially available. IIRC, this occurred in Fedora, but I might be mistaken. d9a3b3b should fix it, however that hasn't been published to the PyPI.

Using the current git HEAD of this repository instead of the PyPI package should make the errors got away.