关于调试 VB 组件的建议?

发布于 2024-11-03 04:17:57 字数 2763 浏览 1 评论 0原文

我对 VB 代码没有任何经验。但我确实知道我的 VB 应用程序有问题,该应用程序挂在他的 ocx 中。我可以在windbg中看到它一遍又一遍地抛出c000008f异常,我知道这只是VB异常处理,它与“浮点不精确结果”硬件异常无关(这只是微软的“辉煌” ' 的实现方式)。

那么,问题来了。我如何找出问题的真正所在?我这里没有安装 Visual Studio,但我的笔记本电脑上安装了 VS 2010 Express。不过,我认为这也行不通,我需要专业版来调试此类内容。

另外,我启用了问题应用程序的日志记录,这些是我得到的最后几行:

........................ (布拉布拉布拉) .............

[COVEControls] [00204] [00008.912] <- slbChart.ctl : 子 AddItem : (Label=DataObjs, Value=0, Color=, LabelColor=) : [res = 22%,mem = 2147483647]

[COVEControls] [00205] [00008.912] -> slbChart.ctl : 子 AddItem : (Label=Conts, Value=1, Color=, LabelColor=) : [res = 22%, mem = 2147483647]

[COVEControls] [00206] [00008.912] -> slbChart.ctl : 子 LayoutChart : () : [res = 22%, mem = 2147483647]

[COVEControls] [00207] [00008.912] <- slbChart.ctl : 子 LayoutChart : () : [res = 22%, mem = 2147483647]

[COVEControls] [00208] [00008.912] <- slbChart.ctl : Sub AddItem : (Label=Conts, Value=1, Color=, LabelColor=) : [res = 22%, mem = 2147483647]

[Cove] [00116][00009.026]-> frmMain.frm : Sub COVE1_StatusMsg : (statMsg=获取卡信息(读取总数据空间和可用数据空间)) : [res = 22%, mem = 2147483647]

[Cove] [00117] [00009.026] <- frmMain.frm : Sub COVE1_StatusMsg : (statMsg=获取卡信息(读取总数据空间和可用数据空间)) : [res = 22%, mem = 2147483647]

[COVEControls] [00209] [00008.948] <- COVE.ctl : Sub SetSizeBars : () : [res = 22%,mem = 2147483647]

[COVEControls] [00210] [00008.949] -> COVE.ctl:子DrawPie:(pic =,shp0 =,shp1 =,pctFree = 0.9222):[res = 22%,mem = 2147483647]

[COVEControls] [00211] [00008.950] - > COVE.ctl : 子 DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00212] [00008.950] < ;- COVE.ctl : 子 DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00213] [00008.950 ]-> COVE.ctl : 子 DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00214] [00008.950] < ;- COVE.ctl : 子 DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00215] [00008.950 ]-> COVE.ctl : 子 DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00216] [00008.950] < ;- COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

....

它只是重复DrawLayer 无穷无尽。使应用程序崩溃的功能成功,您可以看到检索到的数据几秒钟,然后它停止更新客户区并变成白色,鼠标指针仍然是沙漏,应用程序没有响应,在强制它之后关闭它在报告详细信息中说:“hungapp”

那么,有人知道如何找出它是如何失败的吗?我真的需要 Visual Studio Pro ftw 吗? (哦)'

I don't have any experience with VB code. But I do know I have a problem with a VB app which hangs in a ocx of his. I can see in windbg that it throws the c000008f exception over and over again and i know that it's just the VB exception handling and it has nothing to do with the "Floating Point In-exact Result" hardware exception (it was just Microsoft's 'brilliant' way of implementing it).

So, the problem. How do I find out what the problem really is ? I don't have Visual Studio installed here, but I do have on my laptop VS 2010 Express installed. Still, I don't think that will work either, i need the Pro version to debug this kind of stuff.

Also, I enabled logging in the problem app and these are the last lines I get:

.............
(bla bla bla)
.............

[COVEControls] [00204] [00008.912] <- slbChart.ctl : Sub AddItem : (Label=DataObjs, Value=0, Color=, LabelColor=) : [res = 22%, mem = 2147483647]

[COVEControls] [00205] [00008.912] -> slbChart.ctl : Sub AddItem : (Label=Conts, Value=1, Color=, LabelColor=) : [res = 22%, mem = 2147483647]

[COVEControls] [00206] [00008.912] -> slbChart.ctl : Sub LayoutChart : () : [res = 22%, mem = 2147483647]

[COVEControls] [00207] [00008.912] <- slbChart.ctl : Sub LayoutChart : () : [res = 22%, mem = 2147483647]

[COVEControls] [00208] [00008.912] <- slbChart.ctl : Sub AddItem : (Label=Conts, Value=1, Color=, LabelColor=) : [res = 22%, mem = 2147483647]

[Cove] [00116] [00009.026] -> frmMain.frm : Sub COVE1_StatusMsg : (statMsg=Getting Card Information (reading total and free data space)) : [res = 22%, mem = 2147483647]

[Cove] [00117] [00009.026] <- frmMain.frm : Sub COVE1_StatusMsg : (statMsg=Getting Card Information (reading total and free data space)) : [res = 22%, mem = 2147483647]

[COVEControls] [00209] [00008.948] <- COVE.ctl : Sub SetSizeBars : () : [res = 22%, mem = 2147483647]

[COVEControls] [00210] [00008.949] -> COVE.ctl : Sub DrawPie : (pic=, shp0=, shp1=, pctFree=0.9222) : [res = 22%, mem = 2147483647]

[COVEControls] [00211] [00008.950] -> COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00212] [00008.950] <- COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00213] [00008.950] -> COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00214] [00008.950] <- COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00215] [00008.950] -> COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

[COVEControls] [00216] [00008.950] <- COVE.ctl : Sub DrawLayer : (pic=, shp=, pct=7.779998E-02, color1=32768, color2=128) : [res = 22%, mem = 2147483647]

....

And it's just repeating DrawLayer ad infinitum. The function which crashes the app succeeds, you can catch a glimpse of the retrieved data for a few secs, then it stops updating the client area and turns to white, mouse pointer is still a hourglass, the app is nonresponsive, after forcing it to close it says in the report details: "hungapp"

So, anyone has a clue of how to find out how it fails ? Do I really need Visual Studio Pro ftw ? (o.o)'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

佞臣 2024-11-10 04:17:57

.ocx、.ctl 和 .frm 扩展名都是 vb6/Visual Studio 6 的产物。您将无法使用当前安装的 Express Edition 编辑此项目,并且您将无法购买当前的“ Pro”来解决这个问题。 Visual Studio 6 不再在任何地方出售。

The .ocx, .ctl, and .frm extensions are all artifacts of vb6/Visual Studio 6. You won't be able to edit this project with the Express Edition currently installed, and you won't be able to buy a current "Pro" to fix this. Visual Studio 6 is no longer available for sale anywhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文