枚举创建的断点

时间:2011-08-03 16:32:41

标签: c# debugging enums

我有一个枚举,我试图找出实际创建它的实例的代码。我有很多代码,我相当肯定我正在寻找的代码是在我目前的解决方案中没有的许多模糊项目之一,所以找到用法是行不通的。

我知道在枚举上没有构造函数这样的东西,但我真的想要一种方法来打破执行并在任何代码创建和使用此枚举时检查调用堆栈。我已经尝试在单个枚举值上设置断点,但它们从不切换,即使我知道它们正被使用。

这是可能的,还是我需要采取不同的路线来找到我要找的东西。

3 个答案:

答案 0 :(得分:2)

嗯,这在技术上是可行的,假设您控制枚举本身的代码:

  1. 将YourEnum重命名为YourEnumInternal
  2. 创建类YourEnum并为YourEnumInternal中的每个值添加一个Property,名称相同,并返回YourEnumInternal的相应成员。
  3. 在每个属性中放置断点。
  4. 另外,如果您真正想要做的是查看此枚举的成员被添加到特定集合时的调用堆栈(正如您在评论中所述),为什么不在集合中找到用法(希望有更小的用法)范围?)并添加项目的断点(或更好的,TracePoints与$ CALLSTACK psuedovariable)?

答案 1 :(得分:0)

您可以使用Find All References,然后可以在适当的位置设置断点。

答案 2 :(得分:0)

您可以使用VS中的对象浏览器来搜索枚举。它包括引用的程序集(但不作为项目的解决方案的一部分)。