Community
Participate
Working Groups
To properly support multi-process, I believe the source lookup must be handled per individual process. Therefore, the ISourceLookupDMContext must be a container (process) instead of being the commandControl (GDBControlDMContext). This is a pretty drastic change that may impact extenders of DSF-GDB.
More importantly, the source lookup data is serialized into the launch configuration. So to allow different source lookup per process, we need to also extend source lookup UI and launch configurations.
Ouch. Good point. That does lead me to wonder whether supporting multiple processes with the same launch is the right thing to do with the Eclipse platform we have. My initial thought has been to leave the concept of Processes to the Target Management domain and then attach to processes from there, creating separate launches for each attach. But then you would have to deal with the shared gdb instances and MI connections between launches but if it simplifies the user experience, then it might be worth it.
Adding Ken who has gone through this already.
EDC handles this by having the EDCLaunch represent a device or PC being debugged. So all of the launch configurations that target that device are contained in one EDCLaunch. This means that several launch configurations can be associated with one EDC launch (the last one launched is returned in EDCLaunch.getLaunchConfiguration). All affiliated launch configurations are used for source lookup. This solution is anything but air-tight, but does handle the vast bunk of use cases and provides a much better user experience within the confines of the existing debug platform design. Ideally source lookup settings could be specified per executable and managed in a central place independent of launch configurations.