DART是否支持预定义的宏,例如:
__LINE__或
__FUNCTION__询问的原因是,转换器DART2JS使控制台日志变得无用,因为所有日志都显示为: js_primitives.dart:30
更新BasE
当使用转换器dart2js时,print("hello world");将导致:
JS('void', r'console.log(#)', "hello world);从函数调用:驻留在库dart2js._js_primitives中的printString(字符串
这导致在DART代码中使用print();时,console.log消息总是反复包含相同的行号。(因为console.log将自动将文件名和行号添加到驻留在dart2js._js_primitives中的包装器函数的控制台显示中)由于当前向console.log消息添加文件名和行号的实现是无用的,如果有另一种方法来允许显示额外的信息,那就太好了。
例如,print("hello world" __FUNCTION__ __LINE__);会产生更有用的额外调试信息。
发布于 2018-02-25 22:32:16
你可以使用
void main() {
print(StackTrace.current);
}获取有关错误来源的更好信息
您还可以在自定义区域中运行代码,并为该区域定义自定义打印方法。另请参阅https://api.dartlang.org/stable/1.24.3/dart-async/Zone/print.html
发布于 2018-02-26 01:25:16
您正在寻找的似乎是dart2js创建的源图,其中包含从javascript位置重新创建原始dart文件中的行号所需的信息。
https://stackoverflow.com/questions/48968722
复制相似问题