Something is truly weird here . . .
Here is a small excerpt from aesalon, executing on a simple malloc test:
1: Portal::write_memory(address, Byte) called . . .
2: Portal::read_memory() called . . .
3: Portal::write_memory(address, Word) called . . .
4: Portal::single_step() called . . .
5: Portal::write_memory(address, Byte) called . . .
6: Portal::read_memory() called . . .
7: Couldn't read memory: No such process
Note that read_memory succeeds once (2), but fails when called a second time
(6-7). That is what is odd to me . . .
When objdump'd, the beginnings of main:
000000000040056b <main>:
40056b: 55 push rbp
40056c: 48 89 e5 mov rbp,rsp
40056f: 48 83 ec 10 sub rsp,0x10
There's nothing in there that would really not work, I don't think . . . which
is why I cannot figure out why it's not working . . . I suppose the second
read is not word-aligned, but then I should get a different error: EIO, or
"there was a word-alignment violation", from the ptrace man page.