#调试

0 关注者 · 10 帖子

调试是在计算机程序中发现并解决缺陷或问题的过程,这些缺陷和问题会妨碍计算机软件或系统正确运行。

新增
文章 Jeff Liu · 三月 10 4m read

本文将讨论 Microsoft Visual Studio Code IDE中包含的所有调试工具

内容包括

  • 断点
  • 观察窗口
  • 调用堆栈

让我们从了解调试要求开始!

前提条件

有两个插件(扩展)可用于调试 ObjectScript:

第一个是 InterSystems ObjectScript 扩展包的一部分 。第二个是 Serenji,它是一个独立的插件,提供编辑器、文件管理器和调试功能。这两个插件都可以从插件商店安装。要激活关键功能,Serenji 需要许可证。在本文中,我们将使用 InterSystems ObjectScript 扩展包来降低学习难度。在掌握基础知识后,您可以考虑购买 Serenji 的付费许可证。

0
0 3
新增
文章 Jeff Liu · 三月 5 3m read

你好

数据迁移通常听起来像是一个简单的 "将数据从 A 转移到 B 的任务",直到你真正去做。实际上,这是一个融合了规划、验证、测试和技术精度的复杂过程。

我曾在多个项目中负责将数据迁移到在 IRIS(TrakCare)上运行的 HIS 中,在这些项目中,我认识到成功来自于纪律和自动化的结合。

以下是我想强调的几个要点。

1.从定义好的数据格式开始。

在打开第一个文件之前,确保每个人,尤其是数据提供者,都清楚地了解您所期望的确切数据格式。尽早定义模板可以避免不必要的来回奔波和返工。

虽然 Excel 或 CSV 格式很常见,但我个人认为使用制表符分隔的文本文件(.txt)上传数据是最好的。它既轻便又一致,还能避免文本字段内的逗号问题。

PatID   DOB Gender  AdmDate
10001   2000-01-02  M   2025-10-01
10002   1998-01-05  F   2025-10-05
10005   1980-08-23  M   2025-10-15

确保文件中提供的日期格式正确且在整个文件中保持不变,因为所有这些文件通常都是从 Excel 文件转换而来,而 Basic excel 用户可能会在提供错误的日期格式时犯错。错误的日期格式在转换为 horolog 时会让您恼火。

0
1 6
文章 Kelly Huang · 一月 29 2m read

您发送了一个 HTTP 请求,但得到了一个 HTTP 错误,而且是一个您意想不到的 HTML 错误页面......这是怎么回事?

具体举例来说,也许您尝试读取 FHIR 资源(例如 /Patient/123),但得到的是 404 错误页面,尽管使用其他患者 ID 时,您得到的是资源有效载荷,因此 "页面 "肯定存在......为什么会得到 404 错误页面?

0
0 87
文章 Tete Zhang · 十月 26, 2022 3m read

“池大小”(PoolSize)设置的值决定了一个组件的作业的量和启动方式。在这篇文章中我们将具体讨论对于不同类型的组件来说“池大小”设置的可能值和这些值所代表的含义。

Pool Size = 1

对于所有的组件来说,运行池大小为1的含义都是一样的: 该组件有且只有一个作业,单独运行该组件的代码,顺序处理发送到该组件的消息(FIFO)。

Pool Size > 1

对于业务进程(BP)和业务操作(BO)来说,当运行池大小大于1时,该组件将运行多个作业(作业数=运行池大小设置数)。每个作业都只运行该组件的代码,但消息处理的顺序将被打乱。将运行池的大小设为大于1的值可以在一定程度上提升组件处理消息的性能,但是每个作业的性能还是受限于系统资源的,所以并不是说组件的性能可以随着运行池的大小增加而无限提升。

对于轮询类业务服务(Polling BS)来说,当运行池大小大于1时,该服务也将运行多个作业(作业数=运行池大小设置数)。但这种配置会导致多个进程对轮询结果产生竞争(race condition),所以一般情况下轮询服务不应将运行池大小设为大于1的数值。

对于作为服务器端接收外来网络连接的业务服务(TCP、HTTP、REST、SOAP等)来说,当运行池大小大于1时,运行的作业数将取决于“为每个连接创建作业(Job Per Connection)”设置的值。

1
0 344
文章 Michael Lei · 五月 23, 2022 1m read

大家是不是经常遇到以下情况:

  • 系统有 bug 但是无法在本地复现
  • 你需要在受影响的实例中运行几行代码
  • 能完整访问系统管理门户,但是没有终端或者管理控制台, 也不能访问 Studio, Atelier 或者 VSCode
  • 你要怎么运行你的几行代码来测试???
0
0 250
文章 Michael Lei · 五月 15, 2022 1m read

Hi, 社区!

想和大家分享一下俄罗斯论坛上的一个Debug方法。

假设我想对应用程序进行Debug,我想让它在某一行停止执行。

在代码中加入这一行:

l +d,-d

当我想在这一行中开始调试时,我在终端中屏蔽了d

USER> l +d

执行该应用程序。

应用程序在这一行停止,让我用Studio调试器连接到它。

为了释放锁,我在终端做了以下工作

USER> l -d

还有其他好的Debug 建议吗?

0
0 125
文章 Jingwei Wang · 二月 17, 2022 1m read

windows 前台调试

  1. 在Production配置中,勾选 ‘开发与调试’ 中的 ‘测试开启’ 。 
  2. 选中需要调试的组件(业务服务,业务流程,业务操作),在'设置'中勾选 ‘开发与调试’ 中的 ‘在前台运行’ 。 
  3. 继续选中需要调试的组件,在'操作'中点击 ‘测试’ 。 
  4. 选择相应的请求类型,点击‘调用测试服务’。
  5. 前台窗口会被弹出。

 

Container 前台调试

可以在运行容器时直接发布63300端口,主机的telnet客户端将能够连接到前台端口。

如果你愿意,你可以改变这个端口号,直接设置到全局的

Set tPortRangeStart=$G(^Ens.Config("FGTelnetRange","start"),63300)
Set tPortRangeEnd=$G(^Ens.Config("FGTelnetRange","end"),63499)

Linux 前台调试

Do $system.Process.Terminate(<BO JOB>)
Do ##class(Ens.Job).Start("BO CONFIGNAME", 1)
0
1 211