new tracing functions, than doesn't call malloc, recuirsion guard