Commit graph

85 commits

Author SHA1 Message Date
Anton Kochkov
4a037c2f2a
Convert dk commands to the rzshell (#3078) 2022-10-11 18:02:52 +08:00
Khairul Azhar Kasmiran
4cdad14ccd
Remove dk 9 from debug tests (#3070)
* Add `dk 9` test
2022-10-08 16:44:22 +08:00
Khairul Azhar Kasmiran
137d376f54
Kill debugged process on exit if non-interactive and dbg.exitkills is true (#3068) 2022-10-07 22:46:36 +08:00
Florian Märkl
2e8ec8ac75
Always detach when quitting from -q or -Q (#3058)
Previously, on macOS we were detaching properly when the user quit rizin
after an interactive `rz -d <file>` session, but not on
`rz -d -Qc <cmd> <file>`, which would leave behind a zombie process.
Now, the process is detached and keeps running, which also matches the
behavior on Linux. Hence the `dk 9` additions in the tests, to not
spoil the output with whatever the processes print.
2022-10-01 17:38:01 +02:00
Anton Kochkov
4bf6b67212
Convert dd commands to rzshell (#3049)
* Convert `dd` command to rzshell
* Remove unimplemented `dH` command
* Remove `ddt` command
* Move `date` command to the "shell" category
2022-09-29 08:24:50 +08:00
Giovanni
c89b12a046
Removed plenty of eprintfs in rz_core (#2950) 2022-08-29 00:32:17 +08:00
Florian Märkl
1d88af3c56
Refactor and replace .dm* calls with pure C (#2847)
This fixes the following minor issues:
* Errors like "Cannot create flag (...) because there is already (...)
  flag" during debug startup
* Unnecessary seeks during .dm* causing io reads and e.g. delays of up
  to 5s on x86 macOS during debug startup
* Flags are now created in the "maps" flagspace, rather than globally,
  making them easier to clean up later
* Flags now have the same size as the maps and not +1
2022-07-28 13:40:44 +02:00
Peiwei Hu
8e6f7e1a78
Add hints for fe/f commands (#2785) 2022-07-07 22:27:26 +08:00
GustavoLCR
23a3468834 Fix register flag address not updating after dc 2022-06-17 21:15:59 +08:00
Riccardo Schirone
5e43ea2f97
RzCore: read core block before printing (#2694)
* RzCore: read core block before printing
* Add debug test for pd with dbH
2022-06-14 15:27:27 +00:00
billow
e767046197
Convert dL to rzshell (becomes dl) and expose API
- Convert `dL` to rzshell
- `dL` becomes `dl`
- Expose `rz_core_debug_backtraces()` API
- Expose `rz_core_analysis_hint_set_offset()` API
2022-05-13 20:17:56 +08:00
billow
457105f640
Convert do to rzshell (#2573)
* `doo` -> `ood`
* `doof` -> `oodf`
* expose `rz_core_debug_process_close()` API
2022-05-07 09:07:02 +08:00
Florian Märkl
b40dde5fbf
Move DEBUGGER checks from C to meson.build (#2577)
Entire files are now avoided to be built by checking in meson rather
than using #if DEBUGGER. This now also includes bsd_debug.c, which
is currently slightly broken on OpenBSD/sparc64 and caused compile
errors even with -Ddebugger=false.
2022-05-02 11:22:35 +02:00
Riccardo Schirone
272be57bcd
RzCore: default dbg.verbose to false (#2506)
Some messages printed by Rizin might be hard to decode at times. Just
stick to the basic information by default.
2022-04-06 01:28:15 +02:00
Rot127
10bedc2b00
Add Hexagon register profile (#2490)
Although the reg profile was not really used yet it will be relevant for the RZIL uplifting.
Introduces:
* Double/quadruple registers now properly overlap with their counterparts.
* Registers have correct types assigned (vec, ctr, sys etc. Before, all regs were of type gbr)
* Consistent register names (asm name style: c3:2, r31 etc, alias style: lc1:sa1, lr etc.)
* Adds _tmp registers in the profile. Later used by uplifted instructions (think of .new registers).
2022-04-03 18:26:17 +02:00
billow
3632192818
Convert dt commands to rzshell (#2418) 2022-03-22 09:12:12 +08:00
Florian Märkl
bedcf6f354
Add indicator to oml for which map is visible at seek (#2409)
There may be multiple maps containing the current seek. This indicates
only the highest-priority one, which is also the one whose data is
visible at the seek address.
2022-03-14 08:59:40 +01:00
Khairul Azhar Kasmiran
7ede9dfd39
Update libc6 and dbg.maps.count.after.map test (#2403)
* Update `dbg.maps.count.after.map` test
* `ci.yml`: Install latest version of libc6
* `tcc.yml`: Update libc
2022-03-12 19:11:22 +08:00
GustavoLCR
ccfde0de98 DMP: Add/fix tests 2022-03-03 21:52:41 +08:00
Anton Kochkov
2f638cad1e Convert f commands to rzshell
* Changed behavior of `f` to only add flag if there is none
* Changed behavior of `f+` to add flag in any case
* Moved listing subcommands from `f` to `fl`
* Moved listing subcommands from `f.` to `f.l`
* Added subcommand `f.l*` to list all local flags in all functions
* Listing flags at the current offset became `fl.`
* Moved `f=` to `fl=`
* Old `fl` (flag length) now became `fL`
* Removed original `fe` commands
* Old `f?` (check if flag exists) now became `fe`
* Removed `fV` commands
* Removed `fn` commands in favor of `fl` and `asm.flags.real=true`
* Removed `fS` commands (`fSo` and `fSn`)
* `fo` became `fortune` and moved from "flags" to "shell" category
* Removed oldshell handlers of the `z` commands
2022-02-03 21:46:42 +08:00
Florian Märkl
40c35ac5b1
Fix dcu printing regular output as ERROR (#2257) 2022-01-27 09:58:01 +01:00
Riccardo Schirone
afc635f6d1
Convert om commands to rzshell (#2192)
* removal of `omo` command
* use of `oml`, `oml.` and `oml=` to list maps instead of `om`
* removal of RIZIN output from `oml`
* removal of `omn.` and just assume `omn` uses core->offset
2022-01-11 17:29:20 +01:00
Florian Märkl
9b60670013 Prepare various RzReg accesses for splitting
Common accesses for both debug and analysis must not use
debug->reg or analysis->reg, but go through rz_core_reg_default().
2021-12-21 13:14:08 +01:00
Florian Märkl
a7c076c56c Add basic tests for de (ESIL watchpoints) 2021-12-21 13:14:08 +01:00
Paul I
5914b79982
Convert afl/afi commands to rzhell (#2040)
* Convert afl/afi commands to rzhell
* Reuse code
* Update tests
2021-12-14 17:49:16 +08:00
Giovanni
bda1e9cfca
Disable GPL code and Add RISC-V support via Capstone 5 (#2087)
* -Duse_gpl=false is supported by rizin and added riscv_cs for capstone v5
* Added GPL build workflow in CI
2021-12-11 13:30:01 +01:00
Florian Märkl
3c2e4bf63a
Rewrite ar and dr with newshell (#2006)
* Show group-level details of commands

Details can be defined at either a group command or its subcommand of
the same name. If define on group-level it will also be shown in the
group help without needing ??.

* Fix > $ redirection for errored command and leak

* Rewrite ar and dr commands with newshell

Breaking changes:
ar* => arf, ar- => arf-, ar. => ar*
ar, => art, ar? => arq
ar0 => ara0, arb => arab, ars => araS
arC => arpC
arn => arR
art => arT
arf => arF
Removed: drm, aer
2021-12-06 19:02:43 +01:00
Dhruv Maroo
3d6b7f0235
Cleanup dbl command handler; Remove rz_bp_list (#2012) 2021-11-25 22:33:24 +05:30
Riccardo Schirone
6819d04bed Fix all db/archos tests 2021-10-27 09:31:50 +02:00
Dhruv Maroo
afd1bab3c0
Port db commands to newshell (#1777)
* Add `db` commands in `cmd_debug.yaml`

* Use bool instead of int as return value

* Port `db` commands to newshell

* Fix integration tests. Use `db- <addr>`, instead of `db-<addr>`

* Fix `dbW` handler and update `rz_w32_add_winmsg_breakpoint`

* Remove checks for `argc` in `cmd_debug.c` (from review)

* Fix failing Windows tests

* Change control flow in conditional expressions

* Use `RzCmdStateOutput` in handler for `dbt` to print backtrace in various formats

* Use forward slash (/) instead of pipe (|) for command descriptions

* Use output modes for printing breakpoints in `db` handler

* Remove extra newline while printing breakpoints in JSON format

* Change description for `dbc` command

* Update descriptions and handlers; Remove <addr> argument wherever necessary

* Use `RZ_CMD_ARG_TYPE_CHOICES` for perm in `dbw`

* Add details for `dbC` and `dbw`

* Add quiet printing mode for breakpoints

* Remove unnecessary <addr> argument for `db` commands

 * Also add a quiet output mode for `dbl` and `dbt`

* Return if no breakpoint found in function `add_breakpoint`

* Update tests for new `db` commands

* Update `db` command descriptions

 * Remove `dbi.` redundant command
 * Add details for iterating through the list of breakpoints

* Extract `rz_debug_bp_add_noreturn_func` into `debug.c` as RZ_API

* Fix `dbil` handler and `dbg_bps` test

* Shift the noreturn function breakpoint to `cdebug.c`

* Format according to clang-format

* Fix failing integration tests

 * TODO: Find why `db- @@c:dblq` is failing, and fix the bug

* Update `db` commands

* Use `db- @@c:dblq` instead of `db-*`

 * This will also work as a test for command edits (see https://github.com/rizinorg/rizin/pull/1806)
2021-10-08 21:40:51 +05:30
Khairul Azhar Kasmiran
db0fdffc4e
archos/: Support <os>-any test categories (#1795) 2021-10-05 17:33:42 +08:00
Khairul Azhar Kasmiran
300714c38c
rz_utf8_decode(): Declare overlong encodings as invalid UTF-8 (#1764) 2021-09-29 09:25:03 +08:00
Dhruv Maroo
178701f721
Reduce registers shown in the output of dr and Vpp when analysing an ARM64 executable (#1739)
* Add function to check if a register is a system register

* Only checks for ARM64 system registers as of now

* Check for system registers in ARM64 when printing registers using "dr"

* Does not completely remove the unnecessary register, but removes a
  huge number of useless registers printed by "dr"

* Rename `RZ_REG_TYPE_ALL` to `RZ_REG_TYPE_ANY`

* ADd register types for "sys" and "pauth": `RZ_REG_TYPE_SYS` and
  `RZ_REG_TYPE_PAUTH` respectively

* Remove `rz_reg_is_system_reg`

* Add `sys` and `pauth` register profiles

* Update debug tests to account for new arenas and register profiles

* REplace "pauth" with "sec" reg profile

* Update integration tests to account for new register profiles: `sys`, `sec`
2021-09-28 23:49:55 +08:00
Khairul Azhar Kasmiran
0a12ca44c5
ij: Represent non-utf8 binary filename as number array (#1760) 2021-09-28 00:34:05 +08:00
Paul I
15409562c9
Port ax commands to newshell (#1655)
Co-authored-by: Riccardo Schirone <ret2libc@users.noreply.github.com>
2021-09-23 22:05:57 +00:00
Khairul Azhar Kasmiran
bb01dcfb72
Move cmd_interpreter test into not-windows-any + diff btw cmd_i tests of linux-x64 and darwin-x64 (#1723) 2021-09-23 20:38:29 +08:00
Khairul Azhar Kasmiran
67e323174b
Add not-windows-x64 category to archos/ (#1700) 2021-09-17 00:06:15 +08:00
Khairul Azhar Kasmiran
f70a4da1d2
Add UTC timezone to timestamps (#1639) 2021-09-11 23:29:16 +08:00
Riccardo Schirone
1c78aee3cd
Convert i commands to rzshell (#1238)
* Start to create some RzBinObject specific API

Adding some unit tests

Fix for new relocs storage system

Fix test_bin unit test for oob-write

* Add `iA` command to newshell

Add `ie`/`iee` commands

Add support for `is`/`iE` commands

Add support for `ii` command

Add support for `il` command

Add support for `iM` command

Add support for `ir` command

Add support for `iS`/`iSS` commands

Add support for `iz` command

Add support for `i` command

Add support for `ic` command

Add support for `iC` command

Add support for `ih` and `iHH` commands

Add support for `iI` command

Add support for `iL` command

Fix descriptions of commands already converted

Add support for `idp` commands

Add support for `iD` command

Add support for `im` commands

Add support for `iR` command

Add support for `it` command

Add support for `iV` commands

Add support for `iw` command

Add support for `ix` commands

Add support for `iZ` command

Add support for `ik` command

Add support for `is.` command

Add support for `iS.` command

Reduce arguments in print_arch

Few Doxygen and ownership annotations

Add support for `iS=` command

Add support for `izz` and `izzz` commands

Add support for `ib` command

Add support for `ic*` command

Put section flags as the last field of the table

* Proper language detection.

* Rewritten blang.c

* implemented `icc/icm/icf <class name>`

* ignore blocks when printing langs

Remove num from `iA` output

* Fixed flags on java and added class column

Add support for `ia` commands

Fix `iCj` command

* RzBin: add rz_bin_object_sections_mapping_list API

* Fix rz-bin for new API

Remove unused va var in rz-bin.c

Fix `iA`/`-A` output

* implemented classdump_cpp

* Support namespaces

Use `icc`, `icl` does not exist anymore

Update output of broken tests for `icc`

Add `rz_return_*()` asserts in new `*_print()` functions

* Provide rz_core_bin_print API

* Select which parts to print also based on the mode

* Return bool from all `rz_core_bin_*_print()` API

* Use RzBinFile in new `rz_core_bin_*_print()` API

* Restore `dbg_dmi` test

* Remove oldshell handlers for `i` commands

* Remove `ieq` call in rizin, not needed

* Allow NULL `bf` in `rz_cmd_info_handler()`

* Re-add support for RZ_BIN_PREFIX for symbols/sections/segments/imports/relocs

* Move `ib` command to `obR`

* Show 'N/A' in `i` command when info are not available

* Assert on bf->o, just to be sure

* Make error messages clearer in `idp` commands

Co-authored-by: wargio <wargio@libero.it>
Co-authored-by: Giovanni <561184+wargio@users.noreply.github.com>
2021-09-04 22:37:05 +08:00
Alexis Ehret
de5d85b8db
Fix codecov CI, 'ood check for ptrace errors' 2021-07-28 14:57:40 +02:00
Giovanni
8fe4d0b0a5
Convert ! commands to newshell (#1235)
* Updated core_plugin_example.c
* Removed RZ_BYTES and RZ_BLOCK
Co-authored-by: Riccardo Schirone <sirmy15@gmail.com>
Co-authored-by: Anton Kochkov <anton.kochkov@gmail.com>
2021-07-28 10:33:33 +02:00
Pulak Malhotra
6fabb6d16a
Refactor dm commands ##refactor 2021-06-17 22:47:10 +08:00
Aswin C
8811b8c6b1
Convert dts commands to the newshell (#1102)
* Convert `dts` to the newshell
* Add a test for `dts-`
* Add a change in defining dts_cd which was missed before
* Update the test for `dts-` with a couple of `ds` instructions
* Fix the test for `dts-` with `dsb`
2021-05-09 10:13:16 +08:00
Pulak Malhotra
ae42408b99
Demangle tcache and fastbin pointers automatically for glibc >= 2.32 (#1105)
* Automatically demangle tcache pointer if glibc ver >= 2.32
* Automatically demangle fastbin pointer if glibc ver >= 2.32
* Updated test
* Use get_next_pointer function
* Refactor code to remove `dbg.glibc.demangle` option
2021-05-07 18:34:41 +08:00
Pulak Malhotra
0901a968bd
Output enhancements for dmh family of commands 2021-04-29 17:05:35 +08:00
seanachao
a2f8631b6c
Change -, --, = argument and = command meaning (#930)
* Swap = & - R (#615)&(#616)
* Fix R replace =
2021-04-21 16:20:24 +08:00
Khairul Azhar Kasmiran
8f5c5a5c64
asm.bits: Don't process a value of 0 2021-03-29 16:34:20 +08:00
Pulak Malhotra
7cbad083f2
dmh output enhancements (#810)
* Removed malloc from output of `dmh`
* Printing top chunk size in dmh
* removed `dmh` output indentation
* Added `dmhv` as verbose version of `dmh`
* Added new function to print a heap chunk and changed `dmh` output format
* Fixed bug regarding printing top chunk currently
* Added gef style bin description for main arena as `dmhd` command
* Added test for `dmhv`
* Added documentation for new functions
* Added 2 basic test for `dmhd`
* Added back brk_start, brk_end and other minor changes
* Reused `dmht` code for tcache description
* Reused `dmhf` code for `dmhd fast`
* Hexdump format changed to bytes from half words in `dmhv`
* Added message if tcache is not available
2021-03-24 19:09:38 +08:00
Aswin C
fa2f1d083d
Convert dsu commands to newshell (#709) 2021-03-09 22:52:12 +08:00
Itay Cohen
c2f44b4c78
Disable function size by default ##breaking (#669) 2021-02-28 15:05:10 +02:00