我需要在单个WinDbg会话的整个生命周期中保持一个特定的值(准确的说是一个string)。
原因是,我需要在WinDbg会话的整个生命周期的几个地方(通过.if
语句,确切地说)来处理这个variables,而且我希望在会话启动时定义它 – 使用一个将被传递的论据。 它不能被定义或处理 – 我必须能够在debugging会话中的任何时候解决它,当然我不想冒这个风险,因为它可能被重新定义。
我正在考虑使用一个文件或共享内存,但我更喜欢用WinDbg脚本来解决这个问题。 如果可能的话,这显然是一个更优雅的解决scheme。
我已经在这方面做了一些在线阅读,问题是我找不到一个参考,其中的别名 (由aS
命令定义 )和用户定义的伪寄存器 ( $t0..$t19
范围内的寄存器)之间的差异$t0..$t19
,这是通过使用r
命令访问)进行了描述。 我无法真正理解每个用例。
在我看来, 别名是更好的select,因为它们可以被命名,相比之下, 用户定义的伪寄存器具有名称(不知道如何select“正确的”注册,以尽量减less可能与其他可能使用它的脚本发生冲突,或者根本没有任何区别)。
我在这里错过了什么? 在这种情况下我应该使用哪一个,还是他们不适合这种情况?