如何在使用clang到wasm进行编译时保留变量名



clang成功地发出了一个包含函数名的wasm自定义名称部分(当使用-g选项编译时(,但我发现没有办法同时发出未优化代码的参数名和变量名。有没有这样的选择,或者开放的门票来保持这一功能的进展?

更新,因为我还不能评论:

wasm名称部分足够丰富,可以对这些信息进行编码:
https://webassembly.github.io/spec/core/appendix/custom.html?highlight=local

局部变量(参数和变量(甚至被Chrome调试器成功解析(可以通过wat2wasm进行测试(,只是clang没有发出。

;太长,读不下去了名称部分不够丰富,无法对这些信息进行编码。

当clang编译到WebAssembly时,源语言中的变量与WebAssembly结构(如局部和全局(不直接对应(至少不一致(。目前实现这一点的唯一方法是通过clang发出的DWARF信息(如果使用emscripten构建,则可以使用-g3来获得DWARF输出(。了解这些调试信息的工具生态系统仍在增长,但chrome最近宣布支持使用它:https://developers.google.com/web/updates/2019/12/webassembly

最新更新