我想实现一种方法来跟踪为.net v4.0编写的应用程序中的每一行代码。
一个例子。如果我有以下功能。
private bool hasValue(string value)
{
if(string.isnullorempty(value)
{
return false;
}
else
{
return true;
}}
然后当调用该函数时,我希望详细的跟踪日志包含如下内容:
函数调用|第10行|签名私有bool hasValue(字符串值)| ValuesPassed hasValue(“”) 线评估|第11行| if(string.isnullorempty(value)| ValuesPassed if(string.isnullorempty(“”) - 评估返回true 输入第13行|签名返回false |返回已采取的行动。
这种跟踪可以手动完成,但是它的工作很多,并且会弄脏代码。有没有办法通过.net或第三方插件自动获得此级别的跟踪?
谢谢
答案 0 :(得分:4)
我不知道任何适用于此类事情的框架,但我想提出几个问题。
您认为这种详细追踪的效用如何?在我看来,一些有针对性的跟踪语句就足以解决大多数调试问题。
这种追踪是否会用于现场解决方案?如果是这样,启用时可能会非常昂贵(在执行时间方面)。
您的申请量有多大?除非它很小,否则解析由您所需的跟踪解决方案生成的日志文件可能比实现某些目标跟踪更加有效。
答案 1 :(得分:1)
虽然您无法自动获得行级别跟踪,但您可以使用面向方面编程获取方法级别跟踪,其中代码可以在方法入口\出口点的后期构建中编织。您编织的代码可以跟踪方法名称,参数和值等。像PostSharp这样的工具可以自动为您完成此任务:
答案 2 :(得分:1)
答案 3 :(得分:0)
Runtime Flow(由我开发)提供.NET 4.0应用程序的自动功能级别跟踪。