那里';windbg中的内存更改无法撤消?

那里';windbg中的内存更改无法撤消?,windbg,Windbg,我正在尝试撤消内存窗口中的更改: 但是CTRL-Z不起作用,也没有这样的菜单项: 是否支持此功能?在进行实时调试时,通常不太使用撤消功能。如果线程结束,您不能简单地重新创建它。如果你越过一条线,你就不能轻易地回到以前的状态。如果关闭文件句柄,则无法轻松重新打开它 如果更改了内存,WinDbg应在何时禁用撤消该功能?一旦进程写入该内存?或者,即使在编辑后写入内存,您是否希望能够撤消 那么应该撤消哪些内存内容?是否撤消您输入的值(即撤消流程执行的操作)或输入值之前的值(即撤消您所做的编辑,包括流

我正在尝试撤消内存窗口中的更改:

但是CTRL-Z不起作用,也没有这样的菜单项:


是否支持此功能?

在进行实时调试时,通常不太使用撤消功能。如果线程结束,您不能简单地重新创建它。如果你越过一条线,你就不能轻易地回到以前的状态。如果关闭文件句柄,则无法轻松重新打开它

如果更改了内存,WinDbg应在何时禁用撤消该功能?一旦进程写入该内存?或者,即使在编辑后写入内存,您是否希望能够撤消

那么应该撤消哪些内存内容?是否撤消您输入的值(即撤消流程执行的操作)或输入值之前的值(即撤消您所做的编辑,包括流程所做的更改),或仅撤消您编辑但流程尚未更改的值

如您所见,在调试场景中实现撤销功能可能会变得非常困难。依我看,WinDbg从来没有被设计成具有撤销功能

我甚至想说人们不使用内存窗口来编辑内存内容。为什么

当您执行调试会话时,您希望记录您的步骤,以便您自己或其他人可以验证和重现您的操作。在这种情况下,您可以使用
.logopen
并记录您所做的一切。在命令窗口之外执行的操作将不会被记录,从而中断验证工作流


你会怎么做?您可以使用
d
isplay命令之一(
db
dd
dp
或类似命令)在编辑之前显示内存内容。然后使用
e
dit命令(
eb
ed
,…)更改内存。每当您想要恢复旧值时,您都会查看
d
命令的先前输出,然后再次查看
e
这些值。

在执行实时调试时,通常不太使用撤消功能。如果线程结束,您不能简单地重新创建它。如果你越过一条线,你就不能轻易地回到以前的状态。如果关闭文件句柄,则无法轻松重新打开它

如果更改了内存,WinDbg应在何时禁用撤消该功能?一旦进程写入该内存?或者,即使在编辑后写入内存,您是否希望能够撤消

那么应该撤消哪些内存内容?是否撤消您输入的值(即撤消流程执行的操作)或输入值之前的值(即撤消您所做的编辑,包括流程所做的更改),或仅撤消您编辑但流程尚未更改的值

如您所见,在调试场景中实现撤销功能可能会变得非常困难。依我看,WinDbg从来没有被设计成具有撤销功能

我甚至想说人们不使用内存窗口来编辑内存内容。为什么

当您执行调试会话时,您希望记录您的步骤,以便您自己或其他人可以验证和重现您的操作。在这种情况下,您可以使用
.logopen
并记录您所做的一切。在命令窗口之外执行的操作将不会被记录,从而中断验证工作流

你会怎么做?您可以使用
d
isplay命令之一(
db
dd
dp
或类似命令)在编辑之前显示内存内容。然后使用
e
dit命令(
eb
ed
,…)更改内存。无论何时想要恢复旧值,都可以查看
d
命令的先前输出,然后再次查看
e
这些值