@Alfkil
Tested registers part. From the first look noticed that all fpr ones have some madness values like:
fpr[0] : -1188595570704978439862-2380927392387239872387923072307230723072307923709237020370273270323072307 and so on and so on. Even didn't fit into the window.
That just when i simple load test case and do nothing. Only load it. Then hit breakpoint in our "bad" test case on puts("hello"), and registers updates, etc, as expected. Most of FPR registers start to show "sane" values, but not all.
Question is : should't we "clear" all registers when we simple do "load" of binary, without atually hitting a start ?
Next, find out again crash. 100% reproducable all the time. To reproduce:
-- load our test case
-- hit bp on "puts("hello")
-- hit start (so it breaks)
-- hit "step out" button, and immediately crashes. Stack trace are:
Stack trace:
(0x619F7460) [/home/alfkil/Spotless-ahead/SimpleDebug/Breaks.cpp:155] Spotless (46):_ZN6Breaks31memory_insert_break_instructionEjPj()+0xcc (section 1 @ 0x50F58)
(0x619F7490) [/home/alfkil/Spotless-ahead/SimpleDebug/Breaks.cpp:152] Spotless (46):_ZN6Breaks31memory_insert_break_instructionEjPj()+0xa8 (section 1 @ 0x50F34)
(0x619F74C0) [/home/alfkil/Spotless-ahead/Spotless/Spotless.cpp:274] Spotless (46):_ZN8Debugger7stepOutEv()+0xb8 (section 1 @ 0x9900)
(0x619F74E0) [/home/alfkil/Spotless-ahead/Spotless/Spotless.cpp:115] Spotless (46):_ZN7Actions11handleEventEP5Event()+0x4f0 (section 1 @ 0x121C8)
(0x619F7710) [/home/alfkil/Spotless-ahead/ReAction/Widget.cpp:403] Spotless (46):_ZN6Widget12processEventEmt()+0x728 (section 1 @ 0x2BB0C)
(0x619F7900) [/home/alfkil/Spotless-ahead/ReAction/Widget.cpp:194] Spotless (46):_ZN6Widget12waitForCloseEv()+0x594 (section 1 @ 0x2A92C)
(0x619F7AB0) [/home/alfkil/Spotless-ahead/Spotless/Spotless.cpp:63] Spotless (46):_ZN8Spotless6unfoldEv()+0x54 (section 1 @ 0x600C)
(0x619F7AD0) [/home/alfkil/Spotless-ahead/main.cpp:5] Spotless (46):main()+0x114 (section 1 @ 0x339C)
(0x619F7D20) native kernel module newlib.library.kmod+0x00002614
(0x619F7D70) native kernel module newlib.library.kmod+0x00003340
(0x619F7F20) native kernel module newlib.library.kmod+0x00003864
(0x619F7F50) Spotless (46):_start()+0x170 (section 1 @ 0x3210)
(0x619F7F90) native kernel module dos.library.kmod+0x0002a490
(0x619F7FC0) native kernel module kernel+0x0005ede4
(0x619F7FD0) native kernel module kernel+0x0005ee5c
PS. Imho our current GUI layout start to act up. I mean, you need to click over the tabs all the times to see disassembler and registers. Should't be they separate windowses, or sub-windowses , which we always see ?
EDIT:
Also found GUI bug, to reproduce:
-- run spotless
-- hit RMB , choose "configure"
-- see, on the left/top side, you have some empty small square appears and stay there since that time forever.
EDIT2:
Another issue/sometime-crash:
-- run spotless
-- hit load , choose our test case, hit "bp" on "puts hello"
-- hit start. once break, start to hit "step over" until program ends and exit, and load button again will colorized
-- load again same test case, hit "bp" on "puts hello"
-- hit start. once break, now start to hit "step into" until program ends and exit, and load button again will be colorized.
-- now, load again test case, hit again "bp" on "puts hello" and hit start.
At this point, you or crashes, or disassembler window will show you <not a readable address>, or all other sort of issues.
Edited by kas1e on 2022/4/10 16:26:32
Edited by kas1e on 2022/4/10 16:27:32