10110111 / edb-debugger

edb is a cross platform x86/x86-64 debugger.
GNU General Public License v2.0
6 stars 0 forks source link

PlatformProcess::read_pages() should call DebuggerCore::read_pages() #22

Closed 10110111 closed 8 years ago

10110111 commented 8 years ago

PlatformProcess::read_pages() should call DebuggerCore::read_pages() by definition. And PlatformProcess::read_bytes() should also use DebuggerCore::read_pages(), otherwise it's very slow on 32-bit EDB with 64-bit debuggee on reading e.g. stack contents.

eteran commented 8 years ago

Agreed, I actually have something in mind which will revamp how reads work. Basically I want to have all read operations done in terms of DebuggerCore::read_pages as you suggest. But to make it even more efficient, I want to have a caching system (which is expired whenever the debugger leaves a stopped state). That way, we can do lots of small reads without hurting performance :-).

10110111 commented 8 years ago

BTW, I've currently done read_bytes in terms of reading /proc/$PID/mem, and now the running process can have its memory read (which addresses your issue 191).

10110111 commented 8 years ago

In fact, this particular issue has been addressed in my bitness branch (commit ddfd07c727045b96f0ff52a27abbe9176d05e1f8 and its neighborhood).