| 1 |
Changelog |
|---|
| 2 |
========= |
|---|
| 3 |
|
|---|
| 4 |
python-ptrace 0.4.0 (2008-08-19) |
|---|
| 5 |
-------------------------------- |
|---|
| 6 |
|
|---|
| 7 |
Visible changes: |
|---|
| 8 |
|
|---|
| 9 |
* Rename the project to "python-ptrace" (old name was "Ptrace) |
|---|
| 10 |
* strace.py: create --ignore-regex option |
|---|
| 11 |
* PtraceSignal: support SIGBUS, display the related registers and |
|---|
| 12 |
the instruction |
|---|
| 13 |
* Support execve() syscall tracing |
|---|
| 14 |
|
|---|
| 15 |
Developer changes: |
|---|
| 16 |
|
|---|
| 17 |
* New API is incompatible with 0.3.2 |
|---|
| 18 |
* PtraceProcess.waitProcessEvent() accepts optional blocking=False argument |
|---|
| 19 |
* PtraceProcess.getreg()/setreg() are able to read/write i386 and x86-64 |
|---|
| 20 |
"sub-registers" like al or bx |
|---|
| 21 |
* Remove iterProc() function, replaced by openProc() with explicit |
|---|
| 22 |
call to .close() to make sure that files are closed |
|---|
| 23 |
* Create searchProcessesByName() |
|---|
| 24 |
* Replace CPU_PPC constant by CPU_POWERPC and create CPU_PPC32 and CPU_PPC64 |
|---|
| 25 |
* Create MemoryMapping object, used by readMappings() and findStack() methods |
|---|
| 26 |
of PtraceProcess |
|---|
| 27 |
* Always define all PtraceProcess methods but raise an error if the function |
|---|
| 28 |
is not implemented |
|---|
| 29 |
|
|---|
| 30 |
Version 0.3.2 (2008-07-25) |
|---|
| 31 |
-------------------------- |
|---|
| 32 |
|
|---|
| 33 |
* Rewrite ip_int2str() using inet_ntoa() to avoid IPy dependency |
|---|
| 34 |
* Add kill() and unlink() syscall prototypes |
|---|
| 35 |
* Fix sign conversion error in ptrace() to fix error detection |
|---|
| 36 |
* Catch OSError in ptrace.disasm (unable to find libdistorm64.so) |
|---|
| 37 |
* PtraceDebugger.addProcess(): detach the process on exception |
|---|
| 38 |
* Breakpoint: don't store bytes if the process is not running anymore |
|---|
| 39 |
* writeError() now re-raise KeyboardInterrupt |
|---|
| 40 |
* PtraceProcess: don't detach or terminate process if it is was running |
|---|
| 41 |
* PtraceProcess: never send SIGTRAP signal to a process! |
|---|
| 42 |
|
|---|
| 43 |
Version 0.3.1 (2008-07-08) |
|---|
| 44 |
-------------------------- |
|---|
| 45 |
|
|---|
| 46 |
Minor update: |
|---|
| 47 |
|
|---|
| 48 |
* ptrace.ctypes_errno: use ctypes_support.get_errno() when it's available |
|---|
| 49 |
* Create RUNNING_PYPY constant is ptrace.os_tools |
|---|
| 50 |
* Remove ptrace dependency from ptrace.pydistorm to be able to use |
|---|
| 51 |
it outside ptrace |
|---|
| 52 |
|
|---|
| 53 |
Version 0.3 (2008-03-26) |
|---|
| 54 |
------------------------ |
|---|
| 55 |
|
|---|
| 56 |
* Support OpenBSD i386 |
|---|
| 57 |
* Use ptrace_io() on FreeBSD for faster readBytes()/writeBytes() methods |
|---|
| 58 |
* Use ptrace_peekuser() to read registers on OS without ptrace_getregs() |
|---|
| 59 |
(eg. Linux 2.4 on PPC) |
|---|
| 60 |
* Breakpoint works on PPC CPU (use TRAP instruction) |
|---|
| 61 |
* Delete process and raise ProcessExit on abnormal process death |
|---|
| 62 |
(eg. detected by waitpid(pid)) |
|---|
| 63 |
* Write new Python binding to distorm64 library |
|---|
| 64 |
* gdb.py: create "backtrace" command |
|---|
| 65 |
* gdb.py: support operators in expressions (eg. $eip+4) |
|---|
| 66 |
|
|---|
| 67 |
|
|---|
| 68 |
Version 0.2 (2008-02-14) |
|---|
| 69 |
------------------------ |
|---|
| 70 |
|
|---|
| 71 |
* Able to trace multiple processes |
|---|
| 72 |
* Many new gdb.py commands: hexdump, signal, print, etc. |
|---|
| 73 |
* Support i386 (Linux, FreeBSD), x86_64 (Linux) and PPC (Linux) |
|---|
| 74 |
* Guess reason why a signal is sent: invalid memory read, stack |
|---|
| 75 |
overflow, division by zero, etc. |
|---|
| 76 |
* Create simple C program to test strace.py and gdb.py |
|---|
| 77 |
* Move files to three main modules: ptrace.binding, ptrace.syscall |
|---|
| 78 |
and ptrace.debugger |
|---|
| 79 |
|
|---|
| 80 |
Version 0.1 (2008-02-08) |
|---|
| 81 |
------------------------ |
|---|
| 82 |
|
|---|
| 83 |
* First public release |
|---|
| 84 |
|
|---|