You can specify a variable in the except statement that includes traceback information.
... code ...
... other remediation ...
{input} = args;
{error, msg, val, traceback} = input;
su = $string_utils;
name = this:debug_name(traceback[1][4]);
out = {su:message_text({"[bold][red]", toliteral(error), "[normal]: ", msg, " in [bold][yellow]", name, "[white]:[red]", traceback[1][2], "[white], line [green]", traceback[1][6], "[normal] (this == [bold][cyan]", traceback[1][1], "[normal])"}, #2)};
first = 1;
for call in (`traceback[2..$] ! ANY => {}')
{_this, _verb, _prog, _verb_loc, _player, _line} = call;
loc = this:debug_name(_verb_loc);
out = {@out, su:message_text({"... called from [bold][yellow]", loc, "[white]:[red]", _verb, "[normal] (this == [bold][cyan]", _this, "[normal]), line [bold][green]", _line}, #2)};
endfor
out = {@out, "(end of traceback)"};
return out;