R:在R中获取更多信息性错误消息

and*_*ewH 7 debugging callstack r metaprogramming function-call

我仍然不擅长使用R的标准调试工具,而且我经常发现错误和追溯都没有告诉我足以弄清楚发生了什么.我想在出错时更改R的默认行为以提供更多信息.

具体来说,我总是喜欢call,包括formals,分配给每个形式的表达式(默认表达式,如果默认是指定的表达式),以及每个参数表达式的值在适当的位置评估,所有返回的格式为使得哪个表达式与哪个正式表达式以及哪个值与哪个表达式相匹配使得它明确无误.由于值可能很大或者是意外或渐渐消失的类型,我希望它们以一种格式返回,例如a str(),它可以做出关于截断的明智选择并正确识别承诺和其他倾向于将自己评估为某些东西的对象类型在你看到它们之前别的.

最后,对于调用堆栈中的每个函数,我都喜欢所有这些以及每个函数的return值,call从错误回到(并包括)我编写的一些代码.在我看来,自然结构将是一个单独的R对象,一个list列表,每个列表call(可能整理,broom类似,与一些列表列的tibble),我可以以显而易见的方式单步执行.

如果我描述了一些标准的R调试工具,我还没有学会如何正确使用,我很抱歉.这甚至可能吗?如果是,可以通过R的可用错误处理程序实现,还是需要一些程序包规模的编码项目?

我最希望有一个解决方案来更改对此的默认错误响应,但如果这是不切实际的,我会接受一个解决方案,要求我使用包装器或类似的东西重新运行代码块.