龙空技术网

软件源代码调试,你用过什么方法?看我介绍上位机源码调试

robotstudio 773

前言:

眼前咱们对“把一些算法封装到dll中的方法”大致比较着重,你们都需要分析一些“把一些算法封装到dll中的方法”的相关资讯。那么小编同时在网上收集了一些对于“把一些算法封装到dll中的方法””的相关知识,希望姐妹们能喜欢,看官们快快来学习一下吧!

前几天我在微头条发过一个关于软件调试技巧的说明,今天在这里我来总结下我常用过的方法。

工业自动化领域软件开发,我这里统称为上位机软件开发,我们的软件应用在工业自动化领域,上位机软件需要连接很多的硬件设备,所以调试就需要在线调试了,但是在线调试的问题点比较多, 我来罗列下常用的方法。

最常规方法调试源代码

这是最常用的调试方式----安装软件编译环境,安装宇宙最强编译器VS。把你的源代码文件拷贝到工控机,直接连接各种硬件设备,比如相机、板卡、PLC等各种设备,如果你的源代码文件有各种其他第三方库文件,你都需要一一的去安装,这种方式比较麻烦,遇到有些很难安装的第三方库就闹心了。 这种方式虽然很方便,但是极其不安全,源代码文件在工控机上,一不注意导致代码信息泄露,以前我在现场调试的时候,在工控机上拷贝过其他家的源代码文件的,已经不止一次了。我们的笔记本不能插入U盘,不能拷贝文件,只有通过其他方法来解决调试问题。

本地的方法比较简单了,直接打断点,进入调试即可。

断点进入调试

升级方法--远程调试源代码

在这里,我使用的方法是使用远程调试。

这得益于史上最强编译器VS提供的Remote Debugger ,安装每个版本的VS。

下面我一步一步来介绍。

一对一调试

Step1

Windows菜单找到Remote Debugger文件夹,根据你的exe或者dll编译的平台进行选择。拷贝此文件夹中的文件到工控机去

Remote Debugger

Step2

运行msvsmon.exe程序,设置参数。

设置身份验证模式

Step3

拷贝你的可执行文件exe到工控机中,比如视觉软件,记住exe和pdb文件需要一一对应好,pdb保存的一些调试信息,运行exe软件。

pdb和exe一一对应

Step4

笔记本电脑和工控机用网线连接,这里你需要把工控机的IP地址和笔记本的IP地址设置在同一网段

IP设置在同一网段

当笔记本和工控机设置好IP后,这个时候可以使用ping命令进行测试,他们是可以互通的

ping一下,我用本地ip做演示

现在打开源代码sln解决方案,进入到VS编译源代码中,连接远程工控机的exe程序即可

附加到进程

在这里传输中选择 远程(无身份验证),限定符中直接填写远程的IP地址,这个时候会在可用进程中出现一些列的进程,比如你的进程名字是a.exe,那么双击附加到这个进程即可。

选择模式

Step5

这一步,你只需要在你的本地笔记本电脑中打断点,当执行到这里的时候就会进入但本机笔记本电脑。

不管是远程调试还是本机调试,相机都有心跳,超过了设定的时间,SDK就断掉了相机,所以需要注意,最难受的是basler的相机,断点调试后要断电,否则需要等待很久。

注意,需要你把工控机的防火墙关闭!

这种方法显而易见,一方面可以避免安装各种环境,另一方面也可以保证源码的安装可控了!

dll调试

我们的上位机软件有时候会有很多模块,需要对一些模块的封装,可能有些dll是别人写的,也可能是自己封装的,如果是自己封装的,你把源代码文件加载到你的解决方案路径下即可,但是如果是别人的,你要跟他联调,就比较麻烦了,不过也是有方法的。

动态库是你写的

最直接的是你把源码的项目添加到exe程序的解决方案中

如果dll都在本机,并且源代码文件都在自己电脑上,那你就单独打开你的exe软件,把dll拷贝到exe可执行目录,这里需要dll和pdb对应好。

打开动态库的解决方案源代码文件,这里直接使用附加到进程,传输选择默认值,在可用进程中选择使用当前动态库的那个exe可执行程序。

本地直接附加

动态库是你同事写的

如果你的动态库是别人写的,比如很重要的算法,是算法组的同事写的,源代码文件你没有权限给你看,但是dll里面又有问题,dll的源代码文件在他的电脑上。

这里参照 升级方法--远程调试源代码 方法,把他当成是工控机电脑进行配置,如果你们是使用的同一个内网,同一个域,IP地址写成他网络IP地址。

最难的调试U盘记录日志调试

我有遇到过一个项目,可以用变态形容,电脑不能带,软件可行性文件都是工厂的对接人带进去的,这种情况下调试就比较困难了, 我全程使用记录日志来调试软件,U盘让对接人带进去,一天进出一次, 这里就要求你把日志记录详细了,分析问题才能准确找到问题点!

有些同学说过用TeamViewer和QQ远程协助,这种是你帮别人调调软件参数还是比较方便的,但一般工厂环境下是没有网络的。

TeamViewer

下一次我来给大家说说如何在工厂环境下没有网络,你想调试软件该如何操作。

欢迎大家关注我公众号,同步更新 VisionManMaster

标签: #把一些算法封装到dll中的方法 #把一些算法封装到dll中的方法是什么