On Wed, 17 Mar 2021 04:55:27 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> Do we have any issues with any other clhsdb commands that rely CDebugger. I 
> haven't looked into the implementation, but I'm suspicious of `thread`, 
> `threads`, `findpc` of an address in the executable, and `findsym`.

Yes, I confirmed `findsim` has same issue on remote debugger. It will be fixed 
if `findsym` use `execCommandOnServer()` in this PR, but it is not in this 
scope now.

> And speaking of CDebugger, the SA "debugger" hierarchy is too heavily 
> abstracted. I counted about 18 classes and interfaces that have "Debugger" in 
> their name, and some of the interfaces get inherited more than once. I really 
> wonder if it has to be that complex. My first adventure into this mess was 
> for [JDK-8239062](https://bugs.openjdk.java.net/browse/JDK-8239062), a time 
> when I knew close to nothing about SA. Was not fun and I eventually gave up. 
> You might want to have a look at the CR, if not just to add some comments and 
> maybe enlighten me on some things.

I agree with you that Debugger (includes Debugger) and their inheritances are 
very complex, but it is very difficult to refactor IMHO - it could be the same 
as creating SA from scratch. It would be better if all commands run on client 
side of course, but it seems to be difficult, thus I decided to run some 
primitive commands (e.g. pmap, pstack) are run on server side (debugd).
 If this PR is integrated, 
[JDK-8239062](https://bugs.openjdk.java.net/browse/JDK-8239062) also can be 
fixed because it may be able to run on debugd.

OTOH this PR could be more complex to SA implementation for remote debugger, 
but I have no idea to fix this problem without refactoring (C)Debugger 
interfaces.

-------------

PR: https://git.openjdk.java.net/jdk/pull/3027

Reply via email to