In the process picker, selecting two bash processes and then clicking on quick-debug, leads to two source code windows. Instead, the two processess should be accessable from the single source code window.
*** This bug has been marked as a duplicate of 1709 ***
This about getting a single source window with a list of processes in the process/thread pane. Not multiple source window tabs.
I'll start taking a look at this then... it's going to require a fairly significant overhaul in /srcwin to work properly.
frysk-core/frysk/rt: 2007-03-30 Mike Cvet <mcvet@redhat.com> * RunState.java (tasks): Turned into an array, representing threads for multiple processes. Addresses #4214. (continueExecution): Set the current process index. (stop): Added extra parameter, Tasks to be blocked. Call requestAdd() with explicit Task list parameter. Sets current process index. (setProc): Set number of running tasks. Properly use new global Task array. Sets current process index to 0. (setProcs): Added. Installs the RunState on an Array of Procs. (getNumTasks): Return the number of tasks for selected Proc. (removeObserver): Added Proc paramter; use it to check its own blockers list, before continuing Tasks. (addFailed): Cast Object parameter to Proc to unblock, instead of global stateProc. Removed System.exit() call. (requestAdd): Removed, no longer overloads requestAdd(LinkedList). (requestAdd): Don't set the number of running tasks or current Tasks list. Removed System.exit() call. Explicitly add RunState to each Task. (requestAddObservers): Removed. (blockTasks): Block Tasks belonging to currently-used Proc. frysk-core/frysk/cli: 2007-03-30 Mike Cvet <mcvet@redhat.com> * CLI.java (DetachHandler.handle): Updated call to RunState.removeObserver to include Proc parameter. (HaltHandler.handle): Update call to RunState.stop to include Task list parameter. frysk-gui/frysk/gui/srcwin: 2007-03-30 Mike Cvet <mcvet@redhat.com> * SourceWindow.java (dom): Now an array. Addresses #4214. (swProc): Ditto. (frames): Now a two-dimensional array. Proc x Task. (current): Added. Process array index integer. (numProcs): Added. Number of processes currently maintained by the SourceWindow. (SourceWindow): New constructor. Takes an array of Procs. (SourceWindow): Other two constructors - edit to properly use new global arrays for DOM, Procs, and StackFrames. (finishSourceWin): Fill up entire StackFrame 2D array. Removed RunState state check before calling populateStackBrowser. (populatStackBrowser): Now takes 2D array. Takes into account new arrays for #4214. Call updateShownStackFrame() with current process index. (setSwProc): Removed. (updateShownStackFrame): Takes new int parameter - new process index. If DOMSource can't be resolved from the StackFrame Lines, add it into the DOM and re-try. Set the global process index. (removeTags): Only untag current process. (createTags): Only tag current process. (doStop): Use Proc array; send in Task list to RunState. (doContinue): Use Proc array. (toggleRegisterWindow): Ditto. (toggleMemoryWindow): Ditto. (toggleDisassemblyWindow): Ditto. (getProcIsa): Ditto. (generateProcStackTrace): Now only takes a Task LinkedList parameter. More intelligently setup variables for stack tracing. Set up DOM for current process only. (currentStackChanged): Takes process index integer parameter. Calls updated updateShownStackFrame(). (LockObserver.update): Flipped if statement; handle process array. * CurrentStackView.java (StackViewListener): Set currentStackChanged to accept int parameter. (stackArray): Added. (CurrentStackView): Takes 2D array. (refreshProc): Added. Instead of dumping the TreeModel; selectively replaces rows corresponding to Proc index parameter. Adjusts model length as necessary. (buildTree): Rewritten. Now three levels of rows; Proc, Task, StackFrame. (selectRow): Updated to grab appropriate StackFrame row. (selectionChangedEvent): Updated to use new model. Ignores request if request was not a StackFrame row. * SourceView.java (drawMargin): Make sure SourceBuffer.isLineBroken() and .isLineExecutable are temporarily disabled. * SourceWindowFactory.java (createSourceWindow): Removed redundant HashMap access. (createSourceWindow): Added - Takes a Proc array. Creates a SourceWindow with multiple processes; keeps track of all processes to the SourceWindow in the HashMap. (SourceWinListener.lifeCycleQuery): Update call to RunState.removeObserver to include Proc. * StepDialog.java (model): Added. (setType): Now will update listed Tasks if the observed process has changed since last call. * ThreadSelectionDialog.java (stopTasks): Added. List of Tasks to be blocked. (grabTasks): Update stopTasks. (getStopTasks): Added. frysk-gui/frysk/gui: 2007-03-30 Mike Cvet <mcvet@redhat.com> * druid/CreateFryskSessionDruid.java (.buttonEvent): Updated to build array of selected processes to send to SourceWindowFactory, for #4214. * DisassemblyWindowFactory.java (.lifeCycleQuery): Update call to RunState.removeObserver to include observed process. * MemoryWindowFactory.java (.lifeCycleQuery): Ditto. * RegisterWindowFactory.java (.lifeCycleQuery): Ditto.