src/share/vm/runtime/vframe.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7198429 Sdiff src/share/vm/runtime

src/share/vm/runtime/vframe.hpp

Print this page




 319   CodeBlob*          cb()         const { return _frame.cb();  }
 320   nmethod*           nm()         const {
 321       assert( cb() != NULL && cb()->is_nmethod(), "usage");
 322       return (nmethod*) cb();
 323   }
 324 
 325   // Frame type
 326   bool is_interpreted_frame() const { return _frame.is_interpreted_frame(); }
 327   bool is_entry_frame() const       { return _frame.is_entry_frame(); }
 328 
 329   // Iteration
 330   void next() {
 331     // handle frames with inlining
 332     if (_mode == compiled_mode    && fill_in_compiled_inlined_sender()) return;
 333 
 334     // handle general case
 335     do {
 336       _frame = _frame.sender(&_reg_map);
 337     } while (!fill_from_frame());
 338   }

 339 
 340   bool at_end() const { return _mode == at_end_mode; }
 341 
 342   // Implements security traversal. Skips depth no. of frame including
 343   // special security frames and prefixed native methods
 344   void security_get_caller_frame(int depth);
 345 
 346   // Helper routine for JVM_LatestUserDefinedLoader -- needed for 1.4
 347   // reflection implementation
 348   void skip_reflection_related_frames();
 349 };
 350 
 351 class vframeStream : public vframeStreamCommon {
 352  public:
 353   // Constructors
 354   vframeStream(JavaThread* thread, bool stop_at_java_call_stub = false)
 355     : vframeStreamCommon(thread) {
 356     _stop_at_java_call_stub = stop_at_java_call_stub;
 357 
 358     if (!thread->has_last_Java_frame()) {




 319   CodeBlob*          cb()         const { return _frame.cb();  }
 320   nmethod*           nm()         const {
 321       assert( cb() != NULL && cb()->is_nmethod(), "usage");
 322       return (nmethod*) cb();
 323   }
 324 
 325   // Frame type
 326   bool is_interpreted_frame() const { return _frame.is_interpreted_frame(); }
 327   bool is_entry_frame() const       { return _frame.is_entry_frame(); }
 328 
 329   // Iteration
 330   void next() {
 331     // handle frames with inlining
 332     if (_mode == compiled_mode    && fill_in_compiled_inlined_sender()) return;
 333 
 334     // handle general case
 335     do {
 336       _frame = _frame.sender(&_reg_map);
 337     } while (!fill_from_frame());
 338   }
 339   void security_next();
 340 
 341   bool at_end() const { return _mode == at_end_mode; }
 342 
 343   // Implements security traversal. Skips depth no. of frame including
 344   // special security frames and prefixed native methods
 345   void security_get_caller_frame(int depth);
 346 
 347   // Helper routine for JVM_LatestUserDefinedLoader -- needed for 1.4
 348   // reflection implementation
 349   void skip_reflection_related_frames();
 350 };
 351 
 352 class vframeStream : public vframeStreamCommon {
 353  public:
 354   // Constructors
 355   vframeStream(JavaThread* thread, bool stop_at_java_call_stub = false)
 356     : vframeStreamCommon(thread) {
 357     _stop_at_java_call_stub = stop_at_java_call_stub;
 358 
 359     if (!thread->has_last_Java_frame()) {


src/share/vm/runtime/vframe.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File