On 22 feb 2012, at 11:22, A. Sundararajan wrote: > SA uses stop-the-world to debug "snapshot" of the process. BugSpot was > supposed to be a SA model where you can pause/resume and keep looking at > different snapshots (as well as use JDI to look at process state). But, it > was never implemented that way. Over the years lot of stuff accumulated > assuming the snapshot model as well.
So what does BugSpot have that HSDB does not (and the other way around)? Could one of them be retired? > And yes, JSDB may not be directly useful - but you can use most of > functionality CLHSDB using script "load" as Kris mentioned. So maybe CLHSDB can be improved and JSDB retired? > SOQL: Better option is to retrieve heap dump from core/process using jmap (or > SA internals) and view it by jhat or VisualVM. Same thing here? Thanks for the feedback, /Staffan > > -Sundar > > Krystal Mok wrote: >> Hi Staffan, >> >> There's at least another frontend, the SA Plugin for Visual VM. I think it >> only uses the BugSpotAgent for attaching/detaching, otherwise it doesn't use >> stuff from BugSpot. >> Other tools, e.g. jstack -m, jstack -F, jmap -F, etc., are not exactly SA >> frontends, but use the SA to implement their functionality. >> >> I use CLHSDB a lot when I poke around the internals of HotSpot. It's good >> for its purpose, except that history support is really weird, e.g. pressing >> up arrow give "^[[A". When I need commands not available in CLHSDB yet, I >> can write a JavaScript file and use "jsload" in CLHSDB to extend it with new >> commands. Example here: [1]. >> >> I seldom use JSDB directly, because the command style of CLHSDB works >> better, if the commands cover all the needs during a debugging session. When >> writing new commands for CLHSDB, sometimes I use the "jseval" command to try >> things out first, before actually writing them into a script file. That >> overlaps with what JSDB does, but of course prototyping in JSDB would be >> much nicer than in CLHSDB. >> >> On the top of my wishlist on CLHSDB, I'd wish for: >> 1. better input support (something like jline would be great) >> 2. AMD64 disassembler support (not frontend issue) >> 3. live stepping/breakpointing support (not frontend issue) >> >> If 2 and 3 is implemented, I might be able to spend more time in CLHSDB, >> where sometimes I have to use a native debugger like gdb. But these aren't >> frontend issue anyway. I'd be grateful for any advise on how to debug a >> product build HotSpot with gdb instead of CLHSDB, where a lot of debugging >> support functions are not available in HotSpot itself and the symbols are >> inconvenient to access. >> >> On the GUI side, Poonam did a presentation on the SA Plugin in JavaOne 2011. >> The "Future Plans" part sounds interesting. I think this plugin is the most >> visible way to use SA for most end users. It'd be great if it could be open >> sourced and made more extensible, say, embedding a variant of CLHSDB into >> this plugin. >> >> Regards, >> Kris Mok >> >> [1]: https://gist.github.com/1393698 >> On Wed, Feb 22, 2012 at 4:26 PM, Staffan Larsen <staffan.lar...@oracle.com >> <mailto:staffan.lar...@oracle.com>> wrote: >> >> I'm trying to figure out what the different front ends to SA are >> and how they differ. So far I have identified the following: >> >> HSDB - basic UI >> CLHSDB - command line version of HSDB >> BugSpot - improvement over HSDB ?? >> JSDB - JavaScript command line >> SOQL - Simple Object Query Language command line >> >> Have I missed any? >> >> What are your experiences with these? Which ones are most used? >> Should we maintain all of them? Can we consolidate them into one? >> Specifically: what is the difference between HSDB and BugSpot? >> >> I'd be happy for all and any feedback, >> /Staffan >> >> >