Mercurial > hg > graal-jvmci-8
comparison agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java @ 3960:f08d439fab8c
7089790: integrate bsd-port changes
Reviewed-by: kvn, twisti, jrose
Contributed-by: Kurt Miller <kurt@intricatesoftware.com>, Greg Lewis <glewis@eyesbeyond.com>, Jung-uk Kim <jkim@freebsd.org>, Christos Zoulas <christos@zoulas.com>, Landon Fuller <landonf@plausible.coop>, The FreeBSD Foundation <board@freebsdfoundation.org>, Michael Franz <mvfranz@gmail.com>, Roger Hoover <rhoover@apple.com>, Alexander Strange <astrange@apple.com>
author | never |
---|---|
date | Sun, 25 Sep 2011 16:03:29 -0700 |
parents | f6f3bb0ee072 |
children | 78d2ae5ab35b |
comparison
equal
deleted
inserted
replaced
3959:eda6988c0d81 | 3960:f08d439fab8c |
---|---|
27 import java.io.PrintStream; | 27 import java.io.PrintStream; |
28 import java.net.*; | 28 import java.net.*; |
29 import java.rmi.*; | 29 import java.rmi.*; |
30 import sun.jvm.hotspot.*; | 30 import sun.jvm.hotspot.*; |
31 import sun.jvm.hotspot.debugger.*; | 31 import sun.jvm.hotspot.debugger.*; |
32 import sun.jvm.hotspot.debugger.bsd.*; | |
32 import sun.jvm.hotspot.debugger.proc.*; | 33 import sun.jvm.hotspot.debugger.proc.*; |
33 import sun.jvm.hotspot.debugger.cdbg.*; | 34 import sun.jvm.hotspot.debugger.cdbg.*; |
34 import sun.jvm.hotspot.debugger.windbg.*; | 35 import sun.jvm.hotspot.debugger.windbg.*; |
35 import sun.jvm.hotspot.debugger.linux.*; | 36 import sun.jvm.hotspot.debugger.linux.*; |
36 import sun.jvm.hotspot.debugger.sparc.*; | 37 import sun.jvm.hotspot.debugger.sparc.*; |
512 setupDebuggerSolaris(); | 513 setupDebuggerSolaris(); |
513 } else if (os.equals("win32")) { | 514 } else if (os.equals("win32")) { |
514 setupDebuggerWin32(); | 515 setupDebuggerWin32(); |
515 } else if (os.equals("linux")) { | 516 } else if (os.equals("linux")) { |
516 setupDebuggerLinux(); | 517 setupDebuggerLinux(); |
518 } else if (os.equals("bsd")) { | |
519 setupDebuggerBsd(); | |
517 } else { | 520 } else { |
518 // Add support for more operating systems here | 521 // Add support for more operating systems here |
519 throw new DebuggerException("Operating system " + os + " not yet supported"); | 522 throw new DebuggerException("Operating system " + os + " not yet supported"); |
520 } | 523 } |
521 if (isServer) { | 524 if (isServer) { |
562 } else if (os.equals("win32")) { | 565 } else if (os.equals("win32")) { |
563 db = new HotSpotTypeDataBase(machDesc, new Win32VtblAccess(debugger, jvmLibNames), | 566 db = new HotSpotTypeDataBase(machDesc, new Win32VtblAccess(debugger, jvmLibNames), |
564 debugger, jvmLibNames); | 567 debugger, jvmLibNames); |
565 } else if (os.equals("linux")) { | 568 } else if (os.equals("linux")) { |
566 db = new HotSpotTypeDataBase(machDesc, new LinuxVtblAccess(debugger, jvmLibNames), | 569 db = new HotSpotTypeDataBase(machDesc, new LinuxVtblAccess(debugger, jvmLibNames), |
570 debugger, jvmLibNames); | |
571 } else if (os.equals("bsd")) { | |
572 db = new HotSpotTypeDataBase(machDesc, new BsdVtblAccess(debugger, jvmLibNames), | |
567 debugger, jvmLibNames); | 573 debugger, jvmLibNames); |
568 } else { | 574 } else { |
569 throw new DebuggerException("OS \"" + os + "\" not yet supported (no VtblAccess implemented yet)"); | 575 throw new DebuggerException("OS \"" + os + "\" not yet supported (no VtblAccess implemented yet)"); |
570 } | 576 } |
571 } | 577 } |
664 setupJVMLibNamesSolaris(); | 670 setupJVMLibNamesSolaris(); |
665 } else if (os.equals("win32")) { | 671 } else if (os.equals("win32")) { |
666 setupJVMLibNamesWin32(); | 672 setupJVMLibNamesWin32(); |
667 } else if (os.equals("linux")) { | 673 } else if (os.equals("linux")) { |
668 setupJVMLibNamesLinux(); | 674 setupJVMLibNamesLinux(); |
675 } else if (os.equals("bsd")) { | |
676 setupJVMLibNamesBsd(); | |
669 } else { | 677 } else { |
670 throw new RuntimeException("Unknown OS type"); | 678 throw new RuntimeException("Unknown OS type"); |
671 } | 679 } |
672 | 680 |
673 cpu = debugger.getCPU(); | 681 cpu = debugger.getCPU(); |
743 private void setupJVMLibNamesLinux() { | 751 private void setupJVMLibNamesLinux() { |
744 // same as solaris | 752 // same as solaris |
745 setupJVMLibNamesSolaris(); | 753 setupJVMLibNamesSolaris(); |
746 } | 754 } |
747 | 755 |
756 // | |
757 // BSD | |
758 // | |
759 | |
760 private void setupDebuggerBsd() { | |
761 setupJVMLibNamesBsd(); | |
762 | |
763 if (cpu.equals("x86")) { | |
764 machDesc = new MachineDescriptionIntelX86(); | |
765 } else if (cpu.equals("amd64")) { | |
766 machDesc = new MachineDescriptionAMD64(); | |
767 } else { | |
768 throw new DebuggerException("Bsd only supported on x86/amd64"); | |
769 } | |
770 | |
771 // Note we do not use a cache for the local debugger in server | |
772 // mode; it will be taken care of on the client side (once remote | |
773 // debugging is implemented). | |
774 | |
775 debugger = new BsdDebuggerLocal(machDesc, !isServer); | |
776 attachDebugger(); | |
777 } | |
778 | |
779 private void setupJVMLibNamesBsd() { | |
780 // same as solaris | |
781 setupJVMLibNamesSolaris(); | |
782 } | |
783 | |
748 /** Convenience routine which should be called by per-platform | 784 /** Convenience routine which should be called by per-platform |
749 debugger setup. Should not be called when startupMode is | 785 debugger setup. Should not be called when startupMode is |
750 REMOTE_MODE. */ | 786 REMOTE_MODE. */ |
751 private void attachDebugger() { | 787 private void attachDebugger() { |
752 if (startupMode == PROCESS_MODE) { | 788 if (startupMode == PROCESS_MODE) { |