gpt4 book ai didi

visual-studio - 如何在 Visual Studio 中调试时执行 GetLastError()

转载 作者:行者123 更新时间:2023-12-03 06:24:26 26 4
gpt4 key购买 nike

您正在单步执行 C/C++ 代码,并且刚刚调用了失败的 Win32 API(通常返回一些无用的通用错误代码,例如 0)。您的代码不会进行后续的 GetLastError() 调用,您可以检查其返回值以获取更多错误信息。

如何在不重新编译和重现失败的情况下获取错误值?在“监视”窗口中输入“GetLastError()”不起作用(“语法错误”)。

最佳答案

正如多次提到的,@err 伪寄存器将显示最后一个错误值,@err,hr 将以字符串形式显示错误(如果它可以)。

根据 Visual Studio 团队成员 Andy Pennell 的说法,从 VS 7 (Visual Studio .NET 2002) 开始,不推荐使用“@”字符来指示伪寄存器 - 他们更喜欢使用“$”(如$err,hr)。暂时支持$和@。

您还可以在条件断点中使用 $err 伪寄存器;因此,只有当最后一个错误非零时,您才能中断一行代码。这可能是一个非常方便的技巧。

其他一些您可能会觉得方便的伪寄存器(来自约翰·罗宾斯的杰出著作 "Debugging Applications for Microsoft .NET and Microsoft Windows" ):

  • $tib - 显示线程信息 block
  • $clk - 显示时钟计数(对于计时功能有用)。要更轻松地使用此功能,请放置一个 $clk watch ,然后再放置一个 $clk=0 watch 。第二 block watch 将在显示当前值后清除伪寄存器,因此您执行的下一步或步骤只为您提供该操作的时间。请注意,这是一个粗略的计时,其中包括相当多的调试器开销,但它仍然非常有用。

关于visual-studio - 如何在 Visual Studio 中调试时执行 GetLastError(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/159888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com