Debugging 如何在WinDBG中使用aS命令的参数
当我使用以下方法时,win32.hlp可以正确打开Debugging 如何在WinDBG中使用aS命令的参数,debugging,windbg,Debugging,Windbg,当我使用以下方法时,win32.hlp可以正确打开 0:000> aS api .shell -x winhlp32.exe -k createfile win32.hlp 0:000> w 但是,当我想使用参数$arg1时,如下所示 0:000> aS api .shell -x winhlp32.exe -k ${$arg1} win32.hlp 0:000> w createfile 将显示一条错误消息: “找不到win32.hlp createfile文件。是
0:000> aS api .shell -x winhlp32.exe -k createfile win32.hlp
0:000> w
但是,当我想使用参数$arg1时,如下所示
0:000> aS api .shell -x winhlp32.exe -k ${$arg1} win32.hlp
0:000> w createfile
将显示一条错误消息:
“找不到win32.hlp createfile文件。是否自己尝试查找此文件?”
有什么想法吗
[更新]
snoone的方法在大多数情况下都可以很好地工作,但有时会显示以下对话框
显然,文件名“win32.hlp”被错误地视为搜索词的一部分。
我做错了什么
我认为这是不可能的。这看起来像是混淆了别名和脚本 在调试器命令窗口中使用别名 定义别名后,可以在任何命令项中使用它。别名将自动替换为等效别名。因此,可以将别名用作表达式或宏 因此,别名是简单的文本替换,它们不像脚本文件那样获得传递给它们的参数 我最接近让你的化名工作的是
0:000> aS api .shell -x notepad.exe -k
0:000> api c:\temp\j.txt
这启动了notepad.exe,打开
c:\temp\j.txt
Jason是对的,您不能像这样传递参数。为了实现这一点,您需要通过一个脚本文件间接地实现它
例如,创建一个文件e:\hlplaunch.wbs并在其中放入以下行:
.shell -x winhlp32.exe -k ${$arg1} win32.hlp
然后创建别名以启动脚本,而不是直接创建shell:
aS ${/v:api} "$$>a<e:\\hlplaunch.wbs"
api createfile