Skip to content
Merged
Changes from 23 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions assembly/api-debugger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,33 +167,34 @@ export function getPageDump(index: u32): Uint8Array {
return page;
}

export function getMemory(address: u32, length: u32): Uint8Array {
export function getMemory(address: u32, length: u32): Uint8Array | null {
Comment thread
DrEverr marked this conversation as resolved.
if (interpreter === null) {
return new Uint8Array(0);
return null;
}
const int = <Interpreter>interpreter;
const result = new Uint8Array(length);
const faultRes = new MaybePageFault();
int.memory.bytesRead(faultRes, address, result, 0);
if (faultRes.isFault) {
return new Uint8Array(0);
return null;
}
return result;
}

export function setMemory(address: u32, data: Uint8Array): void {
export function setMemory(address: u32, data: Uint8Array): boolean {
Comment thread
DrEverr marked this conversation as resolved.
if (interpreter === null) {
return;
return false;
}
const int = <Interpreter>interpreter;
const end = address + data.length;
const faultRes = new MaybePageFault();
for (let i = address; i < end; i++) {
int.memory.setU8(faultRes, i, data[i - address]);
if (faultRes.isFault) {
throw new Error(`Page fault at ${faultRes.fault} when setting memory.`);
return false;
}
}
return true;
}
Comment thread
DrEverr marked this conversation as resolved.

function fillRegisters(registers: Registers, flat: u8[]): void {
Expand Down