Skip to content

Commit 9792799

Browse files
authored
Fix debug console after restarting session (microsoft#192911)
* Don't add global DebugSession listeners to rawListeners, which are disposed when a DebugSession is restarted Fix microsoft#192653 * Fix failing unit test Now we don't dispose some listeners in DebugSession, this is by design * Fix failing unit tests
1 parent 2db1f3b commit 9792799

File tree

7 files changed

+6
-21
lines changed

7 files changed

+6
-21
lines changed

src/vs/workbench/contrib/debug/browser/debugSession.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cance
1010
import { canceled } from 'vs/base/common/errors';
1111
import { Emitter, Event } from 'vs/base/common/event';
1212
import { normalizeDriveLetter } from 'vs/base/common/labels';
13-
import { DisposableStore, IDisposable, MutableDisposable } from 'vs/base/common/lifecycle';
13+
import { DisposableStore, IDisposable, MutableDisposable, dispose } from 'vs/base/common/lifecycle';
1414
import { mixin } from 'vs/base/common/objects';
1515
import * as platform from 'vs/base/common/platform';
1616
import * as resources from 'vs/base/common/resources';
@@ -103,11 +103,14 @@ export class DebugSession implements IDebugSession, IDisposable {
103103
this.repl = (this.parentSession as DebugSession).repl;
104104
}
105105

106-
const toDispose = this.rawListeners.add(new DisposableStore());
106+
const toDispose = new DisposableStore();
107107
const replListener = toDispose.add(new MutableDisposable());
108108
replListener.value = this.repl.onDidChangeElements(() => this._onDidChangeREPLElements.fire());
109109
if (lifecycleService) {
110-
toDispose.add(lifecycleService.onWillShutdown(() => this.shutdown()));
110+
toDispose.add(lifecycleService.onWillShutdown(() => {
111+
this.shutdown();
112+
dispose(toDispose);
113+
}));
111114
}
112115

113116
const compoundRoot = this._options.compoundRoot;

src/vs/workbench/contrib/debug/test/browser/baseDebugView.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import * as dom from 'vs/base/browser/dom';
88
import { HighlightedLabel } from 'vs/base/browser/ui/highlightedlabel/highlightedLabel';
99
import { DisposableStore } from 'vs/base/common/lifecycle';
1010
import { isWindows } from 'vs/base/common/platform';
11-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1211
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
1312
import { renderExpressionValue, renderVariable, renderViewTree } from 'vs/workbench/contrib/debug/browser/baseDebugView';
1413
import { LinkDetector } from 'vs/workbench/contrib/debug/browser/linkDetector';
@@ -38,8 +37,6 @@ suite('Debug - Base Debug View', () => {
3837
disposables.dispose();
3938
});
4039

41-
ensureNoDisposablesAreLeakedInTestSuite();
42-
4340
test('render view tree', () => {
4441
const container = $('.container');
4542
const treeContainer = renderViewTree(container);

src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import * as assert from 'assert';
77
import { MarkdownString } from 'vs/base/common/htmlContent';
88
import { DisposableStore, dispose } from 'vs/base/common/lifecycle';
99
import { URI as uri } from 'vs/base/common/uri';
10-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1110
import { Range } from 'vs/editor/common/core/range';
1211
import { ILanguageService } from 'vs/editor/common/languages/language';
1312
import { OverviewRulerLane } from 'vs/editor/common/model';
@@ -59,8 +58,6 @@ suite('Debug - Breakpoints', () => {
5958
disposables.dispose();
6059
});
6160

62-
ensureNoDisposablesAreLeakedInTestSuite();
63-
6461
// Breakpoints
6562

6663
test('simple', () => {

src/vs/workbench/contrib/debug/test/browser/callStack.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { DisposableStore } from 'vs/base/common/lifecycle';
99
import { ThemeIcon } from 'vs/base/common/themables';
1010
import { Constants } from 'vs/base/common/uint';
1111
import { generateUuid } from 'vs/base/common/uuid';
12-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1312
import { Range } from 'vs/editor/common/core/range';
1413
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
1514
import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock';
@@ -85,8 +84,6 @@ suite('Debug - CallStack', () => {
8584
sinon.restore();
8685
});
8786

88-
ensureNoDisposablesAreLeakedInTestSuite();
89-
9087
// Threads
9188

9289
test('threads simple', () => {

src/vs/workbench/contrib/debug/test/browser/debugHover.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import * as assert from 'assert';
77
import { DisposableStore } from 'vs/base/common/lifecycle';
8-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
98
import { NullLogService } from 'vs/platform/log/common/log';
109
import { findExpressionInStackFrame } from 'vs/workbench/contrib/debug/browser/debugHover';
1110
import type { IExpression, IScope } from 'vs/workbench/contrib/debug/common/debug';
@@ -24,8 +23,6 @@ suite('Debug - Hover', () => {
2423
disposables.dispose();
2524
});
2625

27-
ensureNoDisposablesAreLeakedInTestSuite();
28-
2926
test('find expression in stack frame', async () => {
3027
const model = createMockDebugModel(disposables);
3128
const session = disposables.add(createTestSession(model));

src/vs/workbench/contrib/debug/test/browser/repl.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { TreeVisibility } from 'vs/base/browser/ui/tree/tree';
99
import { timeout } from 'vs/base/common/async';
1010
import { DisposableStore } from 'vs/base/common/lifecycle';
1111
import severity from 'vs/base/common/severity';
12-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1312
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
1413
import { RawDebugSession } from 'vs/workbench/contrib/debug/browser/rawDebugSession';
1514
import { ReplFilter } from 'vs/workbench/contrib/debug/browser/replFilter';
@@ -36,8 +35,6 @@ suite('Debug - REPL', () => {
3635
disposables.dispose();
3736
});
3837

39-
ensureNoDisposablesAreLeakedInTestSuite();
40-
4138
test('repl output', () => {
4239
const session = disposables.add(createTestSession(model));
4340
const repl = new ReplModel(configurationService);

src/vs/workbench/contrib/debug/test/common/debugModel.test.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,12 @@ import * as assert from 'assert';
77
import { DeferredPromise } from 'vs/base/common/async';
88
import { DisposableStore } from 'vs/base/common/lifecycle';
99
import { mockObject } from 'vs/base/test/common/mock';
10-
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
1110
import { NullLogService } from 'vs/platform/log/common/log';
1211
import { DebugModel, ExceptionBreakpoint, FunctionBreakpoint, Thread } from 'vs/workbench/contrib/debug/common/debugModel';
1312
import { MockDebugStorage } from 'vs/workbench/contrib/debug/test/common/mockDebug';
1413
import { TestStorageService } from 'vs/workbench/test/common/workbenchTestServices';
1514

1615
suite('DebugModel', () => {
17-
ensureNoDisposablesAreLeakedInTestSuite();
18-
1916
suite('FunctionBreakpoint', () => {
2017
test('Id is saved', () => {
2118
const fbp = new FunctionBreakpoint('function', true, 'hit condition', 'condition', 'log message');

0 commit comments

Comments
 (0)