Rev 2922 | Rev 2935 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2922 | Rev 2923 | ||
|---|---|---|---|
| Line 38... | Line 38... | ||
| 38 | #include <bool.h> |
38 | #include <bool.h> |
| 39 | #include <udebug.h> |
39 | #include <udebug.h> |
| 40 | #include <sys/types.h> |
40 | #include <sys/types.h> |
| 41 | 41 | ||
| 42 | #include "main.h" |
42 | #include "main.h" |
| - | 43 | #include "include/arch.h" |
|
| 43 | #include "cmd.h" |
44 | #include "cmd.h" |
| 44 | 45 | ||
| 45 | static void cmd_break(int argc, char *argv[]); |
46 | static void cmd_break(int argc, char *argv[]); |
| 46 | void cmd_help(int argc, char *argv[]); |
47 | void cmd_help(int argc, char *argv[]); |
| 47 | static void cmd_read(int argc, char *argv[]); |
48 | static void cmd_read(int argc, char *argv[]); |
| Line 58... | Line 59... | ||
| 58 | }; |
59 | }; |
| 59 | 60 | ||
| 60 | static void cmd_break(int argc, char *argv[]) |
61 | static void cmd_break(int argc, char *argv[]) |
| 61 | { |
62 | { |
| 62 | uintptr_t addr; |
63 | uintptr_t addr; |
| 63 | char brkp[1]; |
- | |
| 64 | int rc; |
- | |
| 65 | breakpoint_t *brk; |
- | |
| 66 | int i; |
- | |
| 67 | - | ||
| 68 | brk = NULL; |
- | |
| 69 | for (i = 0; i < MAX_BRKPTS; i++) |
- | |
| 70 | if (brk_list[i].set == 0) brk = brk_list+i; |
- | |
| 71 | - | ||
| 72 | if (!brk) { |
- | |
| 73 | printf("too many breakpoints\n"); |
- | |
| 74 | return; |
- | |
| 75 | } |
- | |
| 76 | 64 | ||
| 77 | (void)argc; |
65 | (void)argc; |
| 78 | addr = strtoul(argv[1], NULL, 0); |
66 | addr = strtoul(argv[1], NULL, 0); |
| 79 | 67 | ||
| 80 | printf("You requested a breakpoint at 0x%x\n", addr); |
68 | printf("You requested a breakpoint at 0x%x\n", addr); |
| 81 | rc = udebug_mem_read(app_phone, &brk->back, addr, 1); |
- | |
| 82 | printf("udebug_mem_read() -> %d\n", rc); |
- | |
| 83 | brkp[0] = 0xcc; |
- | |
| 84 | rc = udebug_mem_write(app_phone, brkp, addr, 1); |
- | |
| 85 | printf("udebug_mem_write() -> %d\n", rc); |
- | |
| 86 | - | ||
| 87 | brk->addr = addr; |
69 | arch_breakpoint_add(addr); |
| 88 | brk->set = 1; |
- | |
| 89 | } |
70 | } |
| 90 | 71 | ||
| 91 | void cmd_help(int argc, char *argv[]) |
72 | void cmd_help(int argc, char *argv[]) |
| 92 | { |
73 | { |
| 93 | int i; |
74 | int i; |