未验证 提交 33027a23 编写于 作者: A Alex Dima

Log an error with the active extensions when the extension host crashes

上级 03cd68f8
...@@ -41,6 +41,7 @@ import { WebWorkerExtensionHost } from 'vs/workbench/services/extensions/browser ...@@ -41,6 +41,7 @@ import { WebWorkerExtensionHost } from 'vs/workbench/services/extensions/browser
import { IExtensionActivationHost as IWorkspaceContainsActivationHost, checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vs/workbench/api/common/shared/workspaceContains'; import { IExtensionActivationHost as IWorkspaceContainsActivationHost, checkGlobFileExists, checkActivateWorkspaceContainsExtension } from 'vs/workbench/api/common/shared/workspaceContains';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { exists } from 'vs/base/node/pfs'; import { exists } from 'vs/base/node/pfs';
import { ILogService } from 'vs/platform/log/common/log';
class DeltaExtensionsQueueItem { class DeltaExtensionsQueueItem {
constructor( constructor(
...@@ -76,6 +77,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten ...@@ -76,6 +77,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten
@IRemoteExplorerService private readonly _remoteExplorerService: IRemoteExplorerService, @IRemoteExplorerService private readonly _remoteExplorerService: IRemoteExplorerService,
@IExtensionGalleryService private readonly _extensionGalleryService: IExtensionGalleryService, @IExtensionGalleryService private readonly _extensionGalleryService: IExtensionGalleryService,
@IWorkspaceContextService private readonly _contextService: IWorkspaceContextService, @IWorkspaceContextService private readonly _contextService: IWorkspaceContextService,
@ILogService private readonly _logService: ILogService,
) { ) {
super( super(
instantiationService, instantiationService,
...@@ -431,6 +433,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten ...@@ -431,6 +433,7 @@ export class ExtensionService extends AbstractExtensionService implements IExten
} }
protected _onExtensionHostCrashed(extensionHost: ExtensionHostManager, code: number, signal: string | null): void { protected _onExtensionHostCrashed(extensionHost: ExtensionHostManager, code: number, signal: string | null): void {
const activatedExtensions = Array.from(this._extensionHostActiveExtensions.values());
super._onExtensionHostCrashed(extensionHost, code, signal); super._onExtensionHostCrashed(extensionHost, code, signal);
if (extensionHost.kind === ExtensionHostKind.LocalProcess) { if (extensionHost.kind === ExtensionHostKind.LocalProcess) {
...@@ -451,6 +454,9 @@ export class ExtensionService extends AbstractExtensionService implements IExten ...@@ -451,6 +454,9 @@ export class ExtensionService extends AbstractExtensionService implements IExten
return; return;
} }
const message = `Extension host terminated unexpectedly. The following extensions were running: ${activatedExtensions.map(id => id.value).join(', ')}`;
this._logService.error(message);
this._notificationService.prompt(Severity.Error, nls.localize('extensionService.crash', "Extension host terminated unexpectedly."), this._notificationService.prompt(Severity.Error, nls.localize('extensionService.crash', "Extension host terminated unexpectedly."),
[{ [{
label: nls.localize('devTools', "Open Developer Tools"), label: nls.localize('devTools', "Open Developer Tools"),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册