查看返回值?

时间:2010-01-17 04:40:01

标签: c++ visual-studio-2008

说我有以下

int num = 40 + str2Int("30");

无论如何使用visual studio 2008告诉Str2Int返回什么而不进入函数并返回?

6 个答案:

答案 0 :(得分:9)

在“自动”变量窗口中,它将显示您刚刚步过的任何操作的结果。

编辑:消除了对此位置的不确定性(感谢Michael Burr)

答案 1 :(得分:2)

您可以使用Visual Studio立即窗口。 这将允许您评估各种表达式。

答案 2 :(得分:2)

由于返回值通常在EAX寄存器中,因此您将$eax'变量'放在监视窗口中。当您跳过函数调用时,EAX中的内容就是该函数返回的内容。

如果您还提供hr格式符号,调试器将显示HRESULT或Win32错误消息(如“S_OK”或“访问被拒绝”),而不仅仅是原始数字。将每个($eax$eax,hr)放在单独的监视条目中会非常方便。

另一个有用的条目是$err,它显示了GetLastError()将返回的内容(并且hr格式符号可以应用于它 - 或者其他任何内容):

$eax
$eax,hr
$err
$err,hr

请注意,旧版本的VS调试器可能希望您使用@而不是$来启动这些变量,但调试器团队的成员已声明$最好保持与“Windows调试工具”工具集保持一致(我认为对@的支持已弃用,可能会在某些时候删除。)

答案 3 :(得分:0)

cout << Str2Int("30") << endl;

或者!

cout << (num - 40) << endl;

答案 4 :(得分:0)

正确的编程方法是始终编写一小段代码来测试工作原理。例如,如果您想学习str2int函数(就像您所说的那样),请为其创建一个测试文件。使用不同的参数运行它,研究它是如何工作的。然后,您将最终确信它正常工作,并且不需要在表达式中进入它。一旦程序员熟悉了工具,他们信任他们,并且不需要总是检查他们的工作方式。

此外,如果这是你已经实现的函数,上面的直接推论是创建一个带有单元测试的文件。单元测试以各种方式执行功能,直到您可以相信它确实有效。

答案 5 :(得分:0)

我不想要这个,因为我在PowerPC上,我不使用Microsoft任何东西,但你可能想要注册列表和汇编代码视图...... MSVC必须有那些。

在函数调用之后停止指令(应该很容易选择),并且根据Wikipedia,返回值应该在EAX / RAX中。复制该值(或学习调试器的语法以引用寄存器)并转换为适当的类型。