This is an automated email from the ASF dual-hosted git repository.

rabbah pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwhisk-wskdebug.git


The following commit(s) were added to refs/heads/master by this push:
     new be62591  wskdebug does not work with new vs code debugger #74 (#76)
be62591 is described below

commit be6259136a27fe62d8608bffd91b33ff1b917fc3
Author: Alexander Klimetschek <[email protected]>
AuthorDate: Wed Jul 22 08:26:24 2020 -0700

    wskdebug does not work with new vs code debugger #74 (#76)
    
    - detect problematic case and print big warning and help
    - document in readme
---
 README.md       | 26 ++++++++++++++++++++++++++
 src/debugger.js | 16 ++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/README.md b/README.md
index ff344fc..b43f064 100644
--- a/README.md
+++ b/README.md
@@ -122,6 +122,16 @@ The action to debug (e.g. `myaction`) must already be 
deployed.
 <a name="nodejs-visual-studio-code"></a>
 ### Node.js: Visual Studio Code
 
+> ⚠️ **VS Code June 2020 release (version 1.47) breaks wskdebug**
+>
+> Breakpoints will not hit because it debugs the wskdebug process instead of 
the action.
+>
+> Workaround: set `"debug.javascript.usePreview": false` in your VS Code 
`settings.json`.
+>
+> A better solution will come with a new VS Code update and wskdebug 1.3.0.
+>
+> More details in [issue 
#74](https://github.com/apache/openwhisk-wskdebug/issues/74).
+
 Add the configuration below to your 
[launch.json](https://code.visualstudio.com/docs/editor/debugging#_launch-configurations).
 Replace `MYACTION` with the name of your action and `ACTION.js` with the 
source file containing the action. When you run this, it will start wskdebug 
and should automatically connect the debugger.
 
 ```json
@@ -525,6 +535,22 @@ Options:
 <a name="troubleshooting"></a>
 ## Troubleshooting
 
+### Debugger in VS Code does not hit breakpoints
+
+If you use VS Code June 2020 release (version 1.47) it breaks wskdebug due to 
the new Javascript debugger implementation it includes. Breakpoints will not 
hit because it debugs the wskdebug process instead of the action.
+
+#### Workaround
+
+Tell VS Code to use the old debugger. In your VS Code `settings.json` set:
+
+```
+"debug.javascript.usePreview": false
+```
+
+A better solution will come with a new VS Code update and wskdebug 1.3.0.
+
+More details in [issue 
#74](https://github.com/apache/openwhisk-wskdebug/issues/74).
+
 ### Cannot install  - EACCES: permission denied, access 
'/usr/local/lib/node_modules
 
 If you get an error during `npm install -g @openwhisk/wskdebug` like this:
diff --git a/src/debugger.js b/src/debugger.js
index 40a829a..2f945e8 100644
--- a/src/debugger.js
+++ b/src/debugger.js
@@ -27,6 +27,7 @@ const sleep = require('util').promisify(setTimeout);
 const prettyBytes = require('pretty-bytes');
 const prettyMilliseconds = require('pretty-ms');
 const log = require('./log');
+const inspector = require('inspector');
 
 function prettyMBytes1024(mb) {
     if (mb > 1024) {
@@ -50,6 +51,21 @@ class Debugger {
         this.startTime = Date.now();
         log.debug("starting debugger");
 
+        // see if our process is debugged, which might not be desired
+        if (inspector.url()) {
+            log.warn(`
++------------------------------------------------------------------------------------------+
+| WARNING: wskdebug itself is debugged and likely NOT the action               
            |
+|                                                                              
            |
+| This could be an issue with the debug setup. Notably, VS Code changed their 
debugger     |
+| implementation in June/July 2020 requiring changes to launch.json. For more 
see:         |
+|                                                                              
            |
+|     https://github.com/apache/openwhisk-wskdebug/issues/74                   
            |
+|                                                                              
            |
++------------------------------------------------------------------------------------------+
+            `);
+        }
+
         this.argv = argv;
         this.actionName = argv.action;
 

Reply via email to