mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-21 11:40:03 +00:00
4f2ac1b76b
and core dumps in particular. See notes: new types: register is something that when dereferenced gives you the registers. the Ureg is no longer mapped at 0. refconst is something that gives a constant when dereferenced. new builtin register("AX") creates register values new builtin refconst(0x123) creates refconst values new builtin var("foo") is equivalent to the variable foo (it returns foo but can also be used as the lhs of an assignment). new acid function getregs() returns a list of the current values of registers. new acid function setregs() sets the current registers to those values. note that getregs and setregs operate on register locations, not the register values themselves. new acid function resetregs() sets registers to register("AX"), etc. new acid function clearregs() sets all registers to constant -1. the default register settings are as in resetregs(), not small numbers. new acid variables coretext, pids, systype, corefile, cmdline. new behavior: local variable lookup, stk, etc., use the acid values of registers (*PC, *SP, and so on), so the thread support code can change the context completely. unary + is applicable to more data types and prints more often.
79 lines
2.5 KiB
Text
79 lines
2.5 KiB
Text
Changes from the Plan 9 acid (beyond the
|
|
obvious changes necessary to compile without
|
|
Ken's compiler and with the new libmach interface).
|
|
========================================
|
|
|
|
the input-line print verb is %Z, so that %L can be for locations
|
|
|
|
the register block is explicitly "mapped" at 0 by xget1, xget2, ...
|
|
for compatibility with old acid, even though libmach
|
|
doesn't participate in this lie anymore.
|
|
|
|
main accepts pid, file, and core in any order
|
|
|
|
the ptab only records pids (no ctl fd anymore).
|
|
|
|
new builtin sysstop(pid) runs pid until the next syscall
|
|
|
|
map() returns 5-tuples: (name, filename, base, end, offset)
|
|
filename is new
|
|
|
|
map() expects a 5-tuple too
|
|
|
|
new acid maps() prints maps nicely.
|
|
|
|
strace expects a list of register names and values like
|
|
{"PC", *PC, "SP", *SP}
|
|
|
|
strace returns 5-tuples now:
|
|
{fn, pc, callerpc, paramlist, locallist}
|
|
|
|
new builtin includepipe(cmd) includes the standard output
|
|
of running cmd.
|
|
|
|
symbols returns 4-tuples now: {name, type, addr, file}
|
|
|
|
new builtin textfile() returns the current set of open text files
|
|
as a list of {file, base} pairs.
|
|
|
|
new builtin textfile({file, base}) adds a new file's symbols and text
|
|
offset by base for relocatables.
|
|
|
|
new builtin deltextfile(file) removes a file from the set of open text files.
|
|
|
|
both textfile and deltextfile update symbols.
|
|
|
|
new types: register is something that when dereferenced gives you
|
|
the registers. the Ureg is no longer mapped at 0.
|
|
refconst is something that gives a constant when dereferenced.
|
|
|
|
new builtin register("AX") creates register values
|
|
new builtin refconst(0x123) creates refconst values
|
|
|
|
new builtin var("foo") is equivalent to the variable foo
|
|
(it returns foo but can also be used as the lhs of an assignment).
|
|
|
|
new acid function getregs() returns a list of the current values of registers.
|
|
new acid function setregs() sets the current registers to those values.
|
|
note that getregs and setregs operate on register locations, not the
|
|
register values themselves.
|
|
new acid function resetregs() sets registers to register("AX"), etc.
|
|
new acid function clearregs() sets all registers to constant -1.
|
|
|
|
the default register settings are as in resetregs(), not small numbers.
|
|
the Ureg is not mapped at 0 anymore.
|
|
|
|
new acid variables coretext, pids, systype, corefile, cmdline.
|
|
|
|
new behavior: local variable lookup, stk, etc., use the acid values of registers
|
|
(*PC, *SP, and so on), so the thread support code can change the context
|
|
completely.
|
|
|
|
unary + is applicable to more data types and prints more often.
|
|
|
|
====
|
|
|
|
yet to be done:
|
|
|
|
elflink has the linking info for elf on linux
|
|
|