Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:Debug"
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
The Java-based debugger is implemented via [http://jcp.org/en/jsr/detail?id=45 JSR-45], plus some of our own extensions (such as support for a customized Variables view). | The Java-based debugger is implemented via [http://jcp.org/en/jsr/detail?id=45 JSR-45], plus some of our own extensions (such as support for a customized Variables view). | ||
− | The JavaScript-based debugger | + | The JavaScript-based debugger is a port from the RBD EGL Rich UI debugger. |
<br> | <br> | ||
− | {| cellspacing="1" cellpadding="1" border="1" width="900 | + | [https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=blocker;bug_severity=critical;bug_severity=major;bug_severity=normal;bug_severity=minor;bug_severity=trivial;classification=Tools;query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=EDT%20Debug;product=EDT Open bugs] |
+ | |||
+ | [https://bugs.eclipse.org/bugs/buglist.cgi?bug_severity=enhancement;classification=Tools;query_format=advanced;bug_status=UNCONFIRMED;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;component=EDT%20Debug;product=EDT Open enhancement requests] | ||
+ | |||
+ | [[EDT:Debug Extensibility|Extending the debugger]]<br> | ||
+ | |||
+ | [[EDT:Debug Regression Testing|Regression testing the debugger]] | ||
+ | |||
+ | <br> | ||
+ | |||
+ | In the following table: | ||
+ | |||
+ | *<span style="background-color:#cccccc">gray</span> = done for both debuggers | ||
+ | *<span style="background-color:#FFFF00">yellow</span> = done for one debugger but not the other<br> | ||
+ | *<span style="background-color:#FF0000">red</span> = not yet supported in either debugger | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" border="1" width="900" | ||
|- | |- | ||
| bgcolor="#999999" align="center" width="350" | '''Function''' | | bgcolor="#999999" align="center" width="350" | '''Function''' | ||
− | | bgcolor="#999999" align="center" width="100" colspan=" | + | | bgcolor="#999999" align="center" width="100" colspan="5" | '''Java'''<br> |
− | | bgcolor="#999999" align="center" width="100" colspan=" | + | | bgcolor="#999999" align="center" width="100" colspan="4" | '''JavaScript''' |
|- | |- | ||
| bgcolor="#cccccc" | <br> | | bgcolor="#cccccc" | <br> | ||
+ | | bgcolor="#cccccc" align="center" valign="middle" | '''Sizing'''<br> | ||
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>''' | | bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>''' | ||
+ | | bgcolor="#cccccc" align="center" valign="middle" | '''0.8''' | ||
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>''' | | bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>''' | ||
| bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>''' | | bgcolor="#cccccc" align="center" valign="middle" | '''Future<br>''' | ||
+ | | bgcolor="#cccccc" align="center" valign="middle" | '''Sizing'''<br> | ||
| bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>''' | | bgcolor="#cccccc" align="center" valign="middle" | '''0.7<br>''' | ||
| bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>''' | | bgcolor="#cccccc" align="center" valign="middle" | '''1.0<br>''' | ||
Line 20: | Line 39: | ||
|- | |- | ||
| bgcolor="#cccccc" | Core framework<br> | | bgcolor="#cccccc" | Core framework<br> | ||
+ | | <br> | ||
| done<br> | | done<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | 15d<br> | ||
+ | | done ({{bug|351854}}) | ||
| <br> | | <br> | ||
− | | | + | | <br> |
|- | |- | ||
− | | bgcolor="#cccccc" | | + | | bgcolor="#cccccc" | |
− | | | + | *Debug on a server such as Apache Tomcat |
− | + | ||
− | + | | 3d | |
− | | bgcolor="#cccccc" | + | | done ({{bug|353046}}) |
− | + | | <br> | |
− | | bgcolor="#cccccc" | <br> | + | | <br> |
+ | | <br> | ||
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A | ||
+ | |- | ||
+ | | bgcolor="#cccccc" colspan="10" | ''Stepping through statements''<br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Most basic of function<br> | *Most basic of function<br> | ||
+ | | <br> | ||
| done (free)<br> | | done (free)<br> | ||
| <br> | | <br> | ||
Line 43: | Line 70: | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | | + | | done ({{bug|351854}}) |
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Step between EGL and Java<br> | *Step between EGL and Java<br> | ||
+ | | <br> | ||
| done (free)<br> | | done (free)<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | bgcolor="#cccccc" align="center" colspan=" | + | | <br> |
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
− | * | + | *Filter runtimes that users won't want to step into (basic)<br> |
− | | {{bug|346265}}<br> | + | | 1d<br> |
+ | | done ({{bug|346265}})<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | bgcolor="#cccccc" align="center" colspan=" | + | | <br> |
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A | ||
|- | |- | ||
− | | bgcolor="#cccccc" | ' | + | | bgcolor="#cccccc" | |
− | | | + | *Filter runtimes that users won't want to step into (extensible)<br> |
− | + | ||
− | | | + | | 4d<br> |
− | + | | <br> | |
− | | bgcolor="#cccccc" | <br> | + | | done ({{bug|353050}}) |
− | | bgcolor="#cccccc" | | + | | <br> |
+ | | <br> | ||
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A <br> | ||
+ | |- | ||
+ | | bgcolor="#cccccc" colspan="10" | ''Breakpoints'' | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Line breakpoints<br> | *Line breakpoints<br> | ||
+ | | <br> | ||
| done<br> | | done<br> | ||
| <br> | | <br> | ||
Line 77: | Line 115: | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | {{bug|352582}}<br> | + | | done ({{bug|352582}}) |
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | |
*Conditional breakpoints<br> | *Conditional breakpoints<br> | ||
+ | | 5d<sup>[1]</sup><br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351236}} | | {{bug|351236}} | ||
+ | | 5d<sup>[1]</sup><br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351237}} | | {{bug|351237}} | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | |
*Hit count on breakpoints | *Hit count on breakpoints | ||
− | | | + | | 1d<br> |
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
| {{bug|352585}} | | {{bug|352585}} | ||
− | | | + | | 1d<br> |
− | | | + | | <br> |
− | | | + | | <br> |
| {{bug|352586}} | | {{bug|352586}} | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | |
*Watchpoints<br> | *Watchpoints<br> | ||
+ | | 15d<br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351873}} | | {{bug|351873}} | ||
+ | | 15d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351874}} | | {{bug|351874}} | ||
|- | |- | ||
− | | bgcolor="#cccccc" | ''Variables view''<br> | + | | bgcolor="#cccccc" colspan="10" | ''Variables view''<br> |
− | | bgcolor="#cccccc" | | + | |- |
− | | | + | | bgcolor="#cccccc" | |
− | + | *Variable adapter framework | |
− | + | ||
− | | bgcolor="#cccccc" | + | | 2d |
− | + | | done ({{bug|352771}}) | |
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Primitives and records<br> | *Primitives and records<br> | ||
+ | | <br> | ||
| done<br> | | done<br> | ||
| <br> | | <br> | ||
Line 125: | Line 179: | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | | + | | done ({{bug|351854}}) |
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*User and system libraries<br> | *User and system libraries<br> | ||
+ | | <br> | ||
| done ({{bug|346252}})<br> | | done ({{bug|346252}})<br> | ||
| <br> | | <br> | ||
Line 135: | Line 192: | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | | + | | done ({{bug|351854}}) |
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Data tables, forms, & program parameters<br> | *Data tables, forms, & program parameters<br> | ||
+ | | <br> | ||
| done ({{bug|346254}})<br> | | done ({{bug|346254}})<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | bgcolor="#cccccc" align="center" colspan=" | + | | <br> |
+ | | bgcolor="#cccccc" align="center" colspan="4" | N/A - not supported in JSGen | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Arrays<br> | *Arrays<br> | ||
− | | {{bug|352021}}<br> | + | | 1/2d<sup>[2]</sup><br> |
+ | | done ({{bug|352021}})<br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | done ({{bug|351854}}) | ||
| <br> | | <br> | ||
− | | | + | | <br> |
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
*Handler fields | *Handler fields | ||
− | | done | + | | <br> |
− | | | + | | done |
− | | | + | | <br> |
− | | | + | | <br> |
− | | | + | | <br> |
− | | | + | | <br> |
+ | | done ({{bug|351854}}) | ||
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
− | * | + | *Dictionaries |
− | | {{bug| | + | | 1/2d<sup>[2]</sup><br> |
+ | | done ({{bug|352600}}) | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
− | | | + | | done ({{bug|351854}}) |
+ | | <br> | ||
+ | | <br> | ||
|- | |- | ||
| bgcolor="#cccccc" | | | bgcolor="#cccccc" | | ||
+ | *ArrayDictionaries | ||
+ | |||
+ | | bgcolor="#cccccc" align="center" colspan="9" | N/A - not supported in EDT JavaGen or JSGen | ||
+ | |- | ||
+ | | bgcolor="#cccccc" | | ||
+ | *Format display of certain variables<br> | ||
+ | |||
+ | | 3d<br> | ||
+ | | done ({{bug|346247}}) | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | done ({{bug|351854}}) | ||
+ | | <br> | ||
+ | | <br> | ||
+ | |- | ||
+ | | bgcolor="#FF0000" | | ||
*Simple value modification of primitives<br> | *Simple value modification of primitives<br> | ||
− | | | + | | 3d<br> |
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | <br> | ||
+ | | {{bug|346249}} | ||
+ | | 1d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|352598}}<br> | | {{bug|352598}}<br> | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | |
− | *Complex value modification of variables | + | *Complex value modification of variables<br> |
+ | | 5d<sup>[1]</sup><br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|352595}} | | {{bug|352595}} | ||
+ | | 4d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|352597}}<br> | | {{bug|352597}}<br> | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | |
*Build watch expressions from variable context menu<br> | *Build watch expressions from variable context menu<br> | ||
+ | | 3d<br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351858}} | | {{bug|351858}} | ||
+ | | 3d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351859}} | | {{bug|351859}} | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FFFF00" | Hot code replace (aka hotswapping)<br> |
+ | | <br> | ||
| done (free)<br> | | done (free)<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | <br> | ||
+ | | 20d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351238}} | | {{bug|351238}} | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | Compile & generate contextual expressions |
+ | | 10d | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | {{bug|352666}} | ||
+ | | 10d | ||
+ | | <br> | ||
+ | | <br> | ||
+ | | {{bug|352666}} | ||
+ | |- | ||
+ | | bgcolor="#FF0000" | Watch expressions<br> | ||
+ | | 5d<sup>[1]</sup><br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351240}} | | {{bug|351240}} | ||
+ | | 4d<sup>[1]</sup><br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
Line 222: | Line 336: | ||
|- | |- | ||
| bgcolor="#cccccc" | Run to line<br> | | bgcolor="#cccccc" | Run to line<br> | ||
+ | | <br> | ||
| done ({{bug|346256}})<br> | | done ({{bug|346256}})<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | 1d<br> | ||
+ | | done ({{bug|352593}})<br> | ||
| <br> | | <br> | ||
− | | | + | | <br> |
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FFFF00" | Drop to frame<br> |
+ | | <br> | ||
| done (free)<br> | | done (free)<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
+ | | <br> | ||
+ | | 3d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
| {{bug|351239}} | | {{bug|351239}} | ||
|- | |- | ||
− | | bgcolor="# | + | | bgcolor="#FF0000" | Hover value in source editor<br> |
+ | | 4d<br> | ||
+ | | <br> | ||
| <br> | | <br> | ||
| {{bug|351872}} | | {{bug|351872}} | ||
| <br> | | <br> | ||
+ | | 4d<br> | ||
| <br> | | <br> | ||
| <br> | | <br> | ||
Line 246: | Line 369: | ||
|} | |} | ||
− | <br> | + | <br> |
+ | |||
+ | [1] Depends on {{bug|352666}} which is sized at 10 days<br> | ||
+ | |||
+ | [2] Depends on {{bug|352771}} which is sized at 2 days<br> | ||
+ | |||
+ | [[Category:EDT]] |
Latest revision as of 09:18, 1 May 2012
The Java-based debugger is implemented via JSR-45, plus some of our own extensions (such as support for a customized Variables view).
The JavaScript-based debugger is a port from the RBD EGL Rich UI debugger.
Regression testing the debugger
In the following table:
- gray = done for both debuggers
- yellow = done for one debugger but not the other
- red = not yet supported in either debugger
Function | Java |
JavaScript | |||||||
|
Sizing |
0.7 |
0.8 | 1.0 |
Future |
Sizing |
0.7 |
1.0 |
Future |
Core framework |
|
done |
|
|
|
15d |
done (bug 351854) | |
|
|
3d | done (bug 353046) | |
|
|
N/A | |||
Stepping through statements | |||||||||
|
|
done (free) |
|
|
|
|
done (bug 351854) | |
|
|
|
done (free) |
|
|
|
N/A | |||
|
1d |
done (bug 346265) |
|
|
|
N/A | |||
|
4d |
|
done (bug 353050) | |
|
N/A | |||
Breakpoints | |||||||||
|
|
done |
|
|
|
|
done (bug 352582) | |
|
|
5d[1] |
|
|
|
bug 351236 | 5d[1] |
|
|
bug 351237 |
|
1d |
|
|
|
bug 352585 | 1d |
|
|
bug 352586 |
|
15d |
|
|
|
bug 351873 | 15d |
|
|
bug 351874 |
Variables view | |||||||||
|
2d | done (bug 352771) | |
|
|
N/A | |||
|
|
done |
|
|
|
|
done (bug 351854) | |
|
|
|
done (bug 346252) |
|
|
|
|
done (bug 351854) | |
|
|
|
done (bug 346254) |
|
|
|
N/A - not supported in JSGen | |||
|
1/2d[2] |
done (bug 352021) |
|
|
|
|
done (bug 351854) | |
|
|
|
done | |
|
|
|
done (bug 351854) | |
|
|
1/2d[2] |
done (bug 352600) | |
|
|
|
done (bug 351854) | |
|
|
N/A - not supported in EDT JavaGen or JSGen | ||||||||
|
3d |
done (bug 346247) | |
|
|
|
done (bug 351854) | |
|
|
3d |
|
|
|
bug 346249 | 1d |
|
|
bug 352598 |
|
5d[1] |
|
|
|
bug 352595 | 4d |
|
|
bug 352597 |
|
3d |
|
|
|
bug 351858 | 3d |
|
|
bug 351859 |
Hot code replace (aka hotswapping) |
|
done (free) |
|
|
|
20d |
|
|
bug 351238 |
Compile & generate contextual expressions | 10d | |
|
|
bug 352666 | 10d | |
|
bug 352666 |
Watch expressions |
5d[1] |
|
|
|
bug 351240 | 4d[1] |
|
|
bug 351241 |
Run to line |
|
done (bug 346256) |
|
|
|
1d |
done (bug 352593) |
|
|
Drop to frame |
|
done (free) |
|
|
|
3d |
|
|
bug 351239 |
Hover value in source editor |
4d |
|
|
bug 351872 | |
4d |
|
|
bug 351872 |
[1] Depends on bug 352666 which is sized at 10 days
[2] Depends on bug 352771 which is sized at 2 days