欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → vbs 有没有什么好的调试办法?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3496人关注过本帖树形打印复制链接

主题:vbs 有没有什么好的调试办法?

帅哥哟,离线,有人找我吗?
fwoods
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:42 积分:0 威望:0 精华:0 注册:2015/7/19 10:19:56
vbs 有没有什么好的调试办法?  发帖心情 Post By:2015/9/18 17:07:35 [只看该作者]

我自己做了一个框架,用起来都正常,但是只要在框架上切换了品种,然后点关闭,再打开,vbs就不工作了,我自己程序的事件也不会响应。
这时候,如果关闭金字塔,或者按停止vba的按钮,就会有非法退出错误。3.5版本会有dump文件产生。
用windbg分析
EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 00000000
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00000000
Attempt to read from address 00000000

PROCESS_NAME:  WinStock.exe

ADDITIONAL_DEBUG_TEXT:  
Use '!findthebuild' command to search for the target build information.
If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.

FAULTING_MODULE: 7c920000 ntdll

DEBUG_FLR_IMAGE_TIMESTAMP:  4802bdbd

ERROR_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - "0x%08lx"

EXCEPTION_PARAMETER1:  00000000

EXCEPTION_PARAMETER2:  00000000

READ_ADDRESS:  00000000 

FOLLOWUP_IP: 
oleaut32!VariantClear+58
770f4948 ebb9            jmp     oleaut32!VariantClear+0x13 (770f4903)

FAILED_INSTRUCTION_ADDRESS: 
+1e52faf0182df58
00000000 ??              ???

MOD_LIST: <ANALYSIS/>

FAULTING_THREAD:  000008b0

BUGCHECK_STR:  APPLICATION_FAULT_NULL_INSTRUCTION_PTR_NULL_POINTER_READ_WRONG_SYMBOLS

PRIMARY_PROBLEM_CLASS:  NULL_INSTRUCTION_PTR

DEFAULT_BUCKET_ID:  NULL_INSTRUCTION_PTR

LAST_CONTROL_TRANSFER:  from 770f4948 to 00000000

STACK_TEXT:  
WARNING: Frame IP not in any known module. Following frames may be wrong.
0012f6fc 770f4948 116f4ca4 00000000 0254b778 0x0
0012f710 73271819 0254b778 02550f28 0254b778 oleaut32!VariantClear+0x58
0012f738 7327d603 00000001 7c80980a 7327e38e vbscript+0x1819
0012f758 7327e01d 00000000 025375cc 02537418 vbscript!DllGetClassObject+0x24e6
0012f774 7327ddd6 00000000 02537418 00000000 vbscript!DllCanUnloadNow+0x852
0012f794 7328ef58 02537418 00000111 00d151f4 vbscript!DllCanUnloadNow+0x60b
0012f7c4 78669479 0273ba64 0012f7ec 7866965b vbscript!DllCanUnloadNow+0x1178d
0012f7d0 7866965b 0000801d 00000039 0000801d mfc90+0x89479
0012f7ec 7863c307 0000801d 00000000 00000000 mfc90+0x8965b
0012f83c 7863baef 00000000 00000000 571111d0 mfc90+0x5c307
0012f910 7863a656 00000111 0000801d 00000000 mfc90+0x5baef
0012f94c 78639190 786386b4 78638739 7863a79d mfc90+0x5a656
00000000 00000000 00000000 00000000 00000000 mfc90+0x59190


STACK_COMMAND:  ~0s; .ecxr ; kb

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  oleaut32!VariantClear+58

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: oleaut32

IMAGE_NAME:  oleaut32.dll

BUCKET_ID:  WRONG_SYMBOLS

FAILURE_BUCKET_ID:  NULL_INSTRUCTION_PTR_c0000005_oleaut32.dll!VariantClear

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/WinStock_exe/3_6_4_0/55ee53d8/unknown/0_0_0_0/bbbbbbb4/c0000005/00000000.htm?Retriage=1

Followup: MachineOwner


看上去是vb申请的资源释放的时候引发了空指针引用,但是理论上vbs是怎么也不会引起空指针错误,如果有,也会在vb这个层次提示“找不到对象”。
如果用script debugger跟踪,基本上单步一步就死掉了。
请问版主有没有更好的跟踪或查错的办法?

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2015/9/18 17:49:51 [只看该作者]

一般我们调试都是用APPLICATION.MSGOUT函数进行的,但是你的情况导致软件崩溃,属于比较严重的问题,不排除金字塔自身含有BUG的可能,建议你升级到3。70版本,如果问题依旧,请留下联系方式,我们研发人员会联系你,与你共同来解决这个问题


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
fwoods
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:42 积分:0 威望:0 精华:0 注册:2015/7/19 10:19:56
  发帖心情 Post By:2015/9/22 23:42:06 [只看该作者]

问题已经解决了,想破了我的脑袋啊。
原来是我把这个Frame 中的 Grid保存到一个全局量里面了,导致Frame退出的时候内存释放不干净,再重入的时候就有了问题。
我的天,啥提示和错误都没有,直接非法操作。


 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2015/9/23 9:03:44 [只看该作者]

这种内存操作的逻辑错误问题,别说金字塔,连微软都没有好的办法,只能靠自己提高编程和解决问题的能力提高来解决


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部