以下说明来自Rhino Developer Docs 空 在VBScript中声明变量时,变量“之前的值” 第一个赋值是未定义的,或为空。 昏暗……
VBScript变量属于类型 Variant ,表示可以更改类型的值。在内存中,Variant类型是16个字节 结构体 。
Variant
如果变量为空( Empty 价值),然后 vt member(存储变量引用的数据类型)的值为 0x0000 ( VT_EMPTY )
Empty
vt
0x0000
VT_EMPTY
堆栈是什么意思? VBScript的虚拟机堆栈或CPU堆栈。对于CPU堆栈,请使用调试器
您也可以从调试器开始。
windbg或ntsd(ntsd是一个控制台程序,可能已安装)。两者都来自Windows的调试工具。
下载并安装Windows调试工具
http://msdn.microsoft.com/en-us/windows/hardware/hh852363
安装Windows SDK但只需选择调试工具。
在C:\中创建一个名为Symbols的文件夹
开始 Windbg 。文件菜单 - 符号文件路径并输入
Windbg
srv*C:\symbols*http://msdl.microsoft.com/download/symbols
然后
windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat
所有程序在加载后但在开始运行程序之前停止。按 g 接着说。程序运行完所有代码后程序也会停止。再按一下 g 。
g
你可以按 的 F12 强> 阻止它 kb 将显示调用堆栈( g 继续该计划)。如果有错误,它也会停止并显示它们。
kb
类型 lm 列出加载的模块, x *!* 列出符号和 bp [symbolname] 设置断点。
lm
x *!*
bp [symbolname]
断点是程序在遇到BP时停止的位置。允许您读取堆栈。 kb 显示函数的callstack和前4个参数。
的 VB6 强>
如果在VB6中编程那么这个环境变量 link=/pdb:none 将符号存储在dll中而不是单独的文件中。确保使用No Optimisations编译程序并勾选Create Symbolic Debug Info框。两者都在项目属性的“编译”选项卡上。
link=/pdb:none
还有CoClassSyms( http://microsoft.com/msj/0399/hood/hood0399.aspx )可以从类型库中创建符号。 。
请参阅背景信息 https://blogs.msdn.microsoft.com/ericlippert/2004/04/19/runtime-typing-in-vbscript/
-