我如何调试远程机器上的程序?
How might I debug a program on a remote machine?
我确定已经有人询问并回答了这个问题,对此我深表歉意,但我什至不确定我在寻找什么或需要做什么。我是一名可以玩编程的电气工程师,但是当涉及到服务器和远程东西时,我真的迷路了。
总之,这就是棍子。我会尽量具体。
我不确定这部分是否重要,但为了清楚起见,我会尽力解释。我们正在开发一台机器。这台机器是IPC 运行。 IPC 基本上是一个嵌入了 Windows 7 的 PLC,IPC 本身是用 VS2013 编写的结构化文本编程的(不适用于较新的版本)。为了'activate'我们在VS2013中设置的编程和参数,这台电脑必须用以太网线连接到机器上。我也可以从这台电脑远程手动控制机器。
一般来说,为了让操作员控制机器,CS专业写了一个程序,我们称之为HMI,即人机界面。我通过 VS2017 访问并更新了用 C# 编写的代码。该项目设置为解决方案,为了 'activate' 在进行更改后编程,我只是构建解决方案并将 dll 文件通过远程接口复制到机器上。在那台机器上,我们只需单击启动 IPC 的可执行文件,然后我猜 IPC 已链接到 HMI 程序,因为此后不久就会打开。
好的,现在,我正在尝试在此 HMI 中实现一项新功能,但我 运行 遇到了一些未知错误。为了用我过去编写的任何程序纠正这个问题,我通常会设置一个断点 and/or 运行 调试器并逐步执行直到它中断。但是,由于该程序必须 运行 与 IPC 协同工作,它向 IPC 传递值并从中接收输出,所以它比这更复杂。
我提到的 CS 人员不再在这里工作,但他的笔记说调试器可以 运行 只要我用我提到的以太网线连接。但是,当我尝试时,我得到 "A project with an Output type of Class Library cannot be started directly. In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project."
现在,通过谷歌搜索,我发现并尝试将解决方案设置为启动项目,但是当我选择它时似乎没有发生任何事情,而且错误仍然存在。我猜我需要做后者,即 'add an executable project to the solution and set that as the startup project'... 但我真的完全不知道那是什么意思。
我'add an existing project'(在文件下)吗?如果是这样,那会是 VS2013 中的 project/solution 吗?
或者我是否需要以某种方式添加我们在计算机上单击的可执行文件?
我知道我听起来像个白痴,那是因为在谈到这些东西时我就是个白痴,哈哈。它可能太复杂以至于任何人都无法尝试回答,或者太简单以至于我想太多了。在这一点上我不知道,我很绝望。
就是说,如果有人有任何想法,我将不胜感激。无论如何,谢谢你的时间。
您可以使用调试菜单中 Visual Studio 的 Attach to process 工具调试正在执行的进程。只要代码和进程代码匹配,这会将您的源代码附加到正在执行的进程。
我确定已经有人询问并回答了这个问题,对此我深表歉意,但我什至不确定我在寻找什么或需要做什么。我是一名可以玩编程的电气工程师,但是当涉及到服务器和远程东西时,我真的迷路了。
总之,这就是棍子。我会尽量具体。
我不确定这部分是否重要,但为了清楚起见,我会尽力解释。我们正在开发一台机器。这台机器是IPC 运行。 IPC 基本上是一个嵌入了 Windows 7 的 PLC,IPC 本身是用 VS2013 编写的结构化文本编程的(不适用于较新的版本)。为了'activate'我们在VS2013中设置的编程和参数,这台电脑必须用以太网线连接到机器上。我也可以从这台电脑远程手动控制机器。
一般来说,为了让操作员控制机器,CS专业写了一个程序,我们称之为HMI,即人机界面。我通过 VS2017 访问并更新了用 C# 编写的代码。该项目设置为解决方案,为了 'activate' 在进行更改后编程,我只是构建解决方案并将 dll 文件通过远程接口复制到机器上。在那台机器上,我们只需单击启动 IPC 的可执行文件,然后我猜 IPC 已链接到 HMI 程序,因为此后不久就会打开。
好的,现在,我正在尝试在此 HMI 中实现一项新功能,但我 运行 遇到了一些未知错误。为了用我过去编写的任何程序纠正这个问题,我通常会设置一个断点 and/or 运行 调试器并逐步执行直到它中断。但是,由于该程序必须 运行 与 IPC 协同工作,它向 IPC 传递值并从中接收输出,所以它比这更复杂。
我提到的 CS 人员不再在这里工作,但他的笔记说调试器可以 运行 只要我用我提到的以太网线连接。但是,当我尝试时,我得到 "A project with an Output type of Class Library cannot be started directly. In order to debug this project, add an executable project to this solution which references the library project. Set the executable project as the startup project."
现在,通过谷歌搜索,我发现并尝试将解决方案设置为启动项目,但是当我选择它时似乎没有发生任何事情,而且错误仍然存在。我猜我需要做后者,即 'add an executable project to the solution and set that as the startup project'... 但我真的完全不知道那是什么意思。
我'add an existing project'(在文件下)吗?如果是这样,那会是 VS2013 中的 project/solution 吗?
或者我是否需要以某种方式添加我们在计算机上单击的可执行文件?
我知道我听起来像个白痴,那是因为在谈到这些东西时我就是个白痴,哈哈。它可能太复杂以至于任何人都无法尝试回答,或者太简单以至于我想太多了。在这一点上我不知道,我很绝望。
就是说,如果有人有任何想法,我将不胜感激。无论如何,谢谢你的时间。
您可以使用调试菜单中 Visual Studio 的 Attach to process 工具调试正在执行的进程。只要代码和进程代码匹配,这会将您的源代码附加到正在执行的进程。