许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  用VisualStudio调试Fluent UDF

用VisualStudio调试Fluent UDF

阅读数 1
点赞 0
article_banner


概述

实现了用VS2010对Fluent19.0 UDF进行断点调试,具体实现如下功能:

(1)可以查看各线程局部变量以及主程序传入的指针指向的全局变量。

(2)可以设置断点并单步操作。

贴图为证:

具体实施步骤

1.修改makefile_nt.udf至Debug模式

makefile_nt.udf的功能是配置所有编译属性,在使用fluent内置的编译器(实质上是初次配置UDF(一般是Visual Studio系列)时设置的编译器,下面的所有工作推荐在当时设置这个编译器的VS版本上进行)时,这个文件会从上述地址被复制到所生成的udf文件夹中。

makefile_nt.udf默认为发布模式,该模式下不会生成调试时需要的符号文件(.pdb文件),另外会在编译时会对源代码进行简化。需要对这个文件进行修改。

从地址D:\Program Files\ANSYS Inc\v190\fluent\fluent19.0.0\src\udf(这是你安装Fluent的地址,我的在D盘)以文本形式打开makefile_nt.udf。

需要在这里对该文件进行两处修改(可以根据行号或者Ctrl+F查找):

在变量CFLAGS后增加" /DDEBUG /Zi /Od",其中DDEBUG表示用debug模式编译,Zi表示生成.pdb(符号)文件,Od表示不进行代码简化。

在link句中增加" /DEBUG /PDB:$(TARGET_NAME).pdb "(和原文件比一下就知道加在哪了),这里将生成的.pdb文件和最终生成的.dll库函数文件(UDF)链接起来。

2.通过Fluent内置的编译器编译生成UDF文件,并hook到主程序中

这步比较常规,如果不会可以求助互联网。

上一步修改成功之后,在生成的udf文件夹(一般和项目输入文件.cas文件在一个目录下)中能够找到两个.pdb文件。

如果是并行计算,会生成两个文件夹(如三维双精度并行计算时生成3ddp_host,3ddp_node两个文件夹,分别对应主节点和计算节点),其中每个文件夹各有两个.pdb文件。

3.使用Visual Studio Debugger附加进程到Fluent

(1)打开源文件并设置断点

打开Visual Studio,“文件-打开-文件”,打开上一步中生成的文件夹,从src中找到您编写的UDF源文件,一般是.c/.cpp文件。

为程序添加断点(确保您的UDF会被调用,断点位置语句会被执行),如下图所示:

(2)附加进程到Fluent

开启Fluent的时候Console会告知进程号,如下图PID:


使用VS的“调试-附加到进程”,将上面查询到的进程附加上:


在输出页面确认.pdb(符号)文件已经加载:


如果是并行计算,能够找到两个类似的语句。下面显示三个“已退出”指本例附加的三个线程,退出指当前没有计算活动。

4.在Fluent中开始计算

在Fluent中点开始计算(Calculate),等程序跑到断点即可进入调试。调试方法(单步执行等)和变量追踪都和常规调试一致。具体效果见概论图。

总结

因为在网上没有找到现成的Debug方法,就自己整了一套。感谢chatGPT的技术指导。放出来和大家分享,希望能够简化大家的劳动~


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空