因想知道红线二处this.Value 字符型公共变量在哪赋的值,要溯源红线一处SignalVarCache 方法体的上游在哪引用,但显示有57个引用,我除了57个引用逐一设断点测试这笨办法,还有更优方法找出上游引用吗?谢谢!
Value
应该是一个属性吧?下面是我的一个方案
抛出异常时你可以在堆栈信息里看到调用源,就是这个StackTrace
我的Value是在common.cs文件中这样定义,应该不是属性吧。故意让它出错抛异常?
我这个怎么让它抛异常?
@tea2007: 不是让它抛异常,我是说抛异常时,里面就有StackTrace
可以溯源。所以这里可以主动打印这个StackTrace
你这个Value属性只有get
this.Value 字符型公共变量在哪赋的值
那你要看_value在哪赋值。
@复制粘贴机器人: 抛异常了,要怎么找?
@tea2007: 查看详细信息。
我前面说的抛异常只是举个例子,不需要主动来制造异常
@复制粘贴机器人: 我这个异常能找吗?也不是主动制造的
@tea2007: 不知道,应该不能。这个异常是这个集合在循环的同时发生了修改触发的,不是你要找的Value
。
@复制粘贴机器人: 你意思是涉及到Value的异常才行?
@tea2007: 是的,不要纠结异常了
public void AfterSetValue()
{
StackTrace st = new StackTrace(true);
var frames = st.GetFrames();
StringBuilder sb = new StringBuilder();
foreach (var item in frames)
{
sb.AppendLine($"FileName: {item.GetFileName()}, Line: {item.GetFileLineNumber()}, MethodName: {item.GetMethod()?.Name}");
}
Console.WriteLine(sb.ToString());
}
@复制粘贴机器人: 我搜 _Value = 找到 _Value = Value 再搜 Value = 找到下图,应该是这里
@tea2007:
没看到你这有_value
@复制粘贴机器人: 谢谢,vs自带溯源功能,看楼下我 2023-10-24 11:40的回复
@tea2007: 666
在Value的get处打印堆栈就行了。
谢谢,vs自带溯源功能,看楼下我 2023-10-24 11:40的回复
set方法放个断点不就行了吗?
vs自带溯源(找调用源)功能
@tea2007:
留意一下断点界面,会有一个调用堆栈,每一行都是一个调用,双击会跳转到相关代码
@生命体验之kevin-Y: 谢谢
这种一般是从逻辑的开始点找……+
– echo_lovely 1年前