Can someone explain why erlang:trace (self(), true, []) gets a badmatch but erlang:trace (all, true, []) would be OK? The doc says the 1st argument is a PidSpec which is either a pid for a local process, or an atom like existing, new, all, etc.