Subversion Repositories HelenOS

Rev

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;