-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTODO.txt
689 lines (598 loc) · 24.9 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
TODO
FEATURES:
* Breakpoints
* Stepping
* Over
* Into
* Out
* Continue
* Variable Inspector
* Show inherited
* GUI
* Buttons for stepping
* Variable Inspector (Expandable List)
* Menu
* Debug / Continue
* Stepping (Over, Into, Out)
* Set Breakpoint / Remove Breakpoint
* PDE Integration
* En/Disable Breakpoints
* Highlight breakpointed lines
* Highlight current line
* Extended
* List of breakpoints (En/Disable, Jump to code)
* Call Stack
* Mid-draw() canvas update
* Variable Tooltips in Editor
DEV ENVIRONMENT:
x p5-svn build automation
x template mode
x provide more methods to override
x create repo
FLORIAN TODO:
x get Processing SVN version and compile and run that
x get to know the internal process of running a sketch (collect code and libraries, precompile, compile, run, ..)
x set up a repo for us
x set up a contributed mode skeleton and make that compile against and show up in the SVN version as mode
x replace runner with the debugger runner
x add interface elements to the editor window as needed (line numbers, setting breakpoints, ...)
x sketch and add additional interfaces (windows) as needed
Icons
x Bilder wären besser als die Abkürzungen
x nachdem "run" und "debug" ja nun getrennt sind, sollten die in einen eigenen Block, änhlich wie "new"/"open"/...
(R)(S) (DBG)(CNT)(ST)(STI)(STO) (N)(O)(Sv)(Ex)
– (VAR) Knopf braucht man nicht, da man den Inspektor einfach immer zeigen sollte wenn man die Session startet
– "Set Breakpoint" Knopf würde ich über einen Kurzbefehl machen wie Kommentieren (cmd-B ?)
x "BRK" ist ge-highlighted beim Sichern
– Sollten die nicht benutzbaren Icons deaktiviert sein wenn man im DebugMode ist?
x DBG sollte gehighlighted sein wenn man in der Session ist
– (CNT)(ST)(STI)(STO) sollten erst aktiv werden wenn man an einem Breakpoint hängt
Variable Inspector
x Order- und File-Icons? Icon nach Datentyp? Primitive jeweils und generisch für Objekte?
x Kann man die internen und default Vars verstecken?
x "this" -> Sketch-Name
x "Locals" -> "Locals at breakpoint #4"? ... "at line #123"?
Editor
x Kann man prüfen und warnen daß man erst saven muß? ... sonst ist nicht klar warum manchmal die Breakpoints nicht gehen
x das rosa Highlight sieht sehr nach Fehler aus ... könnte das nicht eine andere Farbe sein? .. grün / blau?
Mode
x Mit einem Breakpoint in draw() scheint println() nicht zu gehen?
x Mit einem Breakpoint in draw() updated sich die Zeichenfläche nicht ... man sieht also gar nicht was passiert
x Braucht man die Ausgabe des fokusierten Codes in der Konsole wirklich? .. und die VM events sind nur für dich zum Debuggen, oder?
x Die default Breakpoints bei setup() / draw() braucht man nun nicht mehr? ... oder?
2012-06-29
x 1)
Wenn man steppt (step in) und die Zeile ist in einem anderen Tab, dann stimmt zwar das Highlight, aber der Textview scrollt nicht an die Stelle ... ist das unser oder Ben's Problem?
x 2)
Wir sollten unbedingt Tutorials einplanen gegen Ende des Projekts
x 3)
Ich finde "Call stack" und die Variablen sollten sich nicht so mischen, können wir das Fenster nur "Inspector" nennen und "Call stack" und "Variables" splitten? .. in zwei Felder?
x 4)
Die Var Liste ist sehr unübersichtlich ..
xxxxx (java.lang.String): "blah blah"
könnte sein:
(String icon) xxxxx: "blah blah"
x 5)
... selbe Stelle:
XXXXX (blub$Klasse): instance of blub$Klasse
... den "instance of" Kram braucht man nur wenn es nicht die selbe Klasse ist wie der Var-Typus
x 6)
Wenn keine Locals da sind, sollte das Icon trotzdem ein Folder sein ...
x 7)
"Leere" Objekt-Variablen haben im Inspektor ein "Öffner-Dreieck" ... wenn man das klickt verschwindet es einfach nur. Klar, du lädst den Inhalt nach dem Klick, aber es ist für den User unbefriedigend wenn man die Dinger dauernd klickt und dann nichts passiert. ... können wir anzeigen ob die leer sind, oder zumindest das Dreieckchen behalten?
x 8)
Variablen sind sortiert? ... ginge das alphabetisch?
x 9)
Könnten wir Name / Wert als Kolumnen anlegen damit es leichter zu lesen ist?
10)
könnte man einen Knopf bei DBG machen, der es erlaubt für eine Weile laufen zu lassen ohne zu breaken? .. manchmal dauert es ja eine Weile bis sich die Dinge im Sketch entwickeln.
2012-07-14
x 1) UX
Wenn man im DBGM ist (läuft) und einen Breakpoint toggln will passiert nichts. Klar daß das einfach nicht geht, könnte aber entweder der Button inaktiv sein und bei hover sagen "erst stoppen", oder es müsste eine andere Meldung geben.
> Stimmt.
> Ich kann keine Breakpoints setzen / toggeln wenn im draw() loop beim Starten noch keine waren ...
x 2) UX
Könnte man das toggln von Breakpoints auch direkt auf dem Margin links machen? Klick die zu beobachtende Zeile?
3) Bug
Wenn man einen Breakpoint auf eine leere Zeile setzt passiert einfach nichts ... stoppt dort nicht.
x 4) Bug
Ist ein String null und man doppel-klickt im Inspektor erhält man dort den String "null" als Inhalt, sollte besser leer sein? Könnte/sollte man null für null-Objekte in kursiv machen?
5) Bug?
Wenn man Zeilen mit Breakpoints löscht bleiben diese erhalten.
x 6) Bug
Der Inspektor bekommt nicht mit wenn man Variablen umbenennt.
x 7) Bug
Sketches mit P3D-Renderer laufen nicht: "package processing.opengl does not exist. …"
Probier eines hier: Standard mode->Examples->Libraries->opengl
7b)
Gleiches gilt auch für PDF Beispiele … kann es sein daß dir die "included Libraries" im Classpath fehlen?
x 8) Bug
Wenn man den Mode umschaltet bleibt der Inspektor offen
x 9) UX / Bug?
Der Zusammenhang von Updates der Info im Inspektor und dem Setzen von Breakpoints / Laufen lassen ist unklar. Ich nehme an die Info wird nur upgedated wenn man einen Breakpoint setzt und den Sketch gerade debugged? … daß die Info dann immer noch in grau sichtbar ist wenn man editiert ist verwirrend (aber ich verstehe daß sie auch nützlich sein kann). Könnte man irgendwie / irgendwo im Inspektor darauf hinweisen daß sich das nur erneuert wenn man gerade debugged?
Betrifft auch Punkt 6)
x 10) UX
Ich denke das "Debug"-Icon sollte einfach nur der "Run" Pfeil sein, so wie im Standard Modus. Das ist einfach und jeder versteht es sofort.
Die Breakpoints könnten ein Diamant/Raute sein und dann in der Margin als "<>" dargestellt werden. Hätte etwas mehr Volumen und ist leichter zu sehen von der Form/Leserichtung. … und es sieht ein wenig wie ein Auge aus.
Inspektor-Icon würde ich einfach ein "i" machen.
x 10b) UX
Die zwei Icons von "Set Breakpoint" / "Show Inspector" können ruhig richtig rund sein, gehören ja irgendwie zum Debugging-Vorgang. Die räumliche Trennung nach links/rechts finde ich gut.
11) UX
Befehl-R sollte "Debug" sein? … analog zu "Run"?
x 12) Bug
Breakpoints in Funktionen gehen nicht?
void setup () {
test();
}
void test () {
float xx = 1; // breakpoint hier
}
x 13) Bug
Beim Editieren von Array-Einträgen im Inspektor wird immer der erste Eintrag gesetzt, die anderen behalten ihre alten Werte.
String[] test = {
"a", "b", "c"
};
void setup () {
size( 200, 200 ); // breakpoint hier
println( test );
}
14) Bug?
Sortierung im Inspektor auch innerhalb der Objekte ("Processing") möglich?
PROTOTYPE 1 (v0.1):
x ui
x menu commands
x console output
x features
x set/unset/list breakpoint(s)
x start/stop/continue debug
x step over/in/out
x stack trace
x locals
x dump this
x list source
PROTOTYPE 2 (v0.2):
x bp tracking
x line highlight
x use on:
x current line (stepping)
x bp'd lines
x toolbar
x new buttons
x debug, stop, cont, step, toggle bp, toggle var insp.
x var inspector
x show/hide window
x sections
x local vars
x this
x refresh on bp, step event
x collapsible nested list
x fixed depth
PROTOTYPE 3 (v0.3):
x important missing features
x var inspector: stack trace
x iteration
x stability
x thread safety w/event thread
x issues that cause exceptions
x issues from feedback
x refactoring
x LineID is a design mess
x rid Debugger of view-related functions, especially line highlighting
x var.inspector
x lazy loading of nested object refs.
x more descriptive text for this, locals
x breakpoints
x setting/modifying at runtime
x clear bps on file open, new
x make debugging work on unsaved sketch
x kill debuggee vm on sketch close, p5 quit.
x fix late update of canvas
x remove default breakpoints
x how to handle editing during debug session
x update for current svn
x update code documentation
PROTOTYPE 4:
x UI
x gutter left / line annotation
x fg colors
/ bg colors
/ unicode
x line
x icon symbols, choice, placement
/ variants
x highlighting
/ icon and menu locking
x var insp: p5 mode
x hide non-processing vars
x handle p5 types
x handle arrays
x symbols for types
x grey out when not current
x handle this fields hidden by locals
x clear on open/new
x columnized interface
x sorting
x edit values
x handle debug output -> use logging
x forward debuggee streams
x disallow stepping into invisible code
x rethink line translation
x dynamic translation at runtime (track all line changes when debugging)
x fix critical bugs
PROTOTYPE 5:
internal testing release. stability, bug fixes
list of knows issues, upcoming features
* fixed setting values in variable inspector (arrays, null)
* support for core libraries (pdf, opengl, …)
PROTOTYPE 6:
gsoc wrap up
goal: 13.8.2012
x loose dependency on core hack
x UI
x maintain node expansions and scroll position in variable inspector
x clickable left gutter (toggle breakpoints)
x rework toolbar icons
x properly gray out folder icons
x save bps with sketch (comment annotation, another file?)
goal: 20.8.2012
x list of known bugs (open issues)
x java mode examples
x EDT fix (fixes exceptions on variable inspector update)
x breakpoint bar width on windows
x update javadocs
x update readme for gsoc (include tutorial from florian)
x update processing svn
PROTOTYPE 7:
community testing release
x keyboard shortcuts
x debug
x step
x continue
x revise logging
x logfile
/ show fatal errors in p5 console?
x tutorial
x project mini site. download, infos, tutorials
x update to p5 2.0b1
PROTOTYPE 8:
community requests
x use resources/theme/theme.txt
FUTURE:
? switch to advanced mode
? support p5 types
color: show rgb values
PImage:
etc
IMPLEMENTATION:
x Class Design (MVC)
x Model: Backend, JDI
x View: Editor
x Controller
x Build
x Preprocessor
x Investigate Sketch Assembly, Inverse Process?
x Line Number Mapping (Sketch <-> Java)
x Build with Debugging Info (-g flag)
x Launch / Run debuggee VM
x in/err forwarding to console
/ Know when finished
* change UI state (buttons, menu)
x Event thread Synchronization
x VM States
x started+mainclassloaded
x paused
x Commands
x Start
x Continue
x Stop
x Other kill conditions
x editor close
x p5 close
x Multiple Editors
x Breakpoints
x Line Management (deletion, insertion)
x Compile time vs. Runtime (paused) setting
/ enable, disable
* context sensitive
* disallow
* commented lines
* empty lines
* method declarations
* need to be handled separately
x Stepping
x only allow when paused
x over/in/out
x State Inquiry
x Only when paused
x Locals
x this (inherited)
x Stack trace
x common datatype
x nested/recursive
x lazy loading support
? threads
x User Interface
x Interaction design
x toggle breakpoints
x how to highlight breakpointed lines
x how to highlight current line
x which toolbar buttons are necessary
? right click menu
x console
x clear
? use colors
x toolbar
x new buttons
x menu
x order
x condense items (e.g. one toggle instead of on and off items)
/ context sensitive items
* change names depending on state
* enable/disbale depending on state
x switch to tab (by name or idx)
x editor
x line background color
x line annotation (paint symbols in left margin area)
x breakpoint tracking
x current line highlight
x variable inspector
x design
x collapsing list
x new window vs column
? toolbar
/ processing vs. advanced modes
x type symbols
x columnized
x lazy loading (otherwise way too much to load, due to circular refs)
/ support p5 variables
x array support
/ color support
/ loop detection
x sorting
x click interaction
x setting values
x remember scroll position & expansions
ISSUES:
* on debug quit running sketch
* on run quit debug
x on editor quit, stop spawned vms
1.6.2012
x clear log area when starting debug
x kill running prog when stopping or quitting
x only saved sketch is run in debugger?
5.6.2012
x line breakpoints need to monitor line insertions/deletions
x thread safety: events come in asynchronously
13.6.2012
x transform LineID to Breakpoint, possibly Breakpoint as subclass of LineID
* line highlight on first line doesn't move down
x clear bps on file open, new
15.6.2012
x line highlight interference with other line coloring methods
x current line highlight
x selecting
x we need a call stack window! (to know where we are)
x var inspector
x tree icons
x grey out when info not current (i.e. vm not suspended)
x line highlighting
x DebugEditor should provide the functions for setting the current line, not Debugger
x LineID is a design mess, need to restructure
/ VMDisconnectedEvent seems to be unreliable. likely synchronization problem.
x use resources/theme/theme.txt for highlight colors (current, breakpoint)
16.6.2012
x fast stepping exception: Only one step request allowed per thread
* toggling var insp. shouldn't focus var insp. window
19.6.2012
x NullPointerException when stepping into println (dbg_test.foo()) --> thisObject() was null (native or static mehthod)
20.6.2012
x sketch output window shows up after several draw() cycles, canvas updated even later
x fast continue: com.sun.jdi.IncompatibleThreadStateException
x fast continue: sometimes restarts debugger
* debug button highlight not working
-> removes highlight when mouse moved (rollover event, p5 bug?)
x stepping from draw() ouside of visible code util draw() is hit again: com.sun.jdi.request.DuplicateRequestException
x hitting a breakpoint during a step + stepping again: DuplicateRequestException
-> policy: when breakpoint hit during step: cancel step, cause we stopped anyway (only finer grained)
* in stacktrace indicate if in native or static method
x add/rem a bp on the current line: messes up line highlight colors (-> color stacking system!)
x debugging w/2 editors open, focusing second (empty) editor just after hitting debug on first:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Bounds out of range: 32,47 [32]
at processing.app.syntax.JEditTextArea.select(JEditTextArea.java:1193)
at processing.app.syntax.JEditTextArea$DragHandler.mouseDragged(JEditTextArea.java:2313)
at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:302)
28.6.2012
x disallow stepping into invisible code
* rethink: isPaused() vs. isBusy()
x remove auto breakpoints
* can't set breakpoint in a classes constructor?
3.7.2012
x can i make a modular Editor? (no matter how ugly?) -> no
x gutter fg color, bg color, per line. general bg color, trennlinie?
! stepping out of print(), println() returns to the same line
-> NullPointerException, AbsentInformation + VMMismatchException when restarting dbg
/ change logger console format to something more readable
x allow setting log-level
5.7.2012
x sporadic while switching tabs (breakpoint hits,…):
java.lang.ArrayIndexOutOfBoundsException: 344
at javax.swing.text.Utilities.drawTabbedText(Utilities.java:132)
at javax.swing.text.Utilities.drawTabbedText(Utilities.java:89)
at javax.swing.text.Utilities.drawTabbedText(Utilities.java:67)
at processing.app.syntax.SyntaxUtilities.paintSyntaxLine(SyntaxUtilities.java:146)
at processing.app.syntax.TextAreaPainter.paintSyntaxLine(TextAreaPainter.java:625)
at processing.app.syntax.TextAreaPainter.paintLine(TextAreaPainter.java:588)
at com.martinleopold.mode.debug.TextAreaPainter.paintLine(Unknown Source)
6.7.
* implicit stepping (invisible code) updates var inspector
x scrolling in vi when debugger stopped: com.sun.jdi.VMDisconnectedException:
-> possible error in VariableNode implementation
-> not occuring anymore (13.7.)
x second debug session doesn't work in some cases(VMEventReader quit on VM disconnect)
happens when completely stepping out of setup()
x breakpoint marker remains, when opening new file
x contents of Animal a show up double (dbg_test)
* stepping out of setup doesn't stop in draw() (should it?)
11.7.
* VMEventReader should reset things too, on disconnect? (to avoid invalid states…)
* stepping into constructors, lands at closing bracket of constructor first
* sorting of processing node (appears first)
x folder icon not greyed out
x make editing values fail safe.
-> fails when things happen while editing
x handle String quotes
x show strings without quotes
/ or: remove quotes when going into edit mode
12.7.
x save and export highlight the wrong buttons
13.7.
* current line hides underlying breakpoint
17.7.
* keyboard shortcuts
set breakpoints
x null value in italics
* continue, step should do nothing when no dbg session is active
x debug button should do nothing while debugging
x debug mode has no core libraries…, examples
18.7.
x override buildModeMenu() in Editor, instead of manual menu creation.
/ when the variable inspector window is small, expanding a node by double click will make the selection jump.
-> this is a feature (auto scroll on expand)
* debug doesn't properly restart the session. stopDebug() needs to wait for vmdisconnected
1.8.
x https://github.com/martinleopold/DebugMode/issues/3
Exception in thread "AWT-EventQueue-0" com.sun.jdi.ObjectCollectedException
at com.sun.tools.jdi.JDWPException.toJDIException(JDWPException.java:27)
at com.sun.tools.jdi.ObjectReferenceImpl.referenceType(ObjectReferenceImpl.java:139)
at com.martinleopold.mode.debug.VariableNode.getAllowsChildren(Unknown Source)
at com.martinleopold.mode.debug.VariableNode.isLeaf(Unknown Source)
2.8.
x standard examples do not appear in debug mode
8.8.
x set breakpoint (menu item) -> can produce duplicate breakpoints
12.8.
* sorting by value doesn't work inside Processing folder
x multiple steps when nodes expanded...
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 8, Size: 3
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.martinleopold.mode.debug.VariableNode.getChildAt(Unknown Source)
at javax.swing.tree.DefaultTreeModel.getChild(DefaultTreeModel.java:156)
at org.netbeans.swing.outline.DefaultOutlineModel.getChild(DefaultOutlineModel.java:231)
at javax.swing.tree.FixedHeightLayoutCache$SearchInfo.getPath(FixedHeightLayoutCache.java:1448)
at javax.swing.tree.FixedHeightLayoutCache.getPathForRow(FixedHeightLayoutCache.java:193)
at org.netbeans.swing.outline.DefaultOutlineCellRenderer.getTableCellRendererComponent(DefaultOutlineCellRenderer.java:253)
* indicate debugger status somewhere (off, busy, suspended)
13.8.
* deleting a line doesn't remove a breakpoint
* multiple tabs, selecting, fast switching… (not clearly reproducible)
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 46
at java.lang.String.charAt(String.java:686)
at processing.app.syntax.Brackets.findMatchingBracket(Brackets.java:69)
at processing.app.syntax.JEditTextArea.updateBracketHighlight(JEditTextArea.java:2002)
at processing.app.syntax.JEditTextArea.select(JEditTextArea.java:1211)
14.8.
x current line marker is lost, when moving lines above it
16.8.
* editor sometimes doesn't scroll on breakpoint hit (in combination with tab switching)
22.8.
x remove #clicked menu item text
x focus main window when toggling var. inspector (to properly enable "I" shortcut)
* focus processing application debuggee start (prevents effective use of shortcuts)
23.8.
* debugging w/2 editors open, focus-spamming second (empty) editor just after hitting debug on first:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10
at processing.app.syntax.JEditTextArea.xToOffset(JEditTextArea.java:675)
at com.martinleopold.mode.debug.TextArea.xToOffset(Unknown Source)
at processing.app.syntax.JEditTextArea$MouseHandler.mousePressed(JEditTextArea.java:2388)
at com.martinleopold.mode.debug.TextArea$MouseHandler.mousePressed(Unknown Source)
...
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
* switching tabs while hitting continue... (sporadic)
SEVERE: VMEventReader quit
java.lang.NullPointerException
at com.martinleopold.mode.debug.DebugEditor.clearCurrentLine(Unknown Source)
at com.martinleopold.mode.debug.Debugger.continueDebug(Unknown Source)
at com.martinleopold.mode.debug.Debugger.stepOutIntoViewOrContinue(Unknown Source)
at com.martinleopold.mode.debug.Debugger.vmEvent(Unknown Source)
at com.martinleopold.mode.debug.VMEventReader.run(Unknown Source)
BUGS:
* debugging w/2 editors open, focus-spamming second (empty) editor just after hitting debug on first:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 10
at processing.app.syntax.JEditTextArea.xToOffset(JEditTextArea.java:675)
at com.martinleopold.mode.debug.TextArea.xToOffset(Unknown Source)
at processing.app.syntax.JEditTextArea$MouseHandler.mousePressed(JEditTextArea.java:2388)
at com.martinleopold.mode.debug.TextArea$MouseHandler.mousePressed(Unknown Source)
...
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
* switching tabs while hitting continue... (sporadic)
SEVERE: VMEventReader quit
java.lang.NullPointerException
at com.martinleopold.mode.debug.DebugEditor.clearCurrentLine(Unknown Source)
at com.martinleopold.mode.debug.Debugger.continueDebug(Unknown Source)
at com.martinleopold.mode.debug.Debugger.stepOutIntoViewOrContinue(Unknown Source)
at com.martinleopold.mode.debug.Debugger.vmEvent(Unknown Source)
at com.martinleopold.mode.debug.VMEventReader.run(Unknown Source)
! stepping out of print(), println() returns to the same line
-> NullPointerException, AbsentInformation + VMMismatchException when restarting dbg
* debug doesn't properly restart the session. stopDebug() needs to wait for vmdisconnected
UX BUGS:
! editor sometimes doesn't scroll on breakpoint hit (in combination with tab switching)
* line highlight on first line doesn't move down
* deleting a line doesn't remove a breakpoint
* debug button highlight not working
-> removes highlight when mouse moved (rollover event, p5 bug?)
* implicit stepping (invisible code) updates var inspector
* can't set breakpoint in a classes constructor?
* stepping into constructors, lands at closing bracket of constructor first
* sorting of processing node (appears first)
* sorting by value doesn't work inside Processing folder
* current line hides underlying breakpoint
ENHANCEMENTS:
x use resources/theme/theme.txt for highlight colors (current, breakpoint)
* in stacktrace indicate if in native or static method
* rethink: isPaused() vs. isBusy()
* stepping out of setup doesn't stop in draw() (should it?)
* VMEventReader should reset things too, on disconnect? (to avoid invalid states…)
* continue, step should do nothing when no dbg session is active
x indicate debugger status somewhere (off, busy, suspended)
QUESTIONS:
* p5 alpha errors
* file menu takes a long time to open the first time
* <Error>: CGContextGetCTM: invalid context 0x0
x translate: sketch line numbers --> after pre/Users/mlg/Documents/NetBeansProjects/DebugMode/TODO.txtprocessing
x line background color
x how to extend p5 classes when all i want is change one member to a subclass
REQUESTS:
* JavaBuild/Compiler : allow custom compiler flags, especially -g (generate debug info)
* switch to tab by name: Sketch.java: make public: protected void setCurrentCode(String findName)
* Editor: method to clear console. without subclassing (console is protected)
* Editor: method to get caret line, without using getTextArea().getCaretLine() (for future releases that won't use JEditTextArea)
* JEditTextArea: allow setting TextAreaPainter. (e.g. using a factory method)
* JEditTextArea: make ComponentHandler, MouseHandler, DragHandler protected
x Editor.java: allow setting TextArea without overwriting class and copying/modifying constructor. copying the constructor is not easy due to protected/private fields..
--> factory method
* switching modes doesn't produce a windowClosing() event at the editor. (need to override dispose() instead)
OBSERVATIONS:
11.6.2012
+ notice the janus head
+ design iterations
+ & implementation grind
14.6.2012
+ extensive todo and log ftw
+ public repo is kinda rewarding
+ dev methodology
+ quick prototypes
+ roughly implement critical features
+ quickly see if/how they work together
+ good api design
+ better have all hi-priority features 50% done than some random ones at 100%
+ iteratively flesh out and refine
+ top down view on design
SYMBOLS:
* … todo item
x … done item
+ … simple enumeration (no todo)
/ … deferred todo
? … not sure about doing this
! … important todo