dart-lang / webdev

A CLI for Dart web development.
https://pub.dev/packages/webdev
212 stars 75 forks source link

On object drilldown, closures appear to infinitely self nest #1252

Open vsmenon opened 3 years ago

vsmenon commented 3 years ago

Screen Shot 2021-02-15 at 7 18 46 PM

This is while drilling down on parent.state._loadedCreator. Hovering over _loadedCreater and each Closure shows the same function.

Flutter version:

> flutter --version
Flutter 1.26.0-17.5.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision 1fe38dcb5f (5 days ago) • 2021-02-10 16:25:47 -0800
Engine • revision d4453f6018
Tools • Dart 2.12.0 (build 2.12.0-259.9.beta)
annagrin commented 3 years ago

Still happening. Logs, staring from the pause:


[12:07:58 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","method":"streamNotify","params":{"streamId":"Debug","event":{"type":"Event","kind":"PauseBreakpoint","timestamp":1629486478313,"isolate":{"type":"@Isolate","id":"1","number":"1","name":"main()","isSystemIsolate":false},"pauseBreakpoints":[{"type":"Breakpoint","id":"bp/3#12","breakpointNumber":390,"enabled":true,"resolved":true,"location":{"type":"SourceLocation","script":{"type":"@Script","id":"3","uri":"package:hello_world/main.dart"},"tokenPos":75382}}],"topFrame":{"type":"Frame","index":0,"code":{"type":"@Code","id":"391","name":"main$","kind":"Dart"},"location":{"type":"SourceLocation","script":{"type":"@Script","id":"3","uri":"package:hello_world/main.dart"},"tokenPos":75382},"vars":[{"type":"BoundVariable","name":"foo","value":{"type":"@Instance","id":"4857249080999747968.1.63","kind":"Closure","identityHashCode":70988293,"class":{"type":"@Class","id":"classes|dart:core|Closure","name":"Closure","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"closureFunction":{"type":"@Function","id":"392","name":"Closure","owner":{"type":"@Class","id":"classes|dart:core|Unknown","name":"Unknown","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"static":false,"const":false,"implicit":false},"closureContext":{"type":"@Context","id":"393","length":0}},"declarationTokenPos":-1,"scopeStartTokenPos":-1,"scopeEndTokenPos":-1}],"kind":"Regular"}}}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":250,"type":"event","event":"stopped","body":{"reason":"breakpoint","threadId":0}}
[12:07:58 PM] [DAP] [Info] <== {"command":"threads","type":"request","seq":12}
[12:07:58 PM] [DAP] [Info] ==> {"seq":251,"type":"response","request_seq":12,"command":"threads","success":true,"body":{"threads":[{"id":0,"name":"main()"}]}}
[12:07:58 PM] [DAP] [Info] <== {"command":"stackTrace","arguments":{"threadId":0,"startFrame":0,"levels":1},"type":"request","seq":13}
[12:07:58 PM] [DAP] [Info] ==> {"seq":252,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"17\",\"jsonrpc\":\"2.0\",\"method\":\"getObject\",\"params\":{\"isolateId\":\"1\",\"objectId\":\"3\"}}\n","severity":0,"category":10}}
[12:07:58 PM] [VmService] [Info] [web-myproject] ==> {"id":"17","jsonrpc":"2.0","method":"getObject","params":{"isolateId":"1","objectId":"3"}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":253,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Script\",\"id\":\"3\",\"uri\":\"package:hello_world/main.dart\",\"library\":{\"type\":\"@Library\",\"id\":\"package:hello_world/main.dart\",\"name\":\"package:hello_world/main.dart\",\"uri\":\"package:hello_world/main.dart\"},\"source\":\"// Copyright 2014 The Flutter Authors. All rights reserved.\\n// Use of this source code is governed by a BSD-style license that can be\\n// found in the LICENSE file.\\n\\nimport 'package:flutter/widgets.dart';\\n\\n\\n\\nvoid main() {\\n  var foo = () => print('blah');\\n  // throw Exception('blah');\\n  runApp(\\n    const Center(\\n      child:\\n        Text('Hello, world!',\\n          key: Key('title'),\\n          textDirection: TextDirection.ltr,\\n        ),\\n      ),\\n    );\\n}\",\"tokenPosTable\":[[10,75377,7,75378,13,75379,19,75380,25],[20,75381,6],[12,75382,3],[21,75383,1]]},\"id\":\"17\"}\n","severity":0,"category":10}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":254,"type":"response","request_seq":13,"command":"stackTrace","success":true,"body":{"stackFrames":[{"id":1,"source":{"name":"package:hello_world/main.dart","path":"/Users/annagrin/source/flutter/flutter/examples/hello_world/lib/main.dart","sourceReference":0,"adapterData":{"type":"@Script","id":"3","uri":"package:hello_world/main.dart"}},"line":12,"column":3,"name":"main$","canRestart":false}],"totalFrames":21}}
[12:07:58 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Script","id":"3","uri":"package:hello_world/main.dart","library":{"type":"@Library","id":"package:hello_world/main.dart","name":"package:hello_world/main.dart","uri":"package:hello_world/main.dart"},"source":"// Copyright 2014 The Flutter Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\nimport 'package:flutter/widgets.dart';\n\n\n\nvoid main() {\n  var foo = () => print('blah');\n  // throw Exception('blah');\n  runApp(\n    const Center(\n      child:\n        Text('Hello, world!',\n          key: Key('title'),\n          textDirection: TextDirection.ltr,\n        ),\n      ),\n    );\n}","tokenPosTable":[[10,75377,7,75378,13,75379,19,75380,25],[20,75381,6],[12,75382,3],[21,75383,1]]},"id":"17"}
[12:07:58 PM] [DAP] [Info] <== {"command":"scopes","arguments":{"frameId":1},"type":"request","seq":14}
[12:07:58 PM] [DAP] [Info] ==> {"seq":255,"type":"response","request_seq":14,"command":"scopes","success":true,"body":{"scopes":[{"name":"Locals","variablesReference":2,"expensive":false}]}}
[12:07:58 PM] [DAP] [Info] <== {"command":"variables","arguments":{"variablesReference":2},"type":"request","seq":15}
[12:07:58 PM] [DAP] [Info] ==> {"seq":256,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"18\",\"jsonrpc\":\"2.0\",\"method\":\"invoke\",\"params\":{\"argumentIds\":[],\"disableBreakpoints\":true,\"isolateId\":\"1\",\"selector\":\"toString\",\"targetId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:07:58 PM] [VmService] [Info] [web-myproject] ==> {"id":"18","jsonrpc":"2.0","method":"invoke","params":{"argumentIds":[],"disableBreakpoints":true,"isolateId":"1","selector":"toString","targetId":"4857249080999747968.1.63"}}
[12:07:58 PM] [DAP] [Info] <== {"command":"stackTrace","arguments":{"threadId":0,"startFrame":1,"levels":19},"type":"request","seq":16}
[12:07:58 PM] [DAP] [Info] ==> {"seq":257,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"19\",\"jsonrpc\":\"2.0\",\"method\":\"getStack\",\"params\":{\"isolateId\":\"1\",\"limit\":20}}\n","severity":0,"category":10}}
[12:07:58 PM] [VmService] [Info] [web-myproject] ==> {"id":"19","jsonrpc":"2.0","method":"getStack","params":{"isolateId":"1","limit":20}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":258,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"@Instance\",\"id\":\"#StringInstanceRef#() => core.print(\\\"blah\\\")\",\"kind\":\"String\",\"identityHashCode\":624547382,\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|String\",\"name\":\"String\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"valueAsString\":\"() => core.print(\\\"blah\\\")\",\"length\":24},\"id\":\"18\"}\n","severity":0,"category":10}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":259,"type":"response","request_seq":15,"command":"variables","success":true,"body":{"variables":[{"evaluateName":"foo","name":"foo","type":"Closure (Closure)","value":"() => core.print(\"blah\")","variablesReference":3}]}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":260,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Stack\",\"frames\":[{\"type\":\"Frame\",\"index\":0,\"code\":{\"type\":\"@Code\",\"id\":\"391\",\"name\":\"main$\",\"kind\":\"Dart\"},\"location\":{\"type\":\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"id\":\"3\",\"uri\":\"package:hello_world/main.dart\"},\"tokenPos\":75382},\"vars\":[{\"type\":\"BoundVariable\",\"name\":\"foo\",\"value\":{\"type\":\"@Instance\",\"id\":\"4857249080999747968.1.63\",\"kind\":\"Closure\",\"identityHashCode\":70988293,\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|Closure\",\"name\":\"Closure\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"closureFunction\":{\"type\":\"@Function\",\"id\":\"392\",\"name\":\"Closure\",\"owner\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|Unknown\",\"name\":\"Unknown\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"static\":false,\"const\":false,\"implicit\":false},\"closureContext\":{\"type\":\"@Context\",\"id\":\"393\",\"length\":0}},\"declarationTokenPos\":-1,\"scopeStartTokenPos\":-1,\"scopeEndTokenPos\":-1}],\"kind\":\"Regular\"},{\"type\":\"Frame\",\"index\":1,\"code\":{\"type\":\"@Code\",\"id\":\"394\",\"name\":\"main\",\"kind\":\"Dart\"},\"location\":{\"type\":\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"id\":\"2\",\"uri\":\"org-dartlang-app:/web_entrypoint.dart\"},\"tokenPos\":75398},\"vars\":[],\"kind\":\"Regular\"},{\"type\":\"Frame\",\"index\":11,\"kind\":\"AsyncSuspensionMarker\"},{\"type\":\"Frame\",\"index\":47,\"code\":{\"type\":\"@Code\",\"id\":\"395\",\"name\":\"main\",\"kind\":\"Dart\"},\"location\":{\"type\":\"SourceLocation\",\"script\":{\"type\":\"@Script\",\"id\":\"2\",\"uri\":\"org-dartlang-app:/web_entrypoint.dart\"},\"tokenPos\":75387},\"kind\":\"AsyncCausal\"},{\"type\":\"Frame\",\"index\":50,\"code\":{\"type\":\"@Code…
[12:07:58 PM] [DAP] [Info] ==> {"seq":261,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"20\",\"jsonrpc\":\"2.0\",\"method\":\"getObject\",\"params\":{\"isolateId\":\"1\",\"objectId\":\"2\"}}\n","severity":0,"category":10}}
[12:07:58 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"@Instance","id":"#StringInstanceRef#() => core.print(\"blah\")","kind":"String","identityHashCode":624547382,"class":{"type":"@Class","id":"classes|dart:core|String","name":"String","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"valueAsString":"() => core.print(\"blah\")","length":24},"id":"18"}
[12:07:58 PM] [DAP] [Info] ==> {"seq":262,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Script\",\"id\":\"2\",\"uri\":\"org-dartlang-app:/web_entrypoint.dart\",\"library\":{\"type\":\"@Library\",\"id\":\"org-dartlang-app:/web_entrypoint.dart\",\"name\":\"org-dartlang-app:/web_entrypoint.dart\",\"uri\":\"org-dartlang-app:/web_entrypoint.dart\"},\"source\":\"// @dart=2.12\\n// Flutter web bootstrap script for package:hello_world/main.dart.\\n\\nimport 'dart:ui' as ui;\\nimport 'dart:async';\\n\\nimport 'package:hello_world/main.dart' as entrypoint;\\n\\ntypedef _UnaryFunction = dynamic Function(List<String> args);\\ntypedef _NullaryFunction = dynamic Function();\\nFuture<void> main() async {\\n  await ui.webOnlyInitializePlatform();\\n  if (entrypoint.main is _UnaryFunction) {\\n    return (entrypoint.main as _UnaryFunction)(<String>[]);\\n  }\\n  return (entrypoint.main as _NullaryFunction)();\\n}\\n\",\"tokenPosTable\":[[11,75384,18],[12,75385,39,75386,3,75387,12],[13,75388,3,75389,23],[16,75390,27,75394,27,75396,3,75397,47,75398,27],[14,75391,5,75392,29,75393,47,75395,56],[17,75399,1]]},\"id\":\"20\"}\n","severity":0,"category":10}}
[12:07:58 PM] [DAP] [Info] ==> {"seq":263,"type":"response","request_seq":16,"command":"stackTrace","success":true,"body":{"stackFrames":[{"id":4,"source":{"name":"org-dartlang-app:/web_entrypoint.dart","sourceReference":5,"adapterData":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"}},"line":16,"column":27,"name":"main","canRestart":true},{"id":6,"line":0,"column":0,"name":"<asynchronous gap>","presentationHint":"label"},{"id":7,"source":{"name":"org-dartlang-app:/web_entrypoint.dart","sourceReference":8,"adapterData":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"}},"line":12,"column":12,"name":"main","canRestart":false},{"id":9,"source":{"name":"org-dartlang-app:/web_entrypoint.dart","sourceReference":10,"adapterData":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"}},"line":11,"column":18,"name":"main$","canRestart":false}],"totalFrames":5}}
[12:07:58 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Stack","frames":[{"type":"Frame","index":0,"code":{"type":"@Code","id":"391","name":"main$","kind":"Dart"},"location":{"type":"SourceLocation","script":{"type":"@Script","id":"3","uri":"package:hello_world/main.dart"},"tokenPos":75382},"vars":[{"type":"BoundVariable","name":"foo","value":{"type":"@Instance","id":"4857249080999747968.1.63","kind":"Closure","identityHashCode":70988293,"class":{"type":"@Class","id":"classes|dart:core|Closure","name":"Closure","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"closureFunction":{"type":"@Function","id":"392","name":"Closure","owner":{"type":"@Class","id":"classes|dart:core|Unknown","name":"Unknown","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"static":false,"const":false,"implicit":false},"closureContext":{"type":"@Context","id":"393","length":0}},"declarationTokenPos":-1,"scopeStartTokenPos":-1,"scopeEndTokenPos":-1}],"kind":"Regular"},{"type":"Frame","index":1,"code":{"type":"@Code","id":"394","name":"main","kind":"Dart"},"location":{"type":"SourceLocation","script":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"},"tokenPos":75398},"vars":[],"kind":"Regular"},{"type":"Frame","index":11,"kind":"AsyncSuspensionMarker"},{"type":"Frame","index":47,"code":{"type":"@Code","id":"395","name":"main","kind":"Dart"},"location":{"type":"SourceLocation","script":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"},"tokenPos":75387},"kind":"AsyncCausal"},{"type":"Frame","index":50,"code":{"type":"@Code","id":"396","name":"main$","kind":"Dart"},"location":{"type":"SourceLocation","script":{"type":"@Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart"},"tokenPos":75384},"kind":"AsyncCausal"}],"messages":[],"truncated":false},"id":"19"}
[12:07:58 PM] [VmService] [Info] [web-myproject] ==> {"id":"20","jsonrpc":"2.0","method":"getObject","params":{"isolateId":"1","objectId":"2"}}
[12:07:58 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Script","id":"2","uri":"org-dartlang-app:/web_entrypoint.dart","library":{"type":"@Library","id":"org-dartlang-app:/web_entrypoint.dart","name":"org-dartlang-app:/web_entrypoint.dart","uri":"org-dartlang-app:/web_entrypoint.dart"},"source":"// @dart=2.12\n// Flutter web bootstrap script for package:hello_world/main.dart.\n\nimport 'dart:ui' as ui;\nimport 'dart:async';\n\nimport 'package:hello_world/main.dart' as entrypoint;\n\ntypedef _UnaryFunction = dynamic Function(List<String> args);\ntypedef _NullaryFunction = dynamic Function();\nFuture<void> main() async {\n  await ui.webOnlyInitializePlatform();\n  if (entrypoint.main is _UnaryFunction) {\n    return (entrypoint.main as _UnaryFunction)(<String>[]);\n  }\n  return (entrypoint.main as _NullaryFunction)();\n}\n","tokenPosTable":[[11,75384,18],[12,75385,39,75386,3,75387,12],[13,75388,3,75389,23],[16,75390,27,75394,27,75396,3,75397,47,75398,27],[14,75391,5,75392,29,75393,47,75395,56],[17,75399,1]]},"id":"20"}
[12:08:03 PM] [DAP] [Info] <== {"command":"variables","arguments":{"variablesReference":3},"type":"request","seq":17}
[12:08:03 PM] [DAP] [Info] ==> {"seq":264,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"21\",\"jsonrpc\":\"2.0\",\"method\":\"getObject\",\"params\":{\"isolateId\":\"1\",\"objectId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:03 PM] [VmService] [Info] [web-myproject] ==> {"id":"21","jsonrpc":"2.0","method":"getObject","params":{"isolateId":"1","objectId":"4857249080999747968.1.63"}}
[12:08:03 PM] [DAP] [Info] ==> {"seq":265,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Instance\",\"id\":\"4857249080999747968.1.63\",\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|Closure\",\"name\":\"Closure\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"kind\":\"Closure\",\"identityHashCode\":70988293},\"id\":\"21\"}\n","severity":0,"category":10}}
[12:08:03 PM] [DAP] [Info] ==> {"seq":266,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"22\",\"jsonrpc\":\"2.0\",\"method\":\"invoke\",\"params\":{\"argumentIds\":[],\"disableBreakpoints\":true,\"isolateId\":\"1\",\"selector\":\"toString\",\"targetId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:03 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Instance","id":"4857249080999747968.1.63","class":{"type":"@Class","id":"classes|dart:core|Closure","name":"Closure","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"kind":"Closure","identityHashCode":70988293},"id":"21"}
[12:08:03 PM] [VmService] [Info] [web-myproject] ==> {"id":"22","jsonrpc":"2.0","method":"invoke","params":{"argumentIds":[],"disableBreakpoints":true,"isolateId":"1","selector":"toString","targetId":"4857249080999747968.1.63"}}
[12:08:03 PM] [DAP] [Info] ==> {"seq":267,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"@Instance\",\"id\":\"#StringInstanceRef#() => core.print(\\\"blah\\\")\",\"kind\":\"String\",\"identityHashCode\":624547382,\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|String\",\"name\":\"String\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"valueAsString\":\"() => core.print(\\\"blah\\\")\",\"length\":24},\"id\":\"22\"}\n","severity":0,"category":10}}
[12:08:03 PM] [DAP] [Info] ==> {"seq":268,"type":"response","request_seq":17,"command":"variables","success":true,"body":{"variables":[{"evaluateName":"foo","name":"Closure","type":"Closure (Closure)","value":"() => core.print(\"blah\")","variablesReference":11}]}}
[12:08:03 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"@Instance","id":"#StringInstanceRef#() => core.print(\"blah\")","kind":"String","identityHashCode":624547382,"class":{"type":"@Class","id":"classes|dart:core|String","name":"String","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"valueAsString":"() => core.print(\"blah\")","length":24},"id":"22"}
[12:08:06 PM] [DAP] [Info] <== {"command":"variables","arguments":{"variablesReference":11},"type":"request","seq":18}
[12:08:06 PM] [DAP] [Info] ==> {"seq":269,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"23\",\"jsonrpc\":\"2.0\",\"method\":\"getObject\",\"params\":{\"isolateId\":\"1\",\"objectId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:06 PM] [VmService] [Info] [web-myproject] ==> {"id":"23","jsonrpc":"2.0","method":"getObject","params":{"isolateId":"1","objectId":"4857249080999747968.1.63"}}
[12:08:06 PM] [DAP] [Info] ==> {"seq":270,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Instance\",\"id\":\"4857249080999747968.1.63\",\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|Closure\",\"name\":\"Closure\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"kind\":\"Closure\",\"identityHashCode\":70988293},\"id\":\"23\"}\n","severity":0,"category":10}}
[12:08:06 PM] [DAP] [Info] ==> {"seq":271,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"24\",\"jsonrpc\":\"2.0\",\"method\":\"invoke\",\"params\":{\"argumentIds\":[],\"disableBreakpoints\":true,\"isolateId\":\"1\",\"selector\":\"toString\",\"targetId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:06 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Instance","id":"4857249080999747968.1.63","class":{"type":"@Class","id":"classes|dart:core|Closure","name":"Closure","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"kind":"Closure","identityHashCode":70988293},"id":"23"}
[12:08:06 PM] [VmService] [Info] [web-myproject] ==> {"id":"24","jsonrpc":"2.0","method":"invoke","params":{"argumentIds":[],"disableBreakpoints":true,"isolateId":"1","selector":"toString","targetId":"4857249080999747968.1.63"}}
[12:08:06 PM] [DAP] [Info] ==> {"seq":272,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"@Instance\",\"id\":\"#StringInstanceRef#() => core.print(\\\"blah\\\")\",\"kind\":\"String\",\"identityHashCode\":624547382,\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|String\",\"name\":\"String\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"valueAsString\":\"() => core.print(\\\"blah\\\")\",\"length\":24},\"id\":\"24\"}\n","severity":0,"category":10}}
[12:08:06 PM] [DAP] [Info] ==> {"seq":273,"type":"response","request_seq":18,"command":"variables","success":true,"body":{"variables":[{"evaluateName":"foo","name":"Closure","type":"Closure (Closure)","value":"() => core.print(\"blah\")","variablesReference":12}]}}
[12:08:06 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"@Instance","id":"#StringInstanceRef#() => core.print(\"blah\")","kind":"String","identityHashCode":624547382,"class":{"type":"@Class","id":"classes|dart:core|String","name":"String","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"valueAsString":"() => core.print(\"blah\")","length":24},"id":"24"}
[12:08:08 PM] [DAP] [Info] <== {"command":"variables","arguments":{"variablesReference":12},"type":"request","seq":19}
[12:08:08 PM] [DAP] [Info] ==> {"seq":274,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"25\",\"jsonrpc\":\"2.0\",\"method\":\"getObject\",\"params\":{\"isolateId\":\"1\",\"objectId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:08 PM] [VmService] [Info] [web-myproject] ==> {"id":"25","jsonrpc":"2.0","method":"getObject","params":{"isolateId":"1","objectId":"4857249080999747968.1.63"}}
[12:08:08 PM] [DAP] [Info] ==> {"seq":275,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"Instance\",\"id\":\"4857249080999747968.1.63\",\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|Closure\",\"name\":\"Closure\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"kind\":\"Closure\",\"identityHashCode\":70988293},\"id\":\"25\"}\n","severity":0,"category":10}}
[12:08:08 PM] [DAP] [Info] ==> {"seq":276,"type":"event","event":"dart.log","body":{"message":"==> {\"id\":\"26\",\"jsonrpc\":\"2.0\",\"method\":\"invoke\",\"params\":{\"argumentIds\":[],\"disableBreakpoints\":true,\"isolateId\":\"1\",\"selector\":\"toString\",\"targetId\":\"4857249080999747968.1.63\"}}\n","severity":0,"category":10}}
[12:08:08 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"Instance","id":"4857249080999747968.1.63","class":{"type":"@Class","id":"classes|dart:core|Closure","name":"Closure","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"kind":"Closure","identityHashCode":70988293},"id":"25"}
[12:08:08 PM] [VmService] [Info] [web-myproject] ==> {"id":"26","jsonrpc":"2.0","method":"invoke","params":{"argumentIds":[],"disableBreakpoints":true,"isolateId":"1","selector":"toString","targetId":"4857249080999747968.1.63"}}
[12:08:08 PM] [DAP] [Info] ==> {"seq":277,"type":"event","event":"dart.log","body":{"message":"<== {\"jsonrpc\":\"2.0\",\"result\":{\"type\":\"@Instance\",\"id\":\"#StringInstanceRef#() => core.print(\\\"blah\\\")\",\"kind\":\"String\",\"identityHashCode\":624547382,\"class\":{\"type\":\"@Class\",\"id\":\"classes|dart:core|String\",\"name\":\"String\",\"library\":{\"type\":\"@Library\",\"id\":\"dart:core\",\"name\":\"dart:core\",\"uri\":\"dart:core\"}},\"valueAsString\":\"() => core.print(\\\"blah\\\")\",\"length\":24},\"id\":\"26\"}\n","severity":0,"category":10}}
[12:08:08 PM] [DAP] [Info] ==> {"seq":278,"type":"response","request_seq":19,"command":"variables","success":true,"body":{"variables":[{"evaluateName":"foo","name":"Closure","type":"Closure (Closure)","value":"() => core.print(\"blah\")","variablesReference":13}]}}
[12:08:08 PM] [VmService] [Info] [web-myproject] <== {"jsonrpc":"2.0","result":{"type":"@Instance","id":"#StringInstanceRef#() => core.print(\"blah\")","kind":"String","identityHashCode":624547382,"class":{"type":"@Class","id":"classes|dart:core|String","name":"String","library":{"type":"@Library","id":"dart:core","name":"dart:core","uri":"dart:core"}},"valueAsString":"() => core.print(\"blah\")","length":24},"id":"26"}
[```