* Fix Vd command

- Added Cd command to define data
This commit is contained in:
pancake 2010-06-30 02:44:24 +02:00
parent 5f10d6ba64
commit a6840204b5
3 changed files with 17 additions and 7 deletions

6
TODO
View File

@ -31,12 +31,10 @@ TODO:
* port r_sign to RList
* pancake: implement callback for conditional breakpoints
* nibble: trace counts after step..thats not correct!
* implement grep{col,row}
######### * implement grep{col,row}
* nibble: mach0 new binary format is not supported by bin_mach0 :(
* Implement r_sys_setenv stuff from r1 in core/file.c:33 (!!?)
################ * pancake: Implement search.align
################ * Handle metadata from disassembler (structs, hexdump, ...)
################ - r_meta_print (RMeta, RMetaItem, RPrint);
* Implement visual selection of bytes
* pancake: FileDescriptors: dd -- copy from !fd in r1
* pancake: we need an api to define function signatures
- arg/var set name/get value/ ..

View File

@ -193,6 +193,16 @@ static void r_print_disasm(RPrint *p, RCore *core, ut64 addr, ut8 *buf, int len,
ret = (int)mi->size;
free (line);
continue;
case R_META_DATA:
r_print_hexdump (core->print, addr, buf+i, len-i, 16, 1);
ret = (int)mi->size;
free (line);
continue;
case R_META_STRUCT:
r_print_format (core->print, addr, buf+i, len-i, mi->str);
ret = (int)mi->size;
free (line);
continue;
}
if (show_bytes) {
char *str, pad[64];
@ -2361,6 +2371,7 @@ static int cmd_meta(void *data, const char *input) {
break;
case 'S':
case 's':
case 'd': /* data */
case 'm': /* struct */
case 'x': /* code xref */
case 'X': /* data xref */
@ -2428,6 +2439,7 @@ static int cmd_meta(void *data, const char *input) {
" CC [string] # add comment\n"
" Cs[-] [size] [[addr]] # add string\n"
" CS[-] [size] # ...\n"
" Cd[-] [fmt] [..] # hexdump data\n"
" Cm[-] [fmt] [..] # format memory\n"
" Cx[-] [...] # add code xref\n"
" CX[-] [...] # add data xref\n");

View File

@ -471,13 +471,13 @@ R_API void r_core_visual_define (RCore *core) {
// detect type of string
// find EOS
// capture string value
r_meta_add (core->meta, R_META_STRING, off, core->blocksize, "");
r_meta_add (core->meta, R_META_STRING, off, off+core->blocksize, "");
break;
case 'd': // TODO: check
r_meta_add (core->meta, R_META_DATA, off, core->blocksize, "");
r_meta_add (core->meta, R_META_DATA, off, off+core->blocksize, "");
break;
case 'c': // TODO: check
r_meta_add (core->meta, R_META_CODE, off, core->blocksize, "");
r_meta_add (core->meta, R_META_CODE, off, off+core->blocksize, "");
break;
case 'u':
r_meta_del (core->meta, R_META_ANY, off, 1, "");