30 _anchor.clear(); |
30 _anchor.clear(); |
31 } |
31 } |
32 |
32 |
33 frame pd_last_frame() { |
33 frame pd_last_frame() { |
34 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); |
34 assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); |
35 if (_anchor.last_Java_pc() != NULL) { |
35 assert(_anchor.last_Java_pc() != NULL, "not walkable"); |
36 return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp(), _anchor.last_Java_pc()); |
36 return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp(), _anchor.last_Java_pc()); |
37 } else { |
|
38 // This will pick up pc from sp |
|
39 return frame(_anchor.last_Java_sp(), _anchor.last_Java_fp()); |
|
40 } |
|
41 } |
37 } |
42 |
38 |
43 public: |
39 public: |
44 // Mutators are highly dangerous.... |
40 // Mutators are highly dangerous.... |
45 intptr_t* last_Java_fp() { return _anchor.last_Java_fp(); } |
41 intptr_t* last_Java_fp() { return _anchor.last_Java_fp(); } |