Skip to content

Dev#136

Merged
io-no merged 402 commits intomainfrom
dev
Oct 14, 2024
Merged

Dev#136
io-no merged 402 commits intomainfrom
dev

Conversation

@io-no
Copy link
Copy Markdown
Member

@io-no io-no commented Oct 3, 2024

Changelog soon

io-no and others added 30 commits September 22, 2024 00:03
Correctly handle an edge case of `terminate` when attached to a process
Add proper support for mmx and st regs on amd64
If stdin is not connected to a terminal it won't
They are always available, even though they are not defined in signals
They are always available, even though they are not defined in signals
I think that RT signals aren't enabled on the CI worker
@io-no
Copy link
Copy Markdown
Member Author

io-no commented Oct 13, 2024

Features:

  • Interactive Mode: Introducing PipeManager.interactive mode!
  • Enhanced Performance: PipeManager has been updated for significantly improved performance. New options are available; refer to the updated documentation for more details.
  • Legacy FP Support: Added support for legacy x86 floating-point registers (mmx/st).
  • Enhanced AVX Register Support: Improved support for AVX x86 registers.
  • Full i386 Support (Alpha): Full support for i386 over amd64 introduced as an alpha feature.
  • Native i386 Support (Alpha): Introduced native i386 support as an alpha feature.
  • Event Notification System: Alerts users when the process stops during specific operations.
  • Automatic Process Termination: The debuggee is now automatically terminated when the libdebug script ends. This behavior can be modified using the kill_on_exit option in the debugger.
  • String Representations: Added string representation for Debugger, ThreadContext, and Registers objects.
  • Enhanced Pretty Printing: New pretty prints introduced and improvements made to existing ones.
    • d.print_maps is deprecated and will be removed in future releases. Use d.pprint_maps instead. Moreover, it has a more colorful output.
    • t.pprint_regs is now available.
    • Improved d.pprint_syscalls, which now includes the thread originating the syscall and more.
    • t.pprint_backtrace is now available.
  • Search in Memory: New memory search functionality: t.memory.find().
  • Filtering: New filters for memory maps (d.maps.filter()) and register content (t.regs.filter()).
  • Symbols access: Access and filter executable symbols, including libraries, with d.symbols and d.symbols.filter().
  • Syscall and Signal Handling: Enhanced handling for all syscalls and catching all signals with "*", "all", or "ALL".
  • Empty Callback: Now you can create empty callbacks by setting callback=True.
  • Enhanced GDB support
    • d.gdb can now run non-blocking with blocking=False. Refer to the documentation for more details.
    • d.gdb now automatically detects the terminal in most cases.
    • Option to omit the breakpoint migration when using d.gdb.
  • More Registers: Access to segment registers and CPU flags.
  • Pipe redirect: You can now choose whether to redirect pipes when running the process using d.run.

Documentation:

  • Complete Rewrite: The documentation has been completely revised and rewritten.

Bug Fixing

  • Debugging Symbols: Improved logging and error handling for debuginfod symbols download system.
  • Watchpoint Handling: hit_on for watchpoints now works correctly.
  • Stack Unwinding: Enhanced error handling that avoids certain exceptions.
  • Memory and Attach Handling: Resolved race conditions with fast_memory=True and d.attach.
  • Threaded Process Attach: Improved attach functionality for multi-threaded processes.
  • Internal Debugger Conflicts: Resolved dictionary conflicts in some edge cases.
  • Signal Management: Improved RT signals management.
  • Terminal Compatibility: Enhanced support of d.gdb on various terminals.
  • Path resolution: Improved path resolution for the argv path passed to the debugger.
  • Detach and Kill: Now you cannot kill a process after detaching from it.
  • Many other fixes.

Others

  • IDE Improvements: Typing fixes to enhance usability and IDE suggestions.
  • AARCH64 Support: Upgraded from alpha to beta.
  • ASLR: Enabled by default.
  • Symbol Level: Default sym_level set to 5.
  • Custom Exceptions: Introduced custom exception for attach operations without ptrace_scope.
  • Public Debugger Access: Now accessible from ThreadContext (d.debugger).
  • Base Alias: MemoryMap.start now has an alias called base

Test:

  • New Test Suite: More consistent across different architectures.
  • Python 3.13 Support: Added in CI.

@MrIndeciso @Frank01001

Frank01001
Frank01001 previously approved these changes Oct 13, 2024
Copy link
Copy Markdown
Member

@Frank01001 Frank01001 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I aint reading that. But I'm happy 4 u or sorry that happened.

@io-no
Copy link
Copy Markdown
Member Author

io-no commented Oct 13, 2024

I aint reading that. But I'm happy 4 u or sorry that happened.

9e278527d47abdf88fcc71d134b02ea5

Frank01001
Frank01001 previously approved these changes Oct 13, 2024
@io-no io-no merged commit b39441c into main Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants