| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
A debugging aid: 'subx --map translate' dumps a mapping from functions
to addresses to a file called "map", and 'subx --map run' loads the mapping
in "map", augmenting debug traces.
Let's see how much this helps. Debugging machine code has been pretty painful
lately.
|
|
|
|
| |
subx: append to trace
|
| |
|
|
|
|
|
| |
Some syscalls expect null-terminated strings while others get lengths.
Be clear about this distinction.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Another sanity check.
We don't really have a clear big picture yet. But I've now slapped on checks
for all the issues I was worrying about.
A more rigorous solution would be some sort of interval tree. We'd also
need to track segments generated at translation time. We don't do that
so far.
|
|
|
|
| |
Error messages if we ever get segments messed up.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Now simulated 'Memory' isn't just a single flat array. Instead it knows
about segments and VMAs.
The code segment will always be first, and the data/heap segment will always
be second. The brk() syscall knows about the data segment.
One nice side-effect is that I no longer need to mess with Memory initialization
regardless of where I place my segments.
|
| |
|
| |
|
| |
|
| |
|
|
|