NicolasPetton / Indium

A JavaScript development environment for Emacs
https://indium.readthedocs.io
GNU General Public License v3.0
1.13k stars 61 forks source link

`scriptPathOverrides` and/or `sourceMapPathOverrides` not working for remote nodejs project #202

Closed terlar closed 4 years ago

terlar commented 5 years ago

I am having some issues with the sourceMapPathOverrides and scriptPathOverrides, I want to connect to a debugger running a lambda in a docker container (e.g. https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html), however it seems the paths does not translate. I have the following:

      "root": "build",
      "sourceMapPathOverrides": {
        "/var/task/": "${root}/"
      },
      "scriptPathOverrides": {
        "/var/task/": "${root}/"
      }

And I see such things as:

Soucemap parsing failed for /var/task/middlewares/index.js: Invalid URL: /var/task/middlewares/index.js.map
Soucemap parsing failed for /var/task/config.js: Invalid URL: /var/task/config.js.map
Soucemap parsing failed for /var/task/logger.js: Invalid URL: /var/task/logger.js.map

Also I cannot manage to set break-points, but I guess it is due to the overrides not working.

I asked this earlier on the gitter, as I was not sure I was doing things correctly. But as I understand it I should be able to use the scriptPathOverrides for this purpose, I guess perhaps the sourceMapPathOverrides wouldn't be necessary after that, since they are relative to the folder and existing locally, next to the script files.

NicolasPetton commented 5 years ago

Can you show me the path defined for the sourcemap in the source .js file?

terlar commented 5 years ago

If I understand correctly it should be this part:

index.js:

...
//# sourceMappingURL=index.js.map

index.js.map:

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middlewares/index.ts"],"names":[],"mappings":";;AAGA,4BAA2B;AAE3B,oCAAmC;AAEnC,yCAAgD;AAChD,+CAAsD;AACtD,uDAA8D;AAC9D,6CAAoD;AACpD,yCAAgD;AAChD,yCAAgD;AAEhD,SAAgB,cAAc,CAC5B,OAAuB,EACvB,kBAAsC;IAEtC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAE7D,OAAO,CAAC,KAAU,EAAE,OAAsB,EAAE,EAAE;QAC5C,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC,CAAA;AACH,CAAC;AATD,wCASC;AAED,MAAM,UAAU,GAAG,CAAC,OAAuB,EAAkB,EAAE;IAC7D,MAAM,kBAAkB,GAAG,CAAC,oBAAU,EAAE,kBAAQ,EAAE,kBAAQ,CAAC,CAAA;IAC3D,IAAI,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;QAC/B,kBAAkB,CAAC,OAAO,CAAC,kBAAQ,CAAC,CAAA;KACrC;IACD,OAAO,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;AACpD,CAAC,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,UAAU;IACV,QAAQ,EAAR,kBAAQ;IACR,WAAW,EAAX,qBAAW;IACX,eAAe,EAAf,yBAAe;IACf,UAAU,EAAV,oBAAU;IACV,QAAQ,EAAR,kBAAQ;CACT,CAAA"}

config.js:

...
//# sourceMappingURL=config.js.map

config.js.map

{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.js"],"names":[],"mappings":"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"}

logger.js:

...
//# sourceMappingURL=logger.js.map

logger.js.map:

{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,iCAAuB;AAEvB,IAAI,MAAM,GAAG,eAAG,CAAA;AAEhB,SAAgB,UAAU,CAAC,OAAY;IACrC,MAAM,GAAG,eAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAC7B,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY;IAC1B,MAAM,GAAG,eAAG,CAAA;AACd,CAAC;AAFD,oCAEC;AAEY;;;;;;;;;;MAUP,yJAAA"}

Is this what you mean?

Thank you for looking into this, would really love to have this working :)

NicolasPetton commented 5 years ago

Yes, that 's what I meant, thank you.

You can have a look at this section of the troubleshooting page: https://indium.readthedocs.io/en/latest/troubleshooting.html#breakpoints-are-not-set-not-using-sourcemaps

Basically. once you are connected with Indium, can you do the following:

If you find something interesting (I guess the sourcemap mapping is wrong and those files won't map to files on disk), please report it here.

If you can do the same thing once more, but without the "sourceMapPathOverrides" setting in your indium config file (you will have to disconnect and reconnect indium after changing the .indium.json file), that could also help. Thanks!

terlar commented 5 years ago

Yeah, the result from indium-list-sourcemap-sources is empty.

And I only get red/unclickable paths for indium-list-script-sources:

bootstrap_node.js
events.js
util.js
internal/errors.js
internal/encoding.js
internal/util.js
internal/util/types.js
buffer.js
internal/buffer.js
internal/process.js
internal/process/warning.js
internal/process/next_tick.js
internal/async_hooks.js
internal/process/promises.js
internal/process/stdio.js
perf_hooks.js
internal/linkedlist.js
internal/trace_events_async_hooks.js
async_hooks.js
internal/inspector_async_hook.js
timers.js
assert.js
module.js
internal/module.js
internal/url.js
internal/querystring.js
querystring.js
vm.js
fs.js
path.js
stream.js
internal/streams/legacy.js
_stream_readable.js
internal/streams/BufferList.js
internal/streams/destroy.js
_stream_writable.js
_stream_duplex.js
_stream_transform.js
_stream_passthrough.js
internal/fs.js
internal/loader/Loader.js
internal/loader/ModuleWrap.js
internal/loader/ModuleMap.js
internal/loader/ModuleJob.js
internal/safe_globals.js
internal/loader/ModuleRequest.js
url.js
internal/loader/search.js
console.js
net.js
internal/net.js
dns.js
/var/runtime/node_modules/awslambda/index.js
repl.js
readline.js
string_decoder.js
internal/readline.js
domain.js
/var/runtime/node_modules/awslambda/build/Release/awslambda.js
crypto.js
internal/streams/lazy_transform.js
/var/runtime/node_modules/lodash/lodash.js
/var/task/config.js
/var/task/node_modules/convict/lib/convict.js
/var/task/node_modules/convict/node_modules/json5/lib/index.js
/var/task/node_modules/convict/node_modules/json5/lib/parse.js
/var/task/node_modules/convict/node_modules/json5/lib/util.js
/var/task/node_modules/convict/node_modules/json5/lib/unicode.js
/var/task/node_modules/convict/node_modules/json5/lib/stringify.js
/var/task/node_modules/convict/node_modules/validator/index.js
/var/task/node_modules/convict/node_modules/validator/lib/toDate.js
/var/task/node_modules/convict/node_modules/validator/lib/util/assertString.js
/var/task/node_modules/convict/node_modules/validator/lib/toFloat.js
/var/task/node_modules/convict/node_modules/validator/lib/toInt.js
/var/task/node_modules/convict/node_modules/validator/lib/toBoolean.js
/var/task/node_modules/convict/node_modules/validator/lib/equals.js
/var/task/node_modules/convict/node_modules/validator/lib/contains.js
/var/task/node_modules/convict/node_modules/validator/lib/util/toString.js
/var/task/node_modules/convict/node_modules/validator/lib/matches.js
/var/task/node_modules/convict/node_modules/validator/lib/isEmail.js
/var/task/node_modules/convict/node_modules/validator/lib/util/merge.js
/var/task/node_modules/convict/node_modules/validator/lib/isByteLength.js
/var/task/node_modules/convict/node_modules/validator/lib/isFQDN.js
/var/task/node_modules/convict/node_modules/validator/lib/isURL.js
/var/task/node_modules/convict/node_modules/validator/lib/isIP.js
/var/task/node_modules/convict/node_modules/validator/lib/isMACAddress.js
/var/task/node_modules/convict/node_modules/validator/lib/isIPRange.js
/var/task/node_modules/convict/node_modules/validator/lib/isBoolean.js
/var/task/node_modules/convict/node_modules/validator/lib/isAlpha.js
/var/task/node_modules/convict/node_modules/validator/lib/alpha.js
/var/task/node_modules/convict/node_modules/validator/lib/isAlphanumeric.js
/var/task/node_modules/convict/node_modules/validator/lib/isNumeric.js
/var/task/node_modules/convict/node_modules/validator/lib/isPort.js
/var/task/node_modules/convict/node_modules/validator/lib/isInt.js
/var/task/node_modules/convict/node_modules/validator/lib/isLowercase.js
/var/task/node_modules/convict/node_modules/validator/lib/isUppercase.js
/var/task/node_modules/convict/node_modules/validator/lib/isAscii.js
/var/task/node_modules/convict/node_modules/validator/lib/isFullWidth.js
/var/task/node_modules/convict/node_modules/validator/lib/isHalfWidth.js
/var/task/node_modules/convict/node_modules/validator/lib/isVariableWidth.js
/var/task/node_modules/convict/node_modules/validator/lib/isMultibyte.js
/var/task/node_modules/convict/node_modules/validator/lib/isSurrogatePair.js
/var/task/node_modules/convict/node_modules/validator/lib/isFloat.js
/var/task/node_modules/convict/node_modules/validator/lib/isDecimal.js
/var/task/node_modules/convict/node_modules/validator/lib/isHexadecimal.js
/var/task/node_modules/convict/node_modules/validator/lib/isDivisibleBy.js
/var/task/node_modules/convict/node_modules/validator/lib/isHexColor.js
/var/task/node_modules/convict/node_modules/validator/lib/isISRC.js
/var/task/node_modules/convict/node_modules/validator/lib/isMD5.js
/var/task/node_modules/convict/node_modules/validator/lib/isHash.js
/var/task/node_modules/convict/node_modules/validator/lib/isJSON.js
/var/task/node_modules/convict/node_modules/validator/lib/isEmpty.js
/var/task/node_modules/convict/node_modules/validator/lib/isLength.js
/var/task/node_modules/convict/node_modules/validator/lib/isUUID.js
/var/task/node_modules/convict/node_modules/validator/lib/isMongoId.js
/var/task/node_modules/convict/node_modules/validator/lib/isAfter.js
/var/task/node_modules/convict/node_modules/validator/lib/isBefore.js
/var/task/node_modules/convict/node_modules/validator/lib/isIn.js
/var/task/node_modules/convict/node_modules/validator/lib/isCreditCard.js
/var/task/node_modules/convict/node_modules/validator/lib/isISIN.js
/var/task/node_modules/convict/node_modules/validator/lib/isISBN.js
/var/task/node_modules/convict/node_modules/validator/lib/isISSN.js
/var/task/node_modules/convict/node_modules/validator/lib/isMobilePhone.js
/var/task/node_modules/convict/node_modules/validator/lib/isCurrency.js
/var/task/node_modules/convict/node_modules/validator/lib/isISO8601.js
/var/task/node_modules/convict/node_modules/validator/lib/isRFC3339.js
/var/task/node_modules/convict/node_modules/validator/lib/isISO31661Alpha2.js
/var/task/node_modules/convict/node_modules/validator/lib/isISO31661Alpha3.js
/var/task/node_modules/convict/node_modules/validator/lib/isBase64.js
/var/task/node_modules/convict/node_modules/validator/lib/isDataURI.js
/var/task/node_modules/convict/node_modules/validator/lib/isMimeType.js
/var/task/node_modules/convict/node_modules/validator/lib/isLatLong.js
/var/task/node_modules/convict/node_modules/validator/lib/isPostalCode.js
/var/task/node_modules/convict/node_modules/validator/lib/ltrim.js
/var/task/node_modules/convict/node_modules/validator/lib/rtrim.js
/var/task/node_modules/convict/node_modules/validator/lib/trim.js
/var/task/node_modules/convict/node_modules/validator/lib/escape.js
/var/task/node_modules/convict/node_modules/validator/lib/unescape.js
/var/task/node_modules/convict/node_modules/validator/lib/stripLow.js
/var/task/node_modules/convict/node_modules/validator/lib/blacklist.js
/var/task/node_modules/convict/node_modules/validator/lib/whitelist.js
/var/task/node_modules/convict/node_modules/validator/lib/isWhitelisted.js
/var/task/node_modules/convict/node_modules/validator/lib/normalizeEmail.js
/var/task/node_modules/moment/moment.js
/var/task/node_modules/yargs-parser/index.js
/var/task/node_modules/camelcase/index.js
/var/task/node_modules/yargs-parser/lib/tokenize-arg-string.js
/var/task/node_modules/lodash.clonedeep/index.js
/var/task/node_modules/depd/index.js
/var/task/node_modules/depd/lib/compat/index.js
/var/task/node_modules/validator/index.js
/var/task/node_modules/validator/lib/toDate.js
/var/task/node_modules/validator/lib/util/assertString.js
/var/task/node_modules/validator/lib/toFloat.js
/var/task/node_modules/validator/lib/toInt.js
/var/task/node_modules/validator/lib/toBoolean.js
/var/task/node_modules/validator/lib/equals.js
/var/task/node_modules/validator/lib/contains.js
/var/task/node_modules/validator/lib/util/toString.js
/var/task/node_modules/validator/lib/matches.js
/var/task/node_modules/validator/lib/isEmail.js
/var/task/node_modules/validator/lib/util/merge.js
/var/task/node_modules/validator/lib/isByteLength.js
/var/task/node_modules/validator/lib/isFQDN.js
/var/task/node_modules/validator/lib/isIP.js
/var/task/node_modules/validator/lib/isURL.js
/var/task/node_modules/validator/lib/isMACAddress.js
/var/task/node_modules/validator/lib/isIPRange.js
/var/task/node_modules/validator/lib/isBoolean.js
/var/task/node_modules/validator/lib/isAlpha.js
/var/task/node_modules/validator/lib/alpha.js
/var/task/node_modules/validator/lib/isAlphanumeric.js
/var/task/node_modules/validator/lib/isNumeric.js
/var/task/node_modules/validator/lib/isPort.js
/var/task/node_modules/validator/lib/isInt.js
/var/task/node_modules/validator/lib/isLowercase.js
/var/task/node_modules/validator/lib/isUppercase.js
/var/task/node_modules/validator/lib/isAscii.js
/var/task/node_modules/validator/lib/isFullWidth.js
/var/task/node_modules/validator/lib/isHalfWidth.js
/var/task/node_modules/validator/lib/isVariableWidth.js
/var/task/node_modules/validator/lib/isMultibyte.js
/var/task/node_modules/validator/lib/isSurrogatePair.js
/var/task/node_modules/validator/lib/isFloat.js
/var/task/node_modules/validator/lib/isDecimal.js
/var/task/node_modules/validator/lib/util/includes.js
/var/task/node_modules/validator/lib/isHexadecimal.js
/var/task/node_modules/validator/lib/isDivisibleBy.js
/var/task/node_modules/validator/lib/isHexColor.js
/var/task/node_modules/validator/lib/isISRC.js
/var/task/node_modules/validator/lib/isMD5.js
/var/task/node_modules/validator/lib/isHash.js
/var/task/node_modules/validator/lib/isJWT.js
/var/task/node_modules/validator/lib/isJSON.js
/var/task/node_modules/validator/lib/isEmpty.js
/var/task/node_modules/validator/lib/isLength.js
/var/task/node_modules/validator/lib/isUUID.js
/var/task/node_modules/validator/lib/isMongoId.js
/var/task/node_modules/validator/lib/isAfter.js
/var/task/node_modules/validator/lib/isBefore.js
/var/task/node_modules/validator/lib/isIn.js
/var/task/node_modules/validator/lib/isCreditCard.js
/var/task/node_modules/validator/lib/isIdentityCard.js
/var/task/node_modules/validator/lib/isISIN.js
/var/task/node_modules/validator/lib/isISBN.js
/var/task/node_modules/validator/lib/isISSN.js
/var/task/node_modules/validator/lib/isMobilePhone.js
/var/task/node_modules/validator/lib/isCurrency.js
/var/task/node_modules/validator/lib/isISO8601.js
/var/task/node_modules/validator/lib/isRFC3339.js
/var/task/node_modules/validator/lib/isISO31661Alpha2.js
/var/task/node_modules/validator/lib/isISO31661Alpha3.js
/var/task/node_modules/validator/lib/isBase64.js
/var/task/node_modules/validator/lib/isDataURI.js
/var/task/node_modules/validator/lib/isMagnetURI.js
/var/task/node_modules/validator/lib/isMimeType.js
/var/task/node_modules/validator/lib/isLatLong.js
/var/task/node_modules/validator/lib/isPostalCode.js
/var/task/node_modules/validator/lib/ltrim.js
/var/task/node_modules/validator/lib/rtrim.js
/var/task/node_modules/validator/lib/trim.js
/var/task/node_modules/validator/lib/escape.js
/var/task/node_modules/validator/lib/unescape.js
/var/task/node_modules/validator/lib/stripLow.js
/var/task/node_modules/validator/lib/blacklist.js
/var/task/node_modules/validator/lib/whitelist.js
/var/task/node_modules/validator/lib/isWhitelisted.js
/var/task/node_modules/validator/lib/normalizeEmail.js
/var/task/logger.js
/var/task/node_modules/roarr/dist/log.js
/var/task/node_modules/roarr/dist/factories/index.js
/var/task/node_modules/roarr/dist/factories/createLogger.js
/var/task/node_modules/roarr/node_modules/sprintf-js/src/sprintf.js
/var/task/node_modules/roarr/dist/config.js
/var/task/node_modules/boolean/dist/boolean.js
/var/task/node_modules/roarr/dist/factories/createRoarrInititialGlobalState.js
/var/task/node_modules/semver-compare/index.js
/var/task/node_modules/roarr/dist/factories/createWriter.js
/var/task/errors.js
/var/runtime/node_modules/aws-sdk/lib/aws.js
/var/runtime/node_modules/aws-sdk/lib/node_loader.js
/var/runtime/node_modules/aws-sdk/lib/util.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/streaming-create-event-stream.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/event-message-chunker-stream.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/alloc-buffer.js
/var/runtime/node_modules/aws-sdk/lib/core.js
/var/runtime/node_modules/aws-sdk/lib/protocol/json.js
/var/runtime/node_modules/aws-sdk/lib/json/builder.js
/var/runtime/node_modules/aws-sdk/lib/json/parser.js
/var/runtime/node_modules/aws-sdk/lib/protocol/query.js
/var/runtime/node_modules/aws-sdk/lib/query/query_param_serializer.js
/var/runtime/node_modules/aws-sdk/lib/model/shape.js
/var/runtime/node_modules/aws-sdk/lib/model/collection.js
/var/runtime/node_modules/aws-sdk/lib/protocol/rest.js
/var/runtime/node_modules/aws-sdk/lib/protocol/rest_json.js
/var/runtime/node_modules/aws-sdk/lib/protocol/rest_xml.js
/var/runtime/node_modules/aws-sdk/lib/xml/builder.js
/var/runtime/node_modules/aws-sdk/lib/xml/xml-node.js
/var/runtime/node_modules/aws-sdk/lib/xml/escape-attribute.js
/var/runtime/node_modules/aws-sdk/lib/xml/xml-text.js
/var/runtime/node_modules/aws-sdk/lib/xml/escape-element.js
/var/runtime/node_modules/aws-sdk/lib/model/api.js
/var/runtime/node_modules/aws-sdk/lib/model/operation.js
/var/runtime/node_modules/aws-sdk/lib/model/paginator.js
/var/runtime/node_modules/aws-sdk/lib/model/resource_waiter.js
/var/runtime/node_modules/aws-sdk/lib/api_loader.js
/var/runtime/node_modules/aws-sdk/lib/service.js
/var/runtime/node_modules/aws-sdk/lib/region_config.js
/var/runtime/node_modules/aws-sdk/lib/config.js
/var/runtime/node_modules/aws-sdk/lib/credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/credential_provider_chain.js
/var/runtime/node_modules/aws-sdk/lib/http.js
/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js
/var/runtime/node_modules/aws-sdk/lib/event_listeners.js
/var/runtime/node_modules/aws-sdk/lib/request.js
/var/runtime/node_modules/aws-sdk/lib/state_machine.js
/var/runtime/node_modules/jmespath/jmespath.js
/var/runtime/node_modules/aws-sdk/lib/response.js
/var/runtime/node_modules/aws-sdk/lib/resource_waiter.js
/var/runtime/node_modules/aws-sdk/lib/signers/request_signer.js
/var/runtime/node_modules/aws-sdk/lib/signers/v2.js
/var/runtime/node_modules/aws-sdk/lib/signers/v3.js
/var/runtime/node_modules/aws-sdk/lib/signers/v3https.js
/var/runtime/node_modules/aws-sdk/lib/signers/v4.js
/var/runtime/node_modules/aws-sdk/lib/signers/v4_credentials.js
/var/runtime/node_modules/aws-sdk/lib/signers/s3.js
/var/runtime/node_modules/aws-sdk/lib/signers/presign.js
/var/runtime/node_modules/aws-sdk/lib/param_validator.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/event-message-unmarshaller-stream.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/parse-event.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/parse-message.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/int64.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/to-buffer.js
/var/runtime/node_modules/aws-sdk/lib/event-stream/split-message.js
/var/runtime/node_modules/aws-sdk/lib/credentials/temporary_credentials.js
/var/runtime/node_modules/aws-sdk/clients/sts.js
/var/runtime/node_modules/aws-sdk/lib/services/sts.js
/var/runtime/node_modules/aws-sdk/lib/credentials/web_identity_credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js
/var/runtime/node_modules/aws-sdk/clients/cognitoidentity.js
/var/runtime/node_modules/aws-sdk/lib/services/cognitoidentity.js
/var/runtime/node_modules/aws-sdk/lib/credentials/saml_credentials.js
/var/runtime/node_modules/aws-sdk/lib/xml/node_parser.js
/var/runtime/node_modules/xml2js/lib/xml2js.js
/var/runtime/node_modules/xml2js/lib/defaults.js
/var/runtime/node_modules/xml2js/lib/builder.js
/var/runtime/node_modules/xmlbuilder/lib/index.js
/var/runtime/node_modules/xmlbuilder/lib/Utility.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDocument.js
/var/runtime/node_modules/xmlbuilder/lib/XMLNode.js
/var/runtime/node_modules/xmlbuilder/lib/XMLStringifier.js
/var/runtime/node_modules/xmlbuilder/lib/XMLStringWriter.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDeclaration.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDocType.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDTDAttList.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDTDEntity.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDTDElement.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDTDNotation.js
/var/runtime/node_modules/xmlbuilder/lib/XMLCData.js
/var/runtime/node_modules/xmlbuilder/lib/XMLComment.js
/var/runtime/node_modules/xmlbuilder/lib/XMLElement.js
/var/runtime/node_modules/xmlbuilder/lib/XMLAttribute.js
/var/runtime/node_modules/xmlbuilder/lib/XMLRaw.js
/var/runtime/node_modules/xmlbuilder/lib/XMLText.js
/var/runtime/node_modules/xmlbuilder/lib/XMLProcessingInstruction.js
/var/runtime/node_modules/xmlbuilder/lib/XMLWriterBase.js
/var/runtime/node_modules/xmlbuilder/lib/XMLDocumentCB.js
/var/runtime/node_modules/xmlbuilder/lib/XMLStreamWriter.js
/var/runtime/node_modules/xml2js/lib/parser.js
/var/runtime/node_modules/sax/lib/sax.js
/var/runtime/node_modules/xml2js/lib/bom.js
/var/runtime/node_modules/xml2js/lib/processors.js
/var/runtime/node_modules/aws-sdk/lib/http/node.js
/var/runtime/node_modules/aws-sdk/lib/credentials/ec2_metadata_credentials.js
/var/runtime/node_modules/aws-sdk/lib/metadata_service.js
/var/runtime/node_modules/aws-sdk/lib/credentials/remote_credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/ecs_credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/environment_credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/file_system_credentials.js
/var/runtime/node_modules/aws-sdk/lib/credentials/shared_ini_file_credentials.js
/var/runtime/node_modules/aws-sdk/lib/shared_ini.js
os.js
internal/os.js
/var/runtime/node_modules/aws-sdk/clients/all.js
/var/runtime/node_modules/aws-sdk/clients/acm.js
/var/runtime/node_modules/aws-sdk/clients/apigateway.js
/var/runtime/node_modules/aws-sdk/lib/services/apigateway.js
/var/runtime/node_modules/aws-sdk/clients/applicationautoscaling.js
/var/runtime/node_modules/aws-sdk/clients/appstream.js
/var/runtime/node_modules/aws-sdk/clients/autoscaling.js
/var/runtime/node_modules/aws-sdk/clients/batch.js
/var/runtime/node_modules/aws-sdk/clients/budgets.js
/var/runtime/node_modules/aws-sdk/clients/clouddirectory.js
/var/runtime/node_modules/aws-sdk/clients/cloudformation.js
/var/runtime/node_modules/aws-sdk/clients/cloudfront.js
/var/runtime/node_modules/aws-sdk/lib/services/cloudfront.js
/var/runtime/node_modules/aws-sdk/lib/cloudfront/signer.js
/var/runtime/node_modules/aws-sdk/clients/cloudhsm.js
/var/runtime/node_modules/aws-sdk/clients/cloudsearch.js
/var/runtime/node_modules/aws-sdk/clients/cloudsearchdomain.js
/var/runtime/node_modules/aws-sdk/lib/services/cloudsearchdomain.js
/var/runtime/node_modules/aws-sdk/clients/cloudtrail.js
/var/runtime/node_modules/aws-sdk/clients/cloudwatch.js
/var/runtime/node_modules/aws-sdk/clients/cloudwatchevents.js
/var/runtime/node_modules/aws-sdk/clients/cloudwatchlogs.js
/var/runtime/node_modules/aws-sdk/clients/codebuild.js
/var/runtime/node_modules/aws-sdk/clients/codecommit.js
/var/runtime/node_modules/aws-sdk/clients/codedeploy.js
/var/runtime/node_modules/aws-sdk/clients/codepipeline.js
/var/runtime/node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js
/var/runtime/node_modules/aws-sdk/clients/cognitosync.js
/var/runtime/node_modules/aws-sdk/clients/configservice.js
/var/runtime/node_modules/aws-sdk/clients/cur.js
/var/runtime/node_modules/aws-sdk/clients/datapipeline.js
/var/runtime/node_modules/aws-sdk/clients/devicefarm.js
/var/runtime/node_modules/aws-sdk/clients/directconnect.js
/var/runtime/node_modules/aws-sdk/clients/directoryservice.js
/var/runtime/node_modules/aws-sdk/clients/discovery.js
/var/runtime/node_modules/aws-sdk/clients/dms.js
/var/runtime/node_modules/aws-sdk/clients/dynamodb.js
/var/runtime/node_modules/aws-sdk/lib/services/dynamodb.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/document_client.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/translator.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/converter.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/types.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/set.js
/var/runtime/node_modules/aws-sdk/lib/dynamodb/numberValue.js
/var/runtime/node_modules/aws-sdk/clients/dynamodbstreams.js
/var/runtime/node_modules/aws-sdk/clients/ec2.js
/var/runtime/node_modules/aws-sdk/lib/services/ec2.js
/var/runtime/node_modules/aws-sdk/clients/ecr.js
/var/runtime/node_modules/aws-sdk/clients/ecs.js
/var/runtime/node_modules/aws-sdk/clients/efs.js
/var/runtime/node_modules/aws-sdk/clients/elasticache.js
/var/runtime/node_modules/aws-sdk/clients/elasticbeanstalk.js
/var/runtime/node_modules/aws-sdk/clients/elb.js
/var/runtime/node_modules/aws-sdk/clients/elbv2.js
/var/runtime/node_modules/aws-sdk/clients/emr.js
/var/runtime/node_modules/aws-sdk/clients/es.js
/var/runtime/node_modules/aws-sdk/clients/elastictranscoder.js
/var/runtime/node_modules/aws-sdk/clients/firehose.js
/var/runtime/node_modules/aws-sdk/clients/gamelift.js
/var/runtime/node_modules/aws-sdk/clients/glacier.js
/var/runtime/node_modules/aws-sdk/lib/services/glacier.js
/var/runtime/node_modules/aws-sdk/clients/health.js
/var/runtime/node_modules/aws-sdk/clients/iam.js
/var/runtime/node_modules/aws-sdk/clients/importexport.js
/var/runtime/node_modules/aws-sdk/clients/inspector.js
/var/runtime/node_modules/aws-sdk/clients/iot.js
/var/runtime/node_modules/aws-sdk/clients/iotdata.js
/var/runtime/node_modules/aws-sdk/lib/services/iotdata.js
/var/runtime/node_modules/aws-sdk/clients/kinesis.js
/var/runtime/node_modules/aws-sdk/clients/kinesisanalytics.js
/var/runtime/node_modules/aws-sdk/clients/kms.js
/var/runtime/node_modules/aws-sdk/clients/lambda.js
/var/runtime/node_modules/aws-sdk/lib/services/lambda.js
/var/runtime/node_modules/aws-sdk/clients/lexruntime.js
/var/runtime/node_modules/aws-sdk/clients/lightsail.js
/var/runtime/node_modules/aws-sdk/clients/machinelearning.js
/var/runtime/node_modules/aws-sdk/lib/services/machinelearning.js
/var/runtime/node_modules/aws-sdk/clients/marketplacecommerceanalytics.js
/var/runtime/node_modules/aws-sdk/clients/marketplacemetering.js
/var/runtime/node_modules/aws-sdk/clients/mturk.js
/var/runtime/node_modules/aws-sdk/clients/mobileanalytics.js
/var/runtime/node_modules/aws-sdk/clients/opsworks.js
/var/runtime/node_modules/aws-sdk/clients/opsworkscm.js
/var/runtime/node_modules/aws-sdk/clients/organizations.js
/var/runtime/node_modules/aws-sdk/clients/pinpoint.js
/var/runtime/node_modules/aws-sdk/clients/polly.js
/var/runtime/node_modules/aws-sdk/lib/services/polly.js
/var/runtime/node_modules/aws-sdk/lib/polly/presigner.js
/var/runtime/node_modules/aws-sdk/clients/rds.js
/var/runtime/node_modules/aws-sdk/lib/services/rds.js
/var/runtime/node_modules/aws-sdk/lib/rds/signer.js
/var/runtime/node_modules/aws-sdk/clients/redshift.js
/var/runtime/node_modules/aws-sdk/clients/rekognition.js
/var/runtime/node_modules/aws-sdk/clients/resourcegroupstaggingapi.js
/var/runtime/node_modules/aws-sdk/clients/route53.js
/var/runtime/node_modules/aws-sdk/lib/services/route53.js
/var/runtime/node_modules/aws-sdk/clients/route53domains.js
/var/runtime/node_modules/aws-sdk/clients/s3.js
/var/runtime/node_modules/aws-sdk/lib/services/s3.js
/var/runtime/node_modules/aws-sdk/lib/s3/managed_upload.js
/var/runtime/node_modules/aws-sdk/clients/servicecatalog.js
/var/runtime/node_modules/aws-sdk/clients/ses.js
/var/runtime/node_modules/aws-sdk/clients/shield.js
/var/runtime/node_modules/aws-sdk/clients/simpledb.js
/var/runtime/node_modules/aws-sdk/clients/sms.js
/var/runtime/node_modules/aws-sdk/clients/snowball.js
/var/runtime/node_modules/aws-sdk/clients/sns.js
/var/runtime/node_modules/aws-sdk/clients/sqs.js
/var/runtime/node_modules/aws-sdk/lib/services/sqs.js
/var/runtime/node_modules/aws-sdk/clients/ssm.js
/var/runtime/node_modules/aws-sdk/clients/storagegateway.js
/var/runtime/node_modules/aws-sdk/clients/stepfunctions.js
/var/runtime/node_modules/aws-sdk/clients/support.js
/var/runtime/node_modules/aws-sdk/clients/swf.js
/var/runtime/node_modules/aws-sdk/lib/services/swf.js
/var/runtime/node_modules/aws-sdk/clients/xray.js
/var/runtime/node_modules/aws-sdk/clients/waf.js
/var/runtime/node_modules/aws-sdk/clients/wafregional.js
/var/runtime/node_modules/aws-sdk/clients/workdocs.js
/var/runtime/node_modules/aws-sdk/clients/workspaces.js
/var/runtime/node_modules/aws-sdk/clients/codestar.js
/var/runtime/node_modules/aws-sdk/clients/lexmodelbuildingservice.js
/var/runtime/node_modules/aws-sdk/clients/marketplaceentitlementservice.js
/var/runtime/node_modules/aws-sdk/clients/athena.js
/var/runtime/node_modules/aws-sdk/clients/greengrass.js
/var/runtime/node_modules/aws-sdk/clients/dax.js
/var/runtime/node_modules/aws-sdk/clients/migrationhub.js
/var/runtime/node_modules/aws-sdk/clients/cloudhsmv2.js
/var/runtime/node_modules/aws-sdk/clients/glue.js
/var/runtime/node_modules/aws-sdk/clients/mobile.js
/var/runtime/node_modules/aws-sdk/clients/pricing.js
/var/runtime/node_modules/aws-sdk/clients/costexplorer.js
/var/runtime/node_modules/aws-sdk/clients/mediaconvert.js
/var/runtime/node_modules/aws-sdk/clients/medialive.js
/var/runtime/node_modules/aws-sdk/clients/mediapackage.js
/var/runtime/node_modules/aws-sdk/clients/mediastore.js
/var/runtime/node_modules/aws-sdk/clients/mediastoredata.js
/var/runtime/node_modules/aws-sdk/clients/appsync.js
/var/runtime/node_modules/aws-sdk/clients/guardduty.js
/var/runtime/node_modules/aws-sdk/clients/mq.js
/var/runtime/node_modules/aws-sdk/clients/comprehend.js
/var/runtime/node_modules/aws-sdk/clients/iotjobsdataplane.js
/var/runtime/node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js
/var/runtime/node_modules/aws-sdk/clients/kinesisvideomedia.js
/var/runtime/node_modules/aws-sdk/clients/kinesisvideo.js
/var/runtime/node_modules/aws-sdk/clients/sagemakerruntime.js
/var/runtime/node_modules/aws-sdk/clients/sagemaker.js
/var/runtime/node_modules/aws-sdk/clients/translate.js
/var/runtime/node_modules/aws-sdk/clients/resourcegroups.js
/var/runtime/node_modules/aws-sdk/clients/alexaforbusiness.js
/var/runtime/node_modules/aws-sdk/clients/cloud9.js
/var/runtime/node_modules/aws-sdk/clients/serverlessapplicationrepository.js
/var/runtime/node_modules/aws-sdk/clients/servicediscovery.js
/var/runtime/node_modules/aws-sdk/clients/workmail.js
/var/runtime/node_modules/aws-sdk/clients/autoscalingplans.js
/var/runtime/node_modules/aws-sdk/clients/transcribeservice.js
/var/runtime/node_modules/aws-sdk/clients/connect.js
/var/runtime/node_modules/aws-sdk/clients/acmpca.js
/var/runtime/node_modules/aws-sdk/clients/fms.js
/var/runtime/node_modules/aws-sdk/clients/secretsmanager.js
/var/runtime/node_modules/aws-sdk/clients/iotanalytics.js
/var/runtime/node_modules/aws-sdk/clients/iot1clickdevicesservice.js
/var/runtime/node_modules/aws-sdk/clients/iot1clickprojects.js
/var/runtime/node_modules/aws-sdk/clients/pi.js
/var/runtime/node_modules/aws-sdk/clients/neptune.js
/var/runtime/node_modules/aws-sdk/clients/mediatailor.js
/var/runtime/node_modules/aws-sdk/clients/eks.js
/var/runtime/node_modules/aws-sdk/clients/macie.js
/var/runtime/node_modules/aws-sdk/clients/dlm.js
/var/task/node_modules/uuid/index.js
/var/task/node_modules/uuid/v1.js
/var/task/node_modules/uuid/lib/rng.js
/var/task/node_modules/uuid/lib/bytesToUuid.js
/var/task/node_modules/uuid/v4.js
http.js
_http_agent.js
_http_client.js
_http_common.js
internal/freelist.js
internal/http.js
_http_incoming.js
_http_outgoing.js
_http_server.js

Same output without sourceMapPathOverrides.

I will see if I can provide a small working dockerized version of this setup with sam local so you could try, or if you have further things I could try out.

NicolasPetton commented 5 years ago

A small docker example would be great! It's going to be hard to debug otherwise.

Otherwise, you can ping me on Gitter and we can try to debug it together.

terlar commented 5 years ago

Thank you, I'd like that. I created a dummy project, not with typescript yet. But you could have a look at it, or wait for a week and I can complete it and provide more feedback.

You can find it here: https://github.com/terlar/sam-playground

If you have docker-compose, you should be able to run:

bin/start-api -d 5858

and then:

bin/http tools:3000/hello

Then you can connect indium to the debugger, with the api connection specified under sam-app/.indium.json

In this case the only file is /var/task/app.js which doesn't get a translated path.

Sorry for the rushed info, will be able to provide more info later. Thanks.

NicolasPetton commented 5 years ago

Terje Larsen notifications@github.com writes:

Thank you, I'd like that. I created a dummy project, not with typescript yet. But you could have a look at it, or wait for a week and I can complete it and provide more feedback.

Thank you. I'll see what I can do with this already :-)

terlar commented 5 years ago

Hello again, and sorry for the big delay. I was a bit busy when I came back and then I forgot about it. I now spent some time to update the repo, this time a simpler case without TypeScript so only need to look at the script paths.

Having docker + docker-compose installed, I run the following:

  1. bin/invoke -d 5858 -e event.json HelloWorldFunction
  2. Invoke indium-connect from the project.
  3. Observe the message Debugger attached.
  4. Listing the paths don't show the expected app/hello-world/app.js. However the step through debugging is working, but it goes through the wrapper code and the context being sent.

I have the following config:

{
  "configurations": [
    {
      "name": "hello-world",
      "type": "node",
      "port": 5858,
      "root": "app/hello-world",
      "scriptPathOverrides": {
        "/var/task/(.*)": "$1"
      }
    }
  ]
}

I also provided working configuration for vscode, which I tried just to ensure it should be working. Any idea which functions I should debug to try to figure this out? At this point, I am not even sure if the regexp replace is working, or why I don't see the app.js in the list of files with or without the path prefix.

deviantfero commented 4 years ago

I'm also having this issue, was anyone able to resolve this?

NicolasPetton commented 4 years ago

@deviantfero I'm working on a fix!

deviantfero commented 4 years ago

Thanks, this means a lot

On Sat, Oct 5, 2019, 2:22 PM Nicolas Petton notifications@github.com wrote:

@deviantfero https://github.com/deviantfero I'm working on a fix!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NicolasPetton/Indium/issues/202?email_source=notifications&email_token=ACVCGSP75K7P5PPG6VGCK43QNDZP7A5CNFSM4G4536B2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEAN3AWY#issuecomment-538685531, or mute the thread https://github.com/notifications/unsubscribe-auth/ACVCGSOLXZJ6DANBATW7PMDQNDZP7ANCNFSM4G4536BQ .

NicolasPetton commented 4 years ago

I found out the reason: The scriptPahtRegexpOverrides only works one way for path transformation.

We need something else in this case, and I think I'll introduce a config option similar to remoteRoot.

deviantfero commented 4 years ago

great, I was wondering if anything had come up, thanks for the update, looking forward to the fix!

NicolasPetton commented 4 years ago

The latest commit from master has support for remoteRoot!

With the following .indium.json file

{
  "configurations": [
    {
      "name": "hello-world",
      "type": "node",
      "port": 5858,
      "root": "app/hello-world",
      "remoteRoot": "/var/task"
    }
  ]
}

I can successfully set a breakpoint and debug using local files :)

You'll have to wait for the next MELPA build if you're using MELPA.

NicolasPetton commented 4 years ago

It's also documented here https://indium.readthedocs.io/en/latest/debugger.html#setting-a-different-remote-root-nodejs

deviantfero commented 4 years ago

Thank you so much, this is gonna make debugging a breeze! any clue on how often this melpa builds happen?

NicolasPetton commented 4 years ago

It's built already.

You will also want to update the NodeJS package to v5.0.0 https://www.npmjs.com/package/indium

deviantfero commented 4 years ago

great, I was on vacation so I did not have the chance to test it out, will do today!

thank you for this awesome project

NicolasPetton commented 4 years ago

You're welcome!