dart-lang / webdev

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

Fix expression evaluation failures returning InternalError #1550

Open annagrin opened 2 years ago

annagrin commented 2 years ago

The most frequent failure for expression evaluation when paused calls (not counting compilation errors) are InternalError. It currently occurs in ~2% of all EvaluateInFrame calls.

image

Further breakdown, by message:

image
annagrin commented 2 years ago

Update

Those errors appear to be thrown during expression evaluation in async frames. Unfortunately, Debugger.paused event from Chrome DevTools contains Runtime.stackTrace for the async frames (compared to list of CallFrame for the sync part of the call stack), which does not contain references to frames that we need for expression evaluation.

Debugger.paused event and related types

https://chromedevtools.github.io/devtools-protocol/tot/Debugger/#event-paused https://chromedevtools.github.io/devtools-protocol/tot/Runtime/#type-StackTrace https://chromedevtools.github.io/devtools-protocol/tot/Runtime/#type-CallFrame (no call frame ID)

Debugger.evaluateOnCallFrame

https://chromedevtools.github.io/devtools-protocol/tot/Debugger/#method-evaluateOnCallFrame (requires call frame ID)

Filed an issue to track this in Chromium https://bugs.chromium.org/p/chromium/issues/detail?id=1323095

annagrin commented 2 years ago

Update: chrome issue is marked as "won't fix" so we currently don't have a way of supporting expression evaluation in those frames.

anujcontractor commented 1 year ago

Dear Anna Gringauze,

I hope this message finds you well. My name is Anuj Contractor and I am currently working on the issue #1550 (mentioned above). I understand that you have a great deal of experience and knowledge in this area, and I believe that your input would be invaluable to my project.

I would greatly appreciate it if you could provide me with your email address so that I can reach out to you with any specific questions or concerns. I assure you that I will only use your contact information for the purpose of discussing this project, and I will keep it confidential.

Thank you in advance for your time and assistance.

my email : anujcontractor14@gmail.com

Best regards, Anuj Contractor