Subversion Repositories HelenOS

Rev

Rev 238 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 238 Rev 272
Line 30... Line 30...
30
 
30
 
31
#include <panic.h>
31
#include <panic.h>
32
#include <print.h>
32
#include <print.h>
33
#include <arch/types.h>
33
#include <arch/types.h>
34
#include <arch/asm.h>
34
#include <arch/asm.h>
-
 
35
#include <symtab.h>
35
 
36
 
36
extern __u64 REG_DUMP;
37
extern __u64 REG_DUMP;
37
 
38
 
38
 
39
 
39
void general_exception(void);
40
void general_exception(void);
Line 49... Line 50...
49
{
50
{
50
    panic("\nBreak Instruction\n");
51
    panic("\nBreak Instruction\n");
51
}
52
}
52
 
53
 
53
 
54
 
54
#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("cr"#r":%Q\n",val);}
55
#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("\ncr"#r":%Q",val);}
55
#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("ar"#r":%Q\n",val);}
56
#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("\nar"#r":%Q",val);}
56
 
57
 
57
void universal_handler(void);
58
void universal_handler(void);
58
void universal_handler(void)
59
void universal_handler(void)
59
{
60
{
60
    __u64 vector,psr;
61
    __u64 vector,psr,PC;
61
    __u64 *p;
62
    __u64 *p;
62
    int i;
63
    int i;
-
 
64
    char *sym;
63
   
65
   
64
   
66
   
65
    get_shadow_register(16,vector);
67
    get_shadow_register(16,vector);
66
 
68
 
67
   
69
   
Line 74... Line 76...
74
    cr_dump(1);
76
    cr_dump(1);
75
    cr_dump(2);
77
    cr_dump(2);
76
    cr_dump(8);
78
    cr_dump(8);
77
    cr_dump(16);   
79
    cr_dump(16);   
78
    cr_dump(17);   
80
    cr_dump(17);   
79
    cr_dump(19);   
81
    cr_dump(19);get_control_register(19,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);
80
    cr_dump(20);   
82
    cr_dump(20);get_control_register(20,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);  
81
    cr_dump(21);   
83
    cr_dump(21);   
82
    cr_dump(22);   
84
    cr_dump(22);get_control_register(22,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym);  
83
    cr_dump(23);   
85
    cr_dump(23);   
84
    cr_dump(24);   
86
    cr_dump(24);   
85
    cr_dump(25);   
87
    cr_dump(25);   
86
    cr_dump(64);   
88
    cr_dump(64);   
87
    cr_dump(65);   
89
    cr_dump(65);