【问题标题】:Can we configure breakpoints in visual studio such that a line of code(assume as a function call) executes during every break-point?我们可以在 Visual Studio 中配置断点,以便在每个断点期间执行一行代码(假设为函数调用)吗?
【发布时间】:2017-08-23 15:00:37
【问题描述】:

我只是想知道我们是否可以在Visual Studio 2015中配置(最好以c#代码的形式)断点,这样,每当它在进程执行期间遇到它必须执行一行代码(例如,创建类的对象或调用静态类的函数,并且仅适用于该进程。

我知道在单击断点时我可以设置可以执行的操作,但我确实想通过代码来实现它(通过将我的要求传达给 Visual Studio 的调试器或任何其他方式)我在当前进程中设置的所有断点都必须执行同一行。提前谢谢你。

【问题讨论】:

  • 其他调试器(例如windbg)允许您在断点命中时运行脚本。不过调用函数可能很危险。
  • @GANESH GANI,我同意Waescher的建议,在VS IDE中很难实现,我们可以将消息输出到输出窗口或调用代码来破坏项目,如Debugger.Breakp()方法停止调试,或使用断点操作和跟踪点将消息打印到输出窗口:msdn.microsoft.com/en-us/library/5557y8b4(v=vs.140).aspx。但是和你的要求一样,确实没有解决办法。

标签: c# visual-studio debugging breakpoints code-injection


【解决方案1】:

这对于 Visual Studio 断点是不可能的。您对“操作”的意思称为“跟踪点”,more details here

但是,知道您可以找到 whether a debugger is attached 可能会对您有所帮助,如果可以,请在您的代码中执行自定义逻辑,如下所示:

using System.Diagnostics;

if (Debugger.IsAttached)
{
    // call code here which gets not executed in the released version of your app
}

但请注意,用户也可以附加调试器,因此请小心您计划在那里执行的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-24
    • 2010-12-29
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多