是否支持DART中的预定义宏

时间:2018-02-24 23:30:17

标签: dart angular-dart dart-webui

DART是否支持预定义的宏,例如:

mongod --repair

__LINE__

询问的原因是变压器DART2JS使控制台日志无效,因为所有日志都显示:js_primitives.dart:30

[更新基础]

使用变压器dart2js时,__FUNCTION__ 将导致:

print("hello world");
从函数调用

:printString(String string) 居住在图书馆dart2js._js_primitives

这导致console.log消息总是在DART代码中使用JS('void', r'console.log(#)', "hello world); 的任何地方反复包含相同的行号。 (因为console.log会自动将文件名和行号添加到驻留在dart2js._js_primitives中的包装函数的控制台显示中) 由于当前在console.log消息中添加文件名和行号的实现是无用的,如果有另一种方法允许显示其他信息,那将是很好的。

例如,print();会产生更有用的其他调试信息。

2 个答案:

答案 0 :(得分:1)

您可以使用

void main() {
  print(StackTrace.current);
}

获取有关错误来源的更好信息

DartPad example

您还可以在自定义区域中运行代码,并为该区域定义自定义打印方法。另请参阅https://api.dartlang.org/stable/1.24.3/dart-async/Zone/print.html

答案 1 :(得分:0)

似乎您要查找的是dart2js创建的源地图,其中包含从javascript位置重新创建原始dart文件中的行号所需的信息。