如何在 Visual Studio 中调试单行函数?

Posted

技术标签:

【中文标题】如何在 Visual Studio 中调试单行函数?【英文标题】:How do I debug a single line function in Visual Studio? 【发布时间】:2016-09-26 20:14:28 【问题描述】:

Visual Studio 中有没有办法调试只有一行的函数?

类似:

int foo(int a)  return a + 1; 

似乎当VS进入函数时,没有任何数据被正确初始化,并且在检查变量'a'时,我得到了垃圾数据。一旦我进入下一行,数据通常会被初始化,但由于这是一个单行函数,它似乎永远不会这样做,这很烦人(因为我需要重新编译所有内容以检查 a 的值)。

【问题讨论】:

你能在函数调用之后设置断点而不是在它声明的地方吗? 我想这已经足够好了,虽然在某些情况下这可能还不够好,但我想这会很罕见,没关系。 单行函数...也可能是 3 行函数(取决于代码样式...我更喜欢后者)。但无论如何,源代码的编写方式没有任何区别......如果你没有它。你想调试什么?你有任何 .pdb 文件吗?此函数是否在您调用的 .dll 中定义?如果没有更多信息可用,恐怕您将不得不挖掘(编译器生成的)汇编代码。 使用 step into (F11) 通常对我有用,尽管我承认单行函数并不总是易于调试器处理。 【参考方案1】:

如果是简单功能,可以开始调试,按Alt+8进行汇编调试

【讨论】:

【参考方案2】:

我不知道你是否可以按指令而不是按行但你为什么不把它重新格式化为

int foo(int a)

    return a + 1;

【讨论】:

如果我无权访问代码,则无法执行此操作。 如果它是一个黑匣子并且发布的条件不像宣传的那样,你应该打电话给原始开发者。你能把这个问题放在上下文中吗? @Andrew 如果您无权访问代码,您将无法看到它,也无法调试它。您始终可以编辑源文件并重新编译。您的问题没有包含太多关于可能性的背景信息。 Andrew 在问题中表示他不想重新编译任何代码。 (无论如何,这个答案非常明显。) 这不能作为问题的答案(即使问题不完整)。

以上是关于如何在 Visual Studio 中调试单行函数?的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio调试之断点技巧篇

visual studio 2012如何调试和运行程序?

Visual Studio Code - Python 调试 - 执行时步入外部函数的代码

在 visual studio 中如何看它执行的步骤,

如何在 Visual Studio (C++) 中设置发布分析

单行上的 Visual Studio XML 摘要注释