Thanks for all your work on this project. I'm having trouble attaching to a process suspended by QEMU with a gdb stub. The specific target is the stack_bof_01
binary in the DVRF project. The DVRF setup process was followed as per the Getting Started blog post; while the pwndbg
setup process was followed as per @ctfhacker's EpicTreasure et_setup.sh
.
$ gdb
Loaded 92 commands. Type pwndbg for a list.
pwndbg> target remote 127.0.0.1:1234
Remote debugging using 127.0.0.1:1234
0x00000000 in ?? ()
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 76, in update
page = pwndbg.memory.Page(start, stop-start, 6 if not is_executable() else 7, 0, '[stack]')
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 122, in is_executable
ehdr = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 60, in entry
entry = pwndbg.auxv.get().AT_ENTRY
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 103, in get
return use_info_auxv() or walk_stack() or AUXV()
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 154, in walk_stack
if not auxv['AT_EXECFN']:
TypeError: 'NoneType' object is not subscriptable
Python Exception <class 'TypeError'> 'NoneType' object is not subscriptable:
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 122, in is_executable
ehdr = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 60, in entry
entry = pwndbg.auxv.get().AT_ENTRY
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 103, in get
return use_info_auxv() or walk_stack() or AUXV()
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 154, in walk_stack
if not auxv['AT_EXECFN']:
TypeError: 'NoneType' object is not subscriptable
Python Exception <class 'TypeError'> 'NoneType' object is not subscriptable:
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 215, in add_main_exe_to_symbols
exe = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 60, in entry
entry = pwndbg.auxv.get().AT_ENTRY
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 103, in get
return use_info_auxv() or walk_stack() or AUXV()
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 154, in walk_stack
if not auxv['AT_EXECFN']:
TypeError: 'NoneType' object is not subscriptable
Python Exception <class 'TypeError'> 'NoneType' object is not subscriptable:
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/vmmap.py", line 39, in get
pages.extend(info_auxv())
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/vmmap.py", line 303, in info_auxv
auxv = pwndbg.auxv.get()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 103, in get
return use_info_auxv() or walk_stack() or AUXV()
File "/home/int0x80/tools/pwndbg/pwndbg/auxv.py", line 154, in walk_stack
if not auxv['AT_EXECFN']:
TypeError: 'NoneType' object is not subscriptable
Python Exception <class 'TypeError'> 'NoneType' object is not subscriptable:
$ gdb
Loaded 92 commands. Type pwndbg for a list.
pwndbg> target remote 127.0.0.1:1234
Remote debugging using 127.0.0.1:1234
0x00000000 in ?? ()
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 76, in update
page = pwndbg.memory.Page(start, stop-start, 6 if not is_executable() else 7, 0, '[stack]')
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 122, in is_executable
ehdr = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 80, in entry
return pwndbg.symbol.get(name)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 158, in get
if address < pwndbg.memory.MMAP_MIN_ADDR or address >= ((1 << 64)-1):
TypeError: unorderable types: str() < int()
Python Exception <class 'TypeError'> unorderable types: str() < int():
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 122, in is_executable
ehdr = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 80, in entry
return pwndbg.symbol.get(name)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 158, in get
if address < pwndbg.memory.MMAP_MIN_ADDR or address >= ((1 << 64)-1):
TypeError: unorderable types: str() < int()
Python Exception <class 'TypeError'> unorderable types: str() < int():
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 215, in add_main_exe_to_symbols
exe = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 80, in entry
return pwndbg.symbol.get(name)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 158, in get
if address < pwndbg.memory.MMAP_MIN_ADDR or address >= ((1 << 64)-1):
TypeError: unorderable types: str() < int()
Python Exception <class 'TypeError'> unorderable types: str() < int():
Traceback (most recent call last):
File "/home/int0x80/tools/pwndbg/pwndbg/events.py", line 107, in caller
func()
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 76, in update
page = pwndbg.memory.Page(start, stop-start, 6 if not is_executable() else 7, 0, '[stack]')
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/stack.py", line 122, in is_executable
ehdr = pwndbg.elf.exe()
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 52, in exe
return load(entry())
File "/home/int0x80/tools/pwndbg/pwndbg/proc.py", line 60, in wrapper
return func(*a, **kw)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/elf.py", line 80, in entry
return pwndbg.symbol.get(name)
File "/home/int0x80/tools/pwndbg/pwndbg/memoize.py", line 44, in __call__
value = self.func(*args, **kwargs)
File "/home/int0x80/tools/pwndbg/pwndbg/symbol.py", line 158, in get
if address < pwndbg.memory.MMAP_MIN_ADDR or address >= ((1 << 64)-1):
TypeError: unorderable types: str() < int()
Python Exception <class 'TypeError'> unorderable types: str() < int():
Not sure whether it's helpful, but here is some diagnostic info about my VM.
$ python3 -V
Python 3.5.1+
$ python2 -V
Python 2.7.11+
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ uname -r
4.4.0-24-generic
Please let me know how I can help further in debugging this issue.