说我有以下
int num = 40 + str2Int("30");
无论如何使用visual studio 2008告诉Str2Int返回什么而不进入函数并返回?
答案 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中。复制该值(或学习调试器的语法以引用寄存器)并转换为适当的类型。