gpt4 book ai didi

winforms - Windows 服务的运行时调试技巧?

转载 作者:行者123 更新时间:2023-12-01 10:10:06 26 4
gpt4 key购买 nike

我有一个 Windows 服务可以监视连接到供应商硬件的 COM 端口。这是一个非常繁忙的硬件,不断轮询线路上的其他设备(这是一个双绞线 RS485“网络”)。我的软件需要在此线路上模拟 X 数量的硬件设备,因此我使用多层状态机进行了多线程操作,以随时跟踪通信协议(protocol)的位置。

问题出在 Windows 服务(这是我的第一个服务,顺便说一句),您需要进行一些调试,让您知道东西是否正常工作。当我第一次开发这个状态机/多线程代码时,我有一个带有 RichTextBox 的窗口窗体,它显示在线路上来回的 ASCII 字符。似乎我真的无法通过服务获得那种 GUI 友好性。我尝试通过另一个程序在服务中打开一个表单,该程序发送通过 OnCustomCommand() 处理程序接收的服务消息,但它似乎不起作用。我检查了“允许服务与桌面交互”和所有内容。我正在使用调试表单的 Show() 和 Hide() 方法。

我想我不需要看到在线上的所有单个角色,但伙计,那肯定会很好(我想我真的需要看到它们:-))。那么有没有人有任何疯狂的想法可以帮助我呢?我不想让某些 IPC 使系统陷入困境,这些 IPC 不适用于肯定会通过的大量数据。不过,这只是非常短期的调试,只是确认程序、RS485 转 USB 加密狗和硬件都在工作。

最佳答案

使用OutputDebugString写入调试缓冲区,然后使用 DebugView观看它。如果您在 Windows XP 或更早版本上运行,则可以使用 PortMon查看通过串行端口的原始字节。与日志文件相比的优势在于开销非常小,尤其是在您不看它的时候。您甚至可以从另一台机器运行 DebugView 并远程监控您的服务。

关于winforms - Windows 服务的运行时调试技巧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5967918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com