是否可以通过节点调试wasm模块?
我正在使用vscode并使用emcc -g4 --source-map-base
进行编译。将断点放在C源文件中无效。尽管可以通过Chrome的常规网页调试wasm模块,但尝试通过Chrome用node inspect
或node --inspect
进行调试也不允许我使用断点。
我正在使用nodejs v10.13。
答案 0 :(得分:1)
Firefox开发人员版(在屏幕截图中)和Chrome 71支持WebAssembly源地图。
您忘记的是,其中包括到源映射的路径。例如:
emcc -g4 --source-map-base http://localhost:8000/
使用此选项,每个源文件路径都以http://localhost:8000/
为前缀。因此,将其替换为您的源目录。
答案 1 :(得分:0)
因此,我设法使某些工作正常进行。我安装了:
并使用node --inspect
启动了节点进程,用于附加Chrome DevTools。
此外,在我的代码中,我没有一枪做一次WebAssembly.instantiate
(直接提供位码),而是分两个步骤进行:首先WebAssembly.compile
,然后是WebAssembly.instantiate
。一旦compile
被执行,DevTools中就会提供一些“ wasm”源。这是wast
文本格式的WebAssembly,可以在instantiate
执行断点之前设置断点。
但是您不能从原始的C源文件进行调试,Chrome DevTools仅显示反编译的wast。感觉就像是调试的艰难时期,但是仍然可以进行调试。