当我调试时,我经常不得不处理不使用中间变量来存储返回值的方法:
private int myMethod_1() { return 12; } private int myMethod_2() { return someCall( someValue ); }
好吧,为了重新创建一个bug,我经常需要动态更改值.在这里,我想看看myMethode_1
返回零时会发生什么.同样的事情myMethod_2
.
有没有办法在不修改代码的情况下做到这一点?我想做的是,在返回行(或结束括号)上放置一个断点并输入一个新的返回值.
注意:我正在使用Visual Studio 2005和Visual Studio 2008.
谢谢 !
函数的返回值通常在EAX寄存器中返回。
如果仅在函数末尾设置断点,则更改EAX可能会更改返回值。您只需在监视窗口中写入其名称即可在Visual Studio中更改和查看任何寄存器。
如果您进行了优化,或者即使函数是类似的简单功能,也很可能会失败return 12
。如果您返回的内容不适合32位寄存器,则可能也无法正常工作。至少值得尝试。