Commit graph

139 commits

Author SHA1 Message Date
pancake
42edc834d2 * Added maps for debug.bfdbg
- Implement dm* command
* Implement hex:// handler in io.malloc plugin
  - r2 hex://1020304090102030
2011-10-09 19:45:34 +02:00
pancake
a43068bde0 * brainfuck debugger is finally usable
- Added breakpoint and code analysis plugins for bf
  - *mem++ != mem[0]++
  - Full register get/set support
  - Support for step and continue-until-syscall
  - Work in progress breakpoint support
* Added bfvm_reset() hooked to plugin->kill
* Enhacements in r_core and r_debug for better debugger support
  - Added plugin->step_over delegate
2011-10-09 04:15:32 +02:00
pancake
098b1ba127 * Implement input and output filters for rasm2
- Experimental.. not yet ready for release
  - Add rasm2 -F flag to specify input and output filters
   $ rasm2 -F att2intel
* Add new att2intel r_parse plugin
  - make mrproper required
* Initial implementation of RBinClass
  - Only experimental and Java-specific atm
  - Add rabin2 -C to display classes
* Optimize some r_str functions
2011-10-05 02:38:37 +02:00
pancake
4e3358a522 * Fix farm 2011-09-26 02:10:25 +02:00
pancake
76941ca843 * Fix build 2011-09-25 23:05:23 +02:00
pancake
9884ce9db0 * Initial support for Android NDK build (fix build)
- Not yet runnable, but compiles against bionic
2011-09-25 06:57:13 +02:00
pancake
0217c146ef * Fix x86.nz -> push [esp+N]
* Use pw instead of px in debugger stack view
* Disable stackptr by default
* Add OSX-32bit debugger register map
  - Fix support for debugging 32bit bins in 64bit OSes
* Implement r_egg_run() -- just in time execution
* Fix r_egg string construction and argument passing
  - Still needs more work, but at least some hello worlds work
2011-09-21 19:51:09 +02:00
pancake
8933c45e0d * Fix some warnings in r_debug_native for mingw64 2011-09-19 21:08:26 +02:00
pancake
403aa4b36d * Fix ~40 off-by-one strncpy's 2011-09-18 20:41:36 +02:00
earada
1c1a307edc * Support sockets in FreeBSD's 'dd' command 2011-07-25 20:17:19 +02:00
earada
25b590e21f * Implemented 'dd' command for UNIX and FreeBSD 2011-07-25 04:49:54 +02:00
earada
bff20dd916 * Add 8/16/32 bits register definitions in linux/x86_64
* Fix r_syscall_reg, to show syscall params correctly
2011-07-22 13:33:43 +02:00
pancake
6072a57548 * Release 0.8.1 -- butterybiscuitbase
* Fix FreeBSD-amd64 and GNU/kFreeBSD debugger
2011-07-21 01:11:25 +02:00
pancake
a5bafc9257 * Some minor work on mips64 debugger
* r2-bindings configure help updated
2011-07-21 00:32:39 +02:00
pancake
8219630fcb * Update configure help and fix warning in debug_native 2011-07-20 23:55:05 +02:00
pancake
2d0fd88d3d * Fix debugger build in {Open|Net}BSD 2011-07-20 23:25:39 +02:00
pancake
627871eac2 * Fix build for GNU/kFreeBSD 2011-07-20 17:34:00 -04:00
pancake
553ac83d91 * Added __KFBSD__ define and enable new proc/maps for GNU/kFreeBSD
* Do not install rsc2 stuff
2011-07-20 19:26:07 +02:00
earada
af3f41765a * FreeBSD debug maps now uses sysctl api
* Fix some BSD build warnings
2011-07-20 17:58:50 +02:00
earada
f7146bd0ef * Fix (Free|Net)BSD native debug and register definition
* Fix build on FreeBSD (Thanks capi_x)
2011-07-19 20:01:47 +02:00
earada
98131d8768 * Fix FreeBSD build 2011-07-14 16:17:39 +02:00
pancake
6abcfb962b * Add from/to arguments to search_preludes()
* Mostly fix the ming-w32 build
* Avoid using alloca()
2011-07-06 11:48:16 +02:00
pancake
510c08f4e4 * Do not use strcpy/strcat/sprintf
- There are still some 3rd party files that require update
  - Makes OpenBSD linking less verbose
2011-07-06 03:01:21 +02:00
pancake
bed664eb93 * Fix newline in dr= command
- Set 'ss' register as a segment type in OpenBSD/x86_64
2011-05-25 09:56:29 +02:00
pancake
044611c3c7 * Implement OpenBSD/amd64 debug register maps 2011-05-25 07:16:24 +02:00
pancake
4c0b8f437b * Added 'pw' and 'pq' commands to print 32bit and 64bit hex values
* Autocomplete 'dcu' argument
* Analyze [pc+delta] mov and lea opcodes on x86-64
  - Resolves indirect string pointers for ObjectiveC binaries
* Handle UCALL in dso
* Fix x86-64 register profile for OSX
* Implement r_mem_get_num()
* Various fixes in 'pf' command
2011-06-09 01:20:02 +02:00
pancake
233982c965 * Do not show useless error messages when child process is dead 2011-05-20 20:42:25 +02:00
pancake
425fe596f4 * Fix many warning messages
* Initial implementation of r_debug_rap
* Implement 'dcu from to' (ranged stop point)
* Use RList in r_lib (list.h has been deprecated)
2011-05-13 10:22:28 +02:00
pancake
05f0e7e56b * Fix step in OSX debugger
* Avoid C99 stuff in anal_avr
* Escape string passed to "/ " search command
  - Fix return value of r_str_escape
  - Thanks Gerardo for noticing!
* Kill process before reopening in 'oo' command when cfg.debug=true
  - Fix segfault when RIOMach* is NULL after reopening
2011-05-12 20:28:44 +02:00
Eloi Sanfelix
5db2925d1b Fixed reg_profile adding RDebug param. 2011-05-07 18:19:16 +02:00
pancake
3f2677ab7f * Added initial untested support for native gdb debugger mode
- r2 -d gdb://<host>:<port>
  - register maps not yet implemented
  - some basic step/continue should work in cfg.debug=true
  - gdbwrap instance is shared between RIO and RDebug
* RDebug is now arch-sensitive
  - Plugins describe which architectures and register sizes are supported
  - Native debugger is restricted to local CPU
  - Remote debugger (GDB) arch can be specified with -e asm.arch=arm
* Fix some random warnings
* Move R_ASM_ARCH into R_SYS_ARCH
  - Helper functions to translate id to string and string to id
    are now in util/sys.c (r_util)
  - Move all R_SYS_* from r_util to r_types
    - Endianness, OS, CPU and regsize is now 'global'
2011-05-06 00:59:10 +02:00
pancake
64699f476b * Fix debugger on OSX x86-64
- dc  (works now)
  - dcu (continue until address) works
  - db  (breakpoints mostly works (sw only))
  - page permissions are not correctly restored yet
* Add new API to list threads from a process
2011-05-01 04:00:59 +02:00
pancake
f5666844e0 * Fix debugger for BSD systems (OpenBSD)
- contsc callback accepts a new argument
  - abi changed. must recompile libr/debug and libr/core
  - Deprecate dbgplg->archs
2011-04-03 16:38:24 +02:00
pancake
a6a92aa73e * Honor --without-debugger
* Fix linking of r_anal_x86_simple plugin
* Fix some uninitialized vars reported by debian build system
2011-04-07 23:15:58 +02:00
pancake
3b490556f5 * Do not export drx_get and drg_set
* Do not build/use r_th
2011-04-04 14:39:42 +02:00
pancake
075b495a5c * Implement basic register profile for OpenBSD
native debugger backend.
* Fix make symstall in BSD systems
  - PWD var looks like a linuxism
2011-04-02 20:03:00 +02:00
pancake
2810f68d65 * Fix doublefree in reg_profile that was causing random segfaults 2011-04-02 18:55:47 +02:00
pancake
6485b55de4 * Honor console width in visual mode
- Fixes many glitches in disassembler and hex dumps
* Fix help for osx and w32 debugger IO plugins
2011-03-24 22:47:06 +01:00
pancake
a302d73eb4 * Clarify the DEBUGGER_SUPPORTED conditional in io/p_debug 2011-03-24 01:08:38 +01:00
pancake
3ab9e61c22 * Do not show registers if sync fails
* More work on the io refactoring
2011-01-21 09:17:14 +01:00
pancake
92f34b6183 * Add missing define for osx debugger on arm and powerpc 2011-01-04 17:30:10 +01:00
pancake
63ac407fa4 * Add initial support for OSX on 64bits 2010-11-26 17:16:06 +01:00
pancake
64fedcd772 * merge 2010-11-26 14:41:47 +01:00
pancake
2ea135690c * Fix build on OSX-32/64 2010-11-22 18:40:54 +01:00
pancake
0aafe05b45 * Step now accepts pid+tid
* Fix attach in w32 debugger
  - use dpa and get first thread by default
* Mark with asterisks the selected pid/thread (dp/dpt)
* Fix reg_write in w32
2010-11-17 02:31:56 +01:00
pancake
4db5cded34 * Fix w32dist find command
* Display TODO message in r2 -L
* Implement rax2 -s - and rax2 -
* Honor dbg->tid in many places
* Implement basic stuff for dbg->reason
  - Only w32 and *nix atm
  - Not yet displayed or used
  - Added many new reason types in enum
* Fix w32 register map
* Handle attach:// in io_w32dbg plugin
* Implement w32 process and thread list
  - You can now select the thread
  > dp      # list pids
  > dp=1424 # attach to pid
  > dpt     # list threads
  > dpt=580 # select thread
* Added dummy code to list windows
2010-11-17 00:56:48 +01:00
pancake
d2c2c27607 * Added /proc/pid/task support to get thread list in Linux
* Initial work on boolt typedefinition
2010-11-16 18:19:51 +01:00
pancake
10637ec71f * Fix permission parsing in OSX 2010-11-11 17:53:49 +01:00
pancake
fadaa252e5 * Fix build in non-darwin 2010-11-11 12:00:17 +01:00
pancake
edeee07ca2 * Initial implementation of process name listing on darwin/osx
* Fix build (r_debug_pid_new signature change)
2010-11-11 04:12:09 +01:00
pancake
dacab5e4bf * Initial implementation of r_debug_step_soft and _hard
- arm-darwin seems to not support stepping, mips follows
  - Delegate swstep responsability to r_debug api
* Implement set registers in arm-darwin
  - write in memory is not yet working
* Some fixes in memory regions list in arm-darwin
2010-11-11 03:13:44 +01:00
pancake
19c90096ff * Fix read registers in darwin-arm 2010-11-11 02:00:10 +01:00
pancake
cfa24e1879 * Add XML to ldid r2 debugger for iOS
* Fix build of the r2 debugger on darwin-arm
* Implement list of threads and memory regions on darwin-arm
  - just a draft, needs more work
* Add attach:// IO handler to mach plugin
* darwin does not needs -ldl
2010-11-11 01:09:27 +01:00
pancake
89680b63f0 * Fix eflags parsing for x86-32/64 debugger
- added ?f and ?b commands to parse bits and flags
2010-10-26 21:00:54 +02:00
pancake
d0e3a3b0e3 * Fix w32 debugger register profile
* Remove \r in asmserv.c
2010-10-17 23:33:58 +02:00
pancake
5d946a8b21 * Apply some fixes for w32
* More nullptr checks
  - Fix 'drp'
* Fix build
2010-10-14 19:01:14 +02:00
pancake
dac5cf1b08 * Apply patching fixing various bugs on w32
- Some segfaults resolved and bugs identified
  - Thanks @mrgadix :)
2010-10-12 01:18:17 +02:00
pancake
eb6dbb2245 * Initial draft implementation of hardware breakpoints
- use specific ptrace() calls in linux/freebsd to change regs
  - hwbp are not yet working, just basic DRX get/set
  - generic interface to handle hw bps in x86-32/64
  - needs to import DR# handling code from r1
2010-09-24 05:41:54 +02:00
pancake
84dd63b743 * Add 'bf' command to change block size based on flag size
- Added help in 'b?'
* Added support for bit-collection registers
  - eflags is now displayed as a string
  - debug/p/debug_native.c needs a correct x86 flag string
* Fix segfault when listing empty register sets
2010-09-24 04:09:39 +02:00
pancake
46aa9f5f7e * Implement stacked register storage
- Add support for register diffing
  - Colorize modified registers are step/cont
  - Add command 'dro' to show old register values
  - requires make clean
2010-09-23 20:42:35 +02:00
pancake
1356a9bdd1 * Highlight destination offset when cursor on jmp/call in visual
* Show call decompilations under the opcode as a comment
* Rename RRegister as RReg
  - Deprecate r_reg_init and use r_reg_new
  - Rewrite the list.h dependency in r_reg in order to use r_list
  - Fix some memory leaks
* Implement push/pop methods in RReg class
  - add test case using it
  - will be used for register diffing and tracing
2010-09-18 02:51:17 +02:00
pancake
a2ab58dbe6 * Implement 'Ct' command to manage anal_var_types
* Minor todo cleanup
* Use more PFMT64
2010-07-13 10:56:56 +02:00
pancake
236d78295d * Fix debug regs, memory read in w32 debugger
- Fixes some segfaults and null string issues
  - Simplify and clean code (still more work needed)
* TODO: updated
2010-06-28 14:12:34 +02:00
pancake
80fc77a8b4 * Fix w32dist segfault in plugin.dll
* Fix read registers in w32 debugger
  - seek do not seems to work
2010-06-28 02:12:35 +02:00
pancake
39a8c23740 * Major refactoring in r_meta
* Added C! command that calls r_meta_sync()
    - put xref information inside function metaitems
    - reduces cpu usage
  - Fix some memory leaks
  - Add object lifecycle for r_list_item_t
  - Use RList instead of list.h
* Apply patch from edu fixing '+' key in visual (Thanks!)
* Fix segfault in osx printf ("%s", NULL) using r_str_get()
2010-06-28 00:43:07 +02:00
pancake
d47e67cdd1 * Fix build for osx-x86-32 2010-06-27 21:33:32 +02:00
pancake
5182d9a0fe * Added dummy type.c for r_meta
* Fix build on mipsel arch
2010-06-23 03:33:41 +02:00
Nibble
5c35f6e359 * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
pancake
d564c5a0fe * Implement 'dcc' and 'dcr' debugger commands
- Using continue-until-opcode-type call
  - Implemented continue-until-syscall in the same way
* Fix r_str_hash() algorithm to avoid colisions
* Added r_sys_bt()
2010-05-24 12:07:54 +02:00
pancake
34435b1285 * Mental note: %lld/%llx does not exist on windows
- Use the macro PFMT64{xod} in case
2010-04-14 13:02:23 +02:00
pancake
728bd1f817 * Fix w32 build 2010-03-25 10:18:59 +01:00
pancake
31e3aa76c0 * Some fixes to build in windows
- Still not working..but just a PoC
2010-03-24 19:20:46 +01:00
pancake
f00bf9495e * Implement basic thread list and attach support
- Implement 'dt' command
  - Allows to list threads of specified pid or current one
    - Only for linux atm
  - Tricky non-intrusive way to get threads for pid
* libr/th/t/test.c is now helpful for debugging threads
* Threads are not stopped when the debugger breaks
2010-03-11 00:29:36 +01:00
pancake
1341620c73 * Rename cons/filter.c to grep.c
- Some random changes.. with no success
  - Grepping console buffer is not working
* Cleanup the 'ds' and 'dp' commands
  - Implement 'dpa' to attach
  - Allow to list childrens of pid
  - Also list all attachable pids
* Fix segfault by leaking.. needs some cleanup
* Fix r_debug_reg_list (NULL) issue

--HG--
rename : libr/cons/filter.c => libr/cons/grep.c
2010-03-08 00:18:58 +01:00
pancake
13774c2bd5 * More fixes for busybox tr
* Initial blind implementation of w32 debugger
  - r_cons now handles ^C in w32 console
  - not yet tested, just blind code typing
* Implement 'dp' command to list processes (pids)
  - Implemented RDebugPid stuff
  - dp=394 # is used to attach
  - dp 0 # to list all attachable pids
  - dp # list current used pid
* Added not-yet-implemented threads() callback in RDebugHandle
* Fix r_list_free callback handler
* Fix again the 'dr=' command :/
* Cleanup the help of 'd?' and 'dm', 'dp'
* Use -O2 by default ?
2010-03-05 01:49:12 +01:00
pancake/fluendo
d431b3721b * Fix build of debugger on non-x86-32 (oops)
* Fix difference between EOL and EOF (-1, -2) in dietline
  - Fixes prompt issues in r2 shell
* Display 16 0s in 64bit registers
  - Fixes dr= in 64bit debugger
  - Fix double-newline issue in dr=
2010-03-04 12:43:16 +01:00
pancake
fcbcc00d1e * Huge refactoring on r_syscall
- Integrated with core 'as' command. as? for help
  - Display formatted parametters of syscalls
  - Needs to fully implement this everywhere
  - Syscall argument parsing is not yet complete (<4args)
    - r_debug_arg_{set|get}
* Implement continue until syscall on Linux debugger backend
* Lot of syntax cleanup to use the new code convention
  - Clean r_sign, r_search, r_syscall
* Define global R_SYS_ARCH, _OS and _BITS
  - Handle asm.os and asm.arch to hook r_syscall plugins
  - Display 8 or 16 zeros depending on asm.bits
  - Added r_str_filter () to filter nonprintable chars

--HG--
rename : libr/search/stripstr.c => libr/search/strings.c
2010-03-04 01:46:25 +01:00
pancake/fluendo
4941781bd7 * Full implementation of the 64bit register profile for linux
* Simplify debugger plugin arch/bits info
* Display 64bit registers with 'dr'
  - Padding with 16 0's instead of 8
2010-03-03 14:48:17 +01:00
pancake
c50ea5b5a9 * Added support for LUA bindings
- Simple test program for r_bp
* Fix debugger build on arm/mips/powerpc
2010-03-03 00:13:22 +01:00
pancake
a74926c6d0 * Integrate backtrace into the debugging backend
* Add 'dcs' command to continue until syscall
  - Need syscall analysis
* Some tips for future enhacements in r_search
2010-03-02 11:18:49 +01:00
pancake
2ce2f0ca5f * Properly manage Color_RESET from r_core
- Disassembly, flags, prompt are now colorized
  - Depending on type of opcode
* Added 'sr' command to seek to register
  - Simplify visual prompt to get 'pc' register
* More random code cleanup
2010-02-28 23:57:55 +01:00
pancake
9c0636e5ca * Fix return value of bin_meta_elf
* Added 'dsl' command to step until next meta information
  line is reached.
* Display file:line with context 5 with 'CL' command
  - Fix r_file_slurp_line
* Added 'dcu' command to continue until an address
  - bp,dc,bp-
* Added dbg.swstep to configure stepping debugger algorithm
* Add file.type. fixes warning. Defined by rabin2
* Load rabin2 in va format when debug or va modes are enabled
* Ask to kill the child before quitting
* cmd_quit is no longer calling 'exit'.
  - Returns R_CORE_CMD_EXIT (-2)
  - Return value can be captured at core->num.value
* Implement native kill as a debugger callback
* cmd.visual is now cmd.vprompt
* Add r_debug_reg_{get|set}
  - Handle register name aliases
  - Works only with ut64 type
* 'dr:eax' is now 'dr?eax'
* Lot of random syntax cleanups
2010-02-28 22:58:21 +01:00
pancake
020686b86f * Implement r_str_argv()
- Use it from p/debug
  - Now is possible to debug programs with arguments
  - Added test program in util/t/argv
* Fix pd/pD
* Clean and fix the native debugger plugin
* More random code syntax cleanup
* Rename io plugin names without the deprecated 'io_' prefix
* Fix mk/stat-make.pl (missing ;)
2010-02-23 00:26:13 +01:00
pancake/imac
0efc6402ec * Fix disassembler (was depending on unitialized variable)
* Lock r_config instance
  - Add cmd.* eval vars
2010-02-22 04:25:35 +01:00
pancake/imac
edb48945b7 * Added DEFAULT_ARCH for mips and powerpc
* Refactoring in r_anal API for _aop() with addr and length
  - Added ppc code analysis plugin
  - sync in r_core
* cfg.ffio->io.ffio
* Add CMD type in r_lib
* Added SR register type
* More stuff is now working in osx-ppc debugger
* Random code cleanup
2010-02-22 04:02:13 +01:00
pancake/imac
dfd884db74 * Initial steps to make osx-ppc debugger work
- Use 'asm.arch=ppc' in POWERPC by default
  - Added r_io_mach for MACH microkernel debugging
    - Compiled as static plugin by default
  - Added darwin mach/ptrace stuff in debug_native
  - Very ugly code.. needs some refactoring
  - Add powerpc-OSX registers description map
  - Added temporally .h files in debug/p/native
* Display verboser version message with 'r2 -V'
* More linking issues fixed for OSX
* Build gdbwrap debugger plugin
  - Not yet usable
* Added R_SYS_OS R_SYS_ARCH and R_SYS_ENDIAN strings
* Deprecate DEBUGGER variable
2010-02-22 02:42:29 +01:00
pancake/imac
9890c6e8b0 * Fix build in OSX
- env.sh now also uses DYLD_LIBRARY_PATH
  - Fixes in ollyasm/dis to link with no global variables
    - Remove double definition of global _state
    - Same for asm_java
  - Split -shared and -Wl,-R into LDFLAGS_{LIB|LINKPATH}
    - Fixes linkage in osx
  - anal_x86_bea plugin now links correctly against BeaEgine.o
  - dietline is now #include'd from line.c
  - no debugger support yet
  - Do not externalize any variable. Some linkage does not support it
* Remove bininfo dependency .. aims to be merged into bin soon
* Added r_str_case() method to change to lower/upper case a string
2010-02-21 20:21:36 +01:00
pancake
09ad7c5b0f * Do not use 'extern' variables outside modules
- Fixes build in OpenSolaris
* Fix build of some io plugins
2010-02-18 16:36:55 +01:00
pancake
822a33377b * Initial working implementation of the r_diff with delta in C
- Uses the mercurial's C algorithm for delta diffing
  - Remove r_diff_lines .. do we need a line-level diffing tool?
  - Remove -l flag from radiff2
* Rename RIo to RIO
* Added r_reg_arena_new () to simplify arena creation
  - Some sanity fixes in r_reg arena.c
* Add -C in rasm2 to output in C string format
* Initial working implementation of r_debug_execute to inject code
  in child process and restore memory and registers
  - Returns %a0 register value in ut64
* Added 'c' command to r_core - to compare -- just dummy
  - Will use r_diff
  - if rdiff callback returns NULL, we must stop scanning
  - old r_diff_buffers_delta is now named buffers_radiff
  - Added test files in diff/t/{file1,file2}
* Added doc/plugins documentation file
* Fix ${EXT_SO} in bin/p and asm/p (dejavu?)
* Added dummy asm_gas r_asm plugin
* Various random syntax fixes
* Rename 'dbg.ptrace' to 'dbg.native'
* Added r_debug_io_bind () to sync dbg and bp io_bind
* r_debug_map_list is now in a nicer format
* Append ${EXT_EXE} in diff/t
* Add missing util/log.c and vapi/r_line.vapi

--HG--
rename : libr/debug/p/debug_ptrace.c => libr/debug/p/debug_native.c
rename : libr/debug/p/ptrace.mk => libr/debug/p/native.mk
2010-02-05 12:21:37 +01:00
Renamed from libr/debug/p/debug_ptrace.c (Browse further)