trussライブラリ

trussライブラリは/sys/lib/acid/trussであり,一見C風の記述だ.

defn truss() {
	local pc, lst, offset, prevpc, pcspret, ret;

	offset = trapoffset();

	stop(pid);
	_stoprunning = 0;
	setuptruss();
	pcspret = UPCSPRET();

	while !_stoprunning do {
		cont();
		if notes[0]!="sys: breakpoint" then {
			cleantruss();
			return {};
		}
		pc = *PC;
		if match(*PC, stopPC)>=0 then {
			print(pid,": ",trapreason(),"\t");
			print(fmt(pc,'a'),"\t",fmt(pc,'i'),"\n");
			cleantruss();
			return {};
		}
		:

他にもstep()やnext(),ブレークポイントを設定するbpsetといったプリミティブそうな機能もライブラリとして実装されている.
エディタのacmeも癖があるけど,acidも奥が深そうねぇ.