Skip to content

Cutter 1.10 - "A Debugger steps into a bar"

Compare
Choose a tag to compare
@ITAYC0HEN ITAYC0HEN released this 20 Dec 19:20
c0d4fda

This release comes with the long promised native and remote debugging support. Celebrate the end of the year with Cutter 1.10!

Currently supported features

  • Multiplatform native debugger
  • Remote debugging using GDB
  • Remote kernel debugging using WinDbg
  • Attaching to a running process
  • STDIO interaction with debugee
  • Support for multi-threading
  • Stack and Registers inspection
  • Backtrace
  • Memory map

And much more!

Planned and in-progress debug features

  • Reverse debugging
  • SIMD register display
  • Hardware breakpoints support
  • Conditional breakpoints
  • Signal handling customization
  • Performance improvements
  • Integration with rarun2 library preload
  • Standalone DLL debugging
  • WinDbg Ethernet protocol support

Note that any kind of contribution is welcome. We are eager to hear your feedback for more debug improvement ideas!

Known issues

  • Linux breakpoints only work if you are selecting the thread that will hit the breakpoint
  • Function stack variable comments aren't relocated in GDB remote debug
  • Cutter's interface changes size when debug is started/stopped
  • macOS debugging doesn't work without signing the binary

Please give it a try and let us know what you think :)

Full Changelog

Additions

  • Add -F command line option to specify Format (#1946)
  • Define string of length N in address (#1915)
  • Add startRemote to the debug dropdown menu
  • Add a signal for widget rebasing and switch to oodf for remote debug rebasing (#1913)
  • Add debug dialogs (#1903)
  • Add processes widget for kernel and child debugging (#1894)
  • Stdin redirection for locally debugged processes (#1892)
  • gdbserver and windbg remote debugging support (#1874)
  • ThreadsWidget and r2 debugging fixes (#1846)
  • Pressing Enter in disassembly will jump to the desired location (#1910)
  • Add menus to seek backward and forward buttons. (#1889)
  • Add Adikso's Midnight Theme (#1895)
  • Highlight in red changes in the Hexdump Widget (#1880)
  • Add instruction highlight in graph view (#1879)
  • Add highlight to hexdump (#1862)
  • Redirect stdout/stderr to Console Widget (#1821)
  • Add shortcuts to breakpoints widget (#1834)
  • Add common zoom action for widgets using font from configuration (#1813)
  • Implement parsing selected bytes as Yara (#1818)
  • Add search color option feature + sort color options by name (#1803)
  • Add information from aai to Dashboard, fixes #1571 (#1792)
  • Add addressable item context menu to stack widget (#1779)
  • Add more shortcuts to DisassemblyContextMenu (#1782)
  • Graph export without graphviz (#1773)

Fixes and Changes

  • Moved the debug exit dialog to DebugActions
  • Update radare2 to 4.1.1 - reantull
  • Use events to notify the user about the debugee's death
  • Fix remote debug crash after the first session
  • Prevent the update of some widgets while debug task is in progress to avoid freezing
  • Switch to registerChanged from seekChanged where possible
  • When using add breakpoint button add it not toggle. (#1953)
  • Workaround for new debug widgets being opened in normal mode. (#1950)
  • Show debug widget menu under Debug. (#1949)
  • Highlight Breakpoints and PC in decompiler (#1948)
  • Fix Segfault on Quit after Debug/Emulation (#1943)
  • Fix automatic function naming (#1942)
  • Increase input field size when resizing NativeDebugDialog. (#1930)
  • Fix formatBytecount's sizes (#1928)
  • Separate the search widget's boundaries for debug and non-debug modes
  • Replace changeDebugView and changeDefinedView with toggleDebugView
  • Removed disabling of startEmul to show the restart debug option when emulating
  • Remove metadata from inkscape icons
  • Remove auto scroll from registerRefs widget
  • Support multi-theme icons on debug
  • Improve debug icons
  • Show icon in menus
  • Use uppercase for program counter name
  • Make labels selectable by mouse
  • Disable auto scroll in stack widget
  • Rename backtrace func name column
  • Auto-select text in EditInstructionDialog
  • Improve RegistersWidget grid UI
  • Improve stack widget ui
  • Remove column of active thread in ThreadsWidget
  • Remove vertical numbers in debug widgets
  • Change label to suspend process
  • Detach Cutter interface from debug command execution (#1857)
  • Look for sym.main instead of main 'cause latter is not rebasing in PIEs
  • Fix PIE debug
  • Hides the ContinueUntilMain button if there is no flag called main
  • Fixes issues with reset layout in debug mode
  • Fix emulation not working after a debugging session
  • Improve seek backward and outside of function in Decompiler widget (#1916)
  • Fix 1756: Disable seek when selecting text on Decompiler Widget (#1917)
  • Coverity Fixes (#1912, #1907)
  • Replace hardcoded system plugin directories with list from Qt. (#1814)
  • Added a temporary fix to allow backslashes names (#1899)
  • Improve compatibility with cmake 3.10. (#1882)
  • Disable asm.lines and asm.bytes in XRefs Preview (Fix #1339) (#1893)
  • Fix Strings Widget for changes in radare2 (#1885)
  • Change focus order in SetToDataDialog. (#1873)
  • Hide and resize hexdump sidebar with heuristics (#1798)
  • Refactored qhelpers AbstractItemView item select (#1850)
  • Fix decompiler widget not updating xrefs to decompiled function (#1851)
  • Automatically select the first line of xref (#1849)
  • Deduplicate seek forward and backward action. (#1844)
  • Show bytes has been renamed and moved (#1841)
  • Replacing all QRegExp with QRegularExpression (#1820)
  • Fix graph zoom reset and use same font size as everything else. (#1835)
  • Fix Native Plugin Loading for CMake (#1829)
  • Fix refresh after renaming imported function (#1828)
  • Improve compatibility with cmake 3.5 and QT 5.5-5.11. (#1805)
  • Allow local development using Docker (#1806)
  • Fix #1802 (newly created graph docks have no title) (#1815)
  • Restore breakpoint listing. (#1811)
  • Use AddressableItemContextMenu in Registers widget. (#1794)
  • Improve about dialog (#1799)
  • Fix crash when using graph shortcut (#1801)
  • Fixed zoom shortcuts to something more generic (#1781)
  • Fix "ta" commands after radare2 command refactoring #1774 (#1775)
  • Fix Segfault on Theme Editor Preview Click
  • Fixed TypeWidget font to monospace. (#1755)