Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8213445

jcmd VM.symboltable and VM.stringtable -verbose output contains no shared symbols or strings

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 19
    • 12
    • hotspot
    • b20

      Both the jcmd VM.symboltable -verbose and VM.stringtable -verbose only include the contents from the runtime symbol and string tables:

      void SymbolTable::dump(outputStream* st, bool verbose) {
        if (!verbose) {
          SymbolTable::the_table()->print_table_statistics(st, "SymbolTable");
        } else {
          Thread* thr = Thread::current();
          ResourceMark rm(thr);
          st->print_cr("VERSION: 1.1");
          DumpSymbol ds(thr, st);
          if (!SymbolTable::the_table()->_local_table->try_scan(thr, ds)) {
            log_info(symboltable)("dump unavailable at this moment");
          }
        }
      }

      void StringTable::dump(outputStream* st, bool verbose) {
        if (!verbose) {
          the_table()->print_table_statistics(st, "StringTable");
        } else {
          Thread* thr = Thread::current();
          ResourceMark rm(thr);
          st->print_cr("VERSION: 1.1");
          PrintString ps(thr, st);
          if (!the_table()->_local_table->try_scan(thr, ps)) {
            st->print_cr("dump unavailable at this moment");
          }
        }
      }

      With the default CDS archive always being enabled, both commands need to be updated to include the shared symbols and strings.

            ccheung Calvin Cheung
            jiangli Jiangli Zhou
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: