From 7dbc8051e5eec12db4d98fe658167c522c6d8275 Mon Sep 17 00:00:00 2001 From: Laguana Date: Mon, 19 Sep 2016 10:46:49 -0700 Subject: [PATCH] Fix symbolication outside of chrome debugging Summary: When debugging in VScode or nucleide using a nodejs environment rather than chrome, the JS sources are made to appear as if they exist on disk, rather than coming from a `http://` url. Prior to this change the packager would see these file paths and not know how to handle them. Since all the application JS will be part of a bundle file, we can switch out the path to the bundle on the filesystem with paths to the bundle served by the packager, and things will work just as though it was debugging in chrome. We stop the replacement once we reach an internal module (`vm.js` in the case of both nucleide and VSCode) since that is the point when the execution switches from inside the app to the surrounding debugging environment. I've verified that this fixes redbox stack trace symbolication in VSCode, and from my understanding of nucleide's debugging environment it should also work there without requiring any changes. Closes https://github.com/facebook/react-native/pull/9906 Differential Revision: D3887166 Pulled By: davidaurelio fbshipit-source-id: e3a6704f30e0fd045ad836bba51f6e20d9854c30 --- .../Initialization/symbolicateStackTrace.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Libraries/JavaScriptAppEngine/Initialization/symbolicateStackTrace.js b/Libraries/JavaScriptAppEngine/Initialization/symbolicateStackTrace.js index 122837dad3..9f68826cf5 100644 --- a/Libraries/JavaScriptAppEngine/Initialization/symbolicateStackTrace.js +++ b/Libraries/JavaScriptAppEngine/Initialization/symbolicateStackTrace.js @@ -13,6 +13,7 @@ const {fetch} = require('fetch'); const getDevServer = require('getDevServer'); +const {SourceCode} = require('NativeModules'); import type {StackFrame} from 'parseErrorStack'; @@ -21,6 +22,19 @@ async function symbolicateStackTrace(stack: Array): Promise