Check-in [15cd423edf]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Backup developer notes.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 15cd423edf71c114f34440df3924ba4eb22cccfb
User & Date: squirreljme 2019-06-17 07:03:42
Context
2019-06-17
11:43
Correct CallTraceElement.traceRaw() not filling frame details properly; Improvements in SpringCoat's frame trace. check-in: b07a6f34f7 user: stephanie.gawroriski tags: trunk
07:03
Backup developer notes. check-in: 15cd423edf user: squirreljme tags: trunk
01:08
Add support for call traces in SpringCoat. check-in: 339bb6b0b3 user: stephanie.gawroriski tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to assets/developer-notes/stephanie-gawroriski/2019/06/16.mkd.

8
9
10
11
12
13
14












































































have kind of a notepad and drawing into it to help me figure things out.
This is easier than having a separate part of it.

## 00:36

Oh the bits are packed and the format is hybrid binary and text, so that
makes sense why the image looks weird.



















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
have kind of a notepad and drawing into it to help me figure things out.
This is easier than having a separate part of it.

## 00:36

Oh the bits are packed and the format is hybrid binary and text, so that
makes sense why the image looks weird.

## 09:57

Checked `jvmLoadString()` it is perfectly fine and I see nothing wrong with
it. Now I suppose I shall do `String.intern()`.

## 09:59

I could do a quick check, if `intern()` just returns `this` then I know that
is wrong.

## 10:01

Okay, intern is fine as just returning has no effect. So maybe it is the
constructor for string?

## 10:02

Okay so even blocking out the constructor still makes it happen.

## 10:05

You know it seems to fail after instance fields are used, so maybe that is
incorrect? Like maybe memory corruption?

## 10:05

Actually completely disabling garbage collection, things work again so I think
the garbage collector is destroying things?

## 10:08

Okay, completely removing the free operation fixes things, so I think free is
causing some issues. Very possible it has a bug in it.

## 10:17

Okay I noticed that in my allocator, I am not clearing the free bit in the
blocks. So the same memory is being used all the time.

## 10:19

Yay I figured it out. I was not marking free blocks which were claimed as
taken, so all allocations would literally use the same block assuming it
would fit then possibly partition things. Like it would only mark it as
used if the block was smaller than the desired size.

## 11:41

Okay, so I am going to have virtual pointers for 64-bit on RatufaCoat because
I am finding out that there are no real ways to allocate the lowest 32-bits on
many operating systems. It will be slower but it should work across various
things!

## 16:01

I think the exception chain being odd is happening because I think the
exception register is not cleared? So like the exception flag always gets hit?

## 16:16

Before I continue, I will very much need to have stack traces. Because that
would probably save me lots of headache in the future.

## 18:33

Figured out how to make the stack traces nice without complicating how they
are encoded for example. So what I mean by this is I have two system calls,
one to get the height of the call stack (how deep the methods are) and another
to get elements from it. Since having memory access to the system call and
whatnot would be complicated, the first parameter is going to be the depth
from the top of the call stack and then the second will be another parameter
of it. This way new elements can be added without having to worry about how
many need to be stored. Since I really want the VM to be future proofed and
there might be different ways to obtain the information that does not make
sense in an array.