On Wed, 17 Mar 2021 04:55:27 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>>> If I understand correctly, this is very different than the way we normally >>> implement remote debugging support. Normally pages are read in from the >>> remote VM process and into the local SA client, where it can then implement >>> SA support in much the same way as it normally does. For PStack and PMap, >>> you've chosen to instead just execute the commands in the remote debugd >>> server, and return the (text) result to the client. >> >> Yes. >> >>> It's not clear to me why the normal model (of reading in the remote pages >>> and leveraging existing PStack and PMAp supprt) can't instead be used so we >>> can keep the remote debugging support consistent. How are PStack and PMap >>> different from other SA support that does not require remote execution of >>> commands. >> >> SA would set various information when it attaches to debuggee, so it is >> difficult to catch up them when remote debugger attached because only debugd >> can attach to debuggee directly. >> As I said in the description of this PR, both PMap and PStack depend on >> CDebugger. CDebugger holds low-level information such as library list and >> native thread list. They would be initialized when it attached - it is >> startup of debugd, and we cannot get them when we connect to debugd. >> >> I thought to export CDebugger as RMI object, but it seems to complex. So I >> decided to run both pmap and pstack on debugd. > > 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`. > > 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. Thanks @plummercj for the comment! I updated testcases. ------------- PR: https://git.openjdk.java.net/jdk/pull/3027