| Summary: | [Mac] runtime discovers JDI interfaces in classes.jar before jdi.jar | ||
|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Kevin Barnes <cocoakevin> |
| Component: | Debug | Assignee: | Kevin Barnes <cocoakevin> |
| Status: | VERIFIED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | andre_weinand |
| Version: | 3.0 | ||
| Target Milestone: | 3.1 M2 | ||
| Hardware: | Macintosh | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Kevin Barnes
Display causes the same error, but Debug Hovers work. On the Mac, classes.jar contains the com.sun.jdi interfaces. Since classes.jar is on the bootpath (by default), the 1.4 implementation of the JDI interfaces is found before ours (in org.eclispe.jdt.debug). The 1.4 implementation of the JDI interfaces does not contain the method #gernericSignature(). On other platforms, the com.sun.jdi.* packages are in tools.jar which is not on the bootpath/classpath. Not sure why they are packaged this way on the Mac. By prepending org.eclipse.jdt.debug_n_n_n/jdi.jar to the boot classpath, this problem can be avoided. It requires adding an entry in the "info.plist" file like "-Xbootclasspath/p:plugins/org.eclipse.jdt.debug_3_1_0/jdi.jar". Andre, dan we extend this to target IDE's for self hosting? i.e. without explicitly adding a boot classpath argument to the launch config? Yes, I hope so. Luckily we have the o.e.jdt.launching.macosx plugin whose sole purpose in live is to pass a -DStartOnFirstThread argument to any SWT application. I'm sure that I can pass a -Xbootclasspath/p:plugins/org.eclipse.jdt.debug_3_1_0/jdi.jar" as well. Do I have to hardcode this argument or is there a place where I can get it from? It will have to be dynamic, since the classes may exist as a required plug-in or as classes in the output (bin) directory of the plug-in as it is developed. For M2, the simple story may be best - i.e. just make things work in the SDK by providing the correct info.plist. Darin, did you try the "-Xbootclasspath/p:plugins/org.eclipse.jdt.debug_3_1_0/jdi.jar" in the Info.plist? If not, how can I verify that is works? I have edited my info.plist file and verified that the fix works in my host (ie Inspect and Display are working again). I also tried adding Xbootclasspath/p:... to the VM arguments of my runtime workbench launch config, but haven't had any luck fixing the problem in my target yet. Just a clarification.... The VM Argument should be "-Xbootclasspath/p:plugins/ org.eclipse.jdt.debug_3.1.0/jdi.jar". Previous comments had "...3_1_0/jdi.jar". added <string>-Xbootclasspath/p:plugins/org.eclipse.jdt.debug_3.1.0/jdi.jar</string> to Info.plist and released for M2. Marking as fixed. Will need to be verified in a later build. ... by Kevin. verified |