1851 }
1852 }
1853
1854 private:
1855 void set_entry_point(ThreadFunction entry_point) { _entry_point = entry_point; }
1856
1857 public:
1858
1859 // Frame iteration; calls the function f for all frames on the stack
1860 void frames_do(void f(frame*, const RegisterMap*));
1861
1862 // Memory operations
1863 void oops_do(OopClosure* f, CodeBlobClosure* cf);
1864
1865 // Sweeper operations
1866 virtual void nmethods_do(CodeBlobClosure* cf);
1867
1868 // RedefineClasses Support
1869 void metadata_do(MetadataClosure* f);
1870
1871 // Misc. operations
1872 char* name() const { return (char*)get_thread_name(); }
1873 void print_on(outputStream* st, bool print_extended_info) const;
1874 void print_on(outputStream* st) const { print_on(st, false); }
1875 void print_value();
1876 void print_thread_state_on(outputStream*) const PRODUCT_RETURN;
1877 void print_thread_state() const PRODUCT_RETURN;
1878 void print_on_error(outputStream* st, char* buf, int buflen) const;
1879 void print_name_on_error(outputStream* st, char* buf, int buflen) const;
1880 void verify();
1881 const char* get_thread_name() const;
1882 protected:
1883 // factor out low-level mechanics for use in both normal and error cases
1884 virtual const char* get_thread_name_string(char* buf = NULL, int buflen = 0) const;
1885 public:
1886 const char* get_threadgroup_name() const;
1887 const char* get_parent_name() const;
1888
1889 // Accessing frames
1890 frame last_frame() {
|
1851 }
1852 }
1853
1854 private:
1855 void set_entry_point(ThreadFunction entry_point) { _entry_point = entry_point; }
1856
1857 public:
1858
1859 // Frame iteration; calls the function f for all frames on the stack
1860 void frames_do(void f(frame*, const RegisterMap*));
1861
1862 // Memory operations
1863 void oops_do(OopClosure* f, CodeBlobClosure* cf);
1864
1865 // Sweeper operations
1866 virtual void nmethods_do(CodeBlobClosure* cf);
1867
1868 // RedefineClasses Support
1869 void metadata_do(MetadataClosure* f);
1870
1871 // Debug method asserting thread states are correct during a handshake operation.
1872 DEBUG_ONLY(void verify_states_for_handshake();)
1873
1874 // Misc. operations
1875 char* name() const { return (char*)get_thread_name(); }
1876 void print_on(outputStream* st, bool print_extended_info) const;
1877 void print_on(outputStream* st) const { print_on(st, false); }
1878 void print_value();
1879 void print_thread_state_on(outputStream*) const PRODUCT_RETURN;
1880 void print_thread_state() const PRODUCT_RETURN;
1881 void print_on_error(outputStream* st, char* buf, int buflen) const;
1882 void print_name_on_error(outputStream* st, char* buf, int buflen) const;
1883 void verify();
1884 const char* get_thread_name() const;
1885 protected:
1886 // factor out low-level mechanics for use in both normal and error cases
1887 virtual const char* get_thread_name_string(char* buf = NULL, int buflen = 0) const;
1888 public:
1889 const char* get_threadgroup_name() const;
1890 const char* get_parent_name() const;
1891
1892 // Accessing frames
1893 frame last_frame() {
|