【问题标题】:Debugging Step Into, Over, Out within VB6 IDE closes the class window在 VB6 IDE 中调试 Step Into、Over、Out 会关闭类窗口
【发布时间】:2017-01-10 14:52:53
【问题描述】:

每当断点命中(Step Into、Out、Over)时,我在 VB6 IDE 中遇到非常奇怪的行为,该类已关闭并且无法调试。然后在窗口级联中我可以重新打开课程,但是当断点再次出现时,课程被关闭。谁能帮忙。

【问题讨论】:

  • 某些组件是否向您的应用程序发送 Windows 消息?
  • @ThomasWeller。我不敢说实话,因为这是一个包含大量代码的遗留应用程序。
  • 再过一年,模组会将其迁移到复古计算 SE。重试 Windows 95 的全新安装。
  • 认真的。你有最新的服务包,我认为那必须是 VB6 SP6,你在哪个操作系统上?所有加载项都禁用了吗?

标签: debugging vb6


【解决方案1】:

步骤执行有时确实会这样。原因是 VB 是事件驱动的,当事件发生时,该事件背后的代码将运行,而您正在单步执行的代码可能不是正在运行的代码,因此在您的 PAUSED 代码时情况会发生变化并且代码会运行仍处于搁置状态。

当我遇到这种情况时,我通过使用 debug.print 将监控变量的当前值发送到 OUTPUT 窗口来克服它,或者如果您需要更详细的功能,请编写一个将数据发送到本地文本文件的子程序,然后根据需要调用该 sub,并传递给您要显示的变量(和标签)。

一旦 debug.print 或日志例程就位,然后运行代码而不会暂停或中断。调试输出会告诉你发生了什么,以什么顺序等,因此无需停止代码或冒险改变执行顺序。

确保包含大量“上下文”数据,例如:“输入 SUB_XYZ,参数值为 A、B、C...现在在 SUB XYZ 的第 99 行...现在在 IF TEST 的 TRUE 侧# 1....

在所有输出中包含时间戳。

仅将您的跟踪逻辑放在可疑问题区域周围,仅根据需要从那里扩展。

这很痛苦,但它有效。

【讨论】:

  • 注意,VB.Net 和其他一些语言一样内置了代码跟踪。在那里寻找想法......运气。
【解决方案2】:

我终于解决了这个问题,问题出在 Windows 10 的显示设置中。基本上,如果我通过将两个屏幕垂直放置在第一个顶部的第二个来应用垂直设置,那么这个问题就会发生,如果我应用水平设置,那么这个问题就不会发生.

vb有问题的设置

确实解决了调试问题的设置。 VB太诡异了,老了无法应付显示设置

【讨论】:

    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2019-02-21
    • 2020-04-20
    • 2012-11-07
    相关资源
    最近更新 更多