瀏覽代碼

Merge branch 'master' into UiTree

Borys Palka 5 年之前
父節點
當前提交
b088abe7fd
共有 3 個文件被更改,包括 12 次插入7 次删除
  1. 1 2
      src/index.ts
  2. 2 2
      src/service.ts
  3. 9 3
      src/session.ts

+ 1 - 2
src/index.ts

@@ -373,9 +373,8 @@ const main: JupyterFrontEndPlugin<IDebugger> = {
       }
     });
 
-    const category = 'Debugger';
-
     if (palette) {
+      const category = 'Debugger';
       palette.addItem({ command: CommandIDs.changeMode, category });
       palette.addItem({ command: CommandIDs.create, category });
       palette.addItem({ command: CommandIDs.start, category });

+ 2 - 2
src/service.ts

@@ -18,7 +18,7 @@ export class DebugService {
 
   private _session: DebugSession;
   private _model: Debugger.Model;
-  private frames: FrameStored[];
+  private frames: Frame[];
 
   set session(session: DebugSession) {
     this._session = session;
@@ -142,7 +142,7 @@ export class DebugService {
   };
 }
 
-export type FrameStored = {
+export type Frame = {
   id: number;
   scopes: Variables.IScope[];
 };

+ 9 - 3
src/session.ts

@@ -116,7 +116,7 @@ export class DebugSession implements IDebugger.ISession {
 
       await this.sendRequest('attach', {});
     } catch (err) {
-      console.error('Error: ', err.message);
+      console.error('Error:', err.message);
     }
   }
 
@@ -131,7 +131,7 @@ export class DebugSession implements IDebugger.ISession {
       });
       this._isStarted = false;
     } catch (err) {
-      console.error('Error: ', err.message);
+      console.error('Error:', err.message);
     }
   }
 
@@ -139,6 +139,7 @@ export class DebugSession implements IDebugger.ISession {
    * Restore the state of a debug session.
    */
   async restoreState(): Promise<void> {
+    await this.client.ready;
     try {
       const message = await this.sendRequest('debugInfo', {});
       this._isStarted = message.body.isStarted;
@@ -194,8 +195,13 @@ export class DebugSession implements IDebugger.ISession {
   private async _sendDebugMessage(
     msg: KernelMessage.IDebugRequestMsg['content']
   ): Promise<KernelMessage.IDebugReplyMsg> {
-    const reply = new PromiseDelegate<KernelMessage.IDebugReplyMsg>();
     const kernel = this.client.kernel;
+    if (!kernel) {
+      return Promise.reject(
+        new Error('A kernel is required to send debug messages.')
+      );
+    }
+    const reply = new PromiseDelegate<KernelMessage.IDebugReplyMsg>();
     const future = kernel.requestDebug(msg);
     future.onReply = (msg: KernelMessage.IDebugReplyMsg) => {
       return reply.resolve(msg);