I'm sure somebody already told you this, but HyperSpec really is your friend. If you would look TRACE up, you would see that the syntax is as follows [*]:
trace function-name*
Notice that TRACE does not accept a form or a s-expression, only a function name. So instead of your (trace (get-macro-character #\`)) all you needed to do was what you did with (trace SYSTEM::READ-BACKQUOTE), simply pass a function name to it, resulting in (trace get-macro-character).
-- Richard Krushelnitskiy "I know not with what weapons World War III will rkrush (at) gmx.net be fought, but World War IV will be fought with http://rkrush.cjb.net sticks and stones." -- Albert Einstein
> I'm sure somebody already told you this, but HyperSpec really is your > friend. If you would look TRACE up, you would see that the syntax is as > follows [*]:
> trace function-name*
> Notice that TRACE does not accept a form or a s-expression, only a > function name. So instead of your (trace (get-macro-character #\`)) all > you needed to do was what you did with (trace SYSTEM::READ-BACKQUOTE), > simply pass a function name to it, resulting in (trace > get-macro-character).
Hopefully that's what you need, if other more experienced Lispers believe this is a wrong way of doing this, please correct me.
-- Richard Krushelnitskiy "I know not with what weapons World War III will rkrush (at) gmx.net be fought, but World War IV will be fought with http://rkrush.cjb.net sticks and stones." -- Albert Einstein
Unfortunately, function-lambda-expression is not required to return a usable name, so it may not return a name of (get-macro-character #\`) that is usable by trace (it doesn't in OpenMCL, for example).
from the spec:
"The tertiary value, name, is the ``name'' of function. The name is intended for debugging only and is not necessarily one that would be valid for use as a name in defun or function, for example. By convention, nil is used to mean that function has no name. Any implementation may legitimately return nil as the name of any function."
As a broader issue, you should be aware that whatever the name of (get-macro-character #\`) is in your implimentation - it happens to be CCL::|` reader| in OpenMCL - may be inlined, and so not produce any usable results from trace.
again, from the spec:
"If a function to be traced has been open-coded (e.g., because it was declared inline), a call to that function might not produce trace output."
So you might want to reconsider your broader goal here.