Understand软件中文网站 > 热门推荐 > Understand怎么设置数据库保存位置 Understand数据库文件损坏后如何恢复
教程中心分类
Understand怎么设置数据库保存位置 Understand数据库文件损坏后如何恢复
发布时间:2026/08/27 11:44:13

  Understand会把源码分析结果、实体关系、度量数据等内容保存在项目数据库中。创建项目时看到的.und项目位置,和Understand实际保存分析数据的位置并不一定完全相同,这一点很容易混淆。项目移动到其他磁盘后打不开、数据库版本不匹配、parse.udb出现异常时,也不建议直接覆盖原文件。先把现有项目保留下来,再判断是分析数据可以重建,还是整个.und项目都需要重新创建,会更容易保住原来的工程配置。

  一、Understand怎么设置数据库保存位置

 

  Understand项目主要涉及.und项目位置和分析数据位置。新建项目时可以直接指定.und保存目录,也可以让分析数据跟着项目一起保存,后面复制和备份会方便一些。

 

  1、新建项目时设置.und保存目录

 

  ①打开Understand,点击【File】→【New】→【Project】。

 

  ②选择源码目录,完成语言和构建信息识别。

 

  ③进入【Set Location&Advanced Settings】。

 

  ④在项目名称位置填写当前工程名称。

 

  ⑤在【Location】中选择准备保存Understand项目的目录。

 

  ⑥不要把项目放到临时目录、构建缓存目录或者会被自动清理的位置。

 

  ⑦确认设置后完成项目创建。

 

  ⑧项目生成后检查指定目录中的【.und】项目。

 

  .und在当前Understand版本中可以作为项目数据库路径使用,后续通过图形界面、und命令或Python API打开项目时,都要指向这一项目位置。

 

  2、让分析数据保存在项目目录中

 

  如果项目需要在不同电脑之间复制,或者希望备份时把分析数据一起带走,可以把分析数据放到项目内部。

 

  ①新建项目时进入【Set Location&Advanced Settings】。

 

  ②找到【Store analysis data in project folder】。

 

  ③启用该选项。

 

  ④完成项目创建并等待首次Analyze结束。

 

  ⑤打开项目所在的【.und】目录。

 

  ⑥检查其中是否已经生成【local】目录。

 

  ⑦后续备份时,把整个.und项目目录一起保存。

 

  已有项目也可以在.und目录下建立名为【local】的空目录,让相关分析数据保存在项目目录中。修改这类存储方式后,建议重新分析一次项目,不继续依赖原来的旧分析缓存。

 

  3、查看当前项目实际使用的数据位置

 

  不确定数据库到底保存在哪里时,可以直接查项目信息。

 

  ①打开命令行。

 

  ②进入Understand的und命令可执行环境。

 

  ③执行【und projectinfo myproject.und】。

 

  ④把【myproject.und】替换成实际项目路径。

 

  ⑤查看返回的项目和内部数据位置。

 

  ⑥确认当前数据库是不是仍在用户Settings Folder下。

 

  Understand没有使用项目内local目录时,部分分析数据会存放在用户设置目录。Windows环境常见位置位于用户AppData下的SciTools数据库目录,换电脑或修改用户设置目录后,这部分分析信息可能需要重新建立。

 

  二、Understand数据库文件损坏后如何恢复

 

  数据库打不开时,先保留损坏项目副本。Understand的源码分析数据库可以重新生成,源代码和项目配置还在的话,一般没有必要去手工修改parse.udb之类的内部文件。

 

  1、先判断是数据库损坏还是版本不匹配

 

  ①关闭当前Understand项目。

 

  ②复制整个【.und】项目到单独备份目录。

 

  ③重新启动Understand,再打开原项目。

 

  ④如果提示数据库需要更新或版本不匹配,先记录当前Understand版本。

 

  ⑤使用命令行执行【und analyze myproject.und】。

 

  ⑥等待重新分析完成。

 

  ⑦重新打开项目,检查文件、函数和引用关系。

 

  Understand数据库由不同版本打开时,可能因为数据库格式变化要求重新分析。这种情况和数据库真正损坏不是一回事,重新Analyze后能够打开,就不用重新建立项目。

  2、项目配置还在时重建分析数据

 

  项目能识别,但分析结果异常、函数关系大面积缺失时,可以先尝试重建分析数据。

 

  ①确认原始源码目录仍然存在。

 

  ②打开【Project】→【Configure Project】。

 

  ③检查【Files】中的源码路径。

 

  ④检查C/C++项目使用的Include目录和Macros。

 

  ⑤确认构建信息没有指向已经删除的位置。

 

  ⑥保存当前项目配置。

 

  ⑦执行完整Analyze,不只运行【Analyze Changed Files】。

 

  ⑧分析完成后重新检查函数、Metrics和调用关系。

 

  如果只是parse分析信息损坏,重新读取源码并生成数据库通常比手工恢复内部数据库文件更稳妥。

 

  3、.und项目本身无法读取时重新建库

 

  Understand已经无法打开项目,命令行也提示数据库损坏时,可以用新数据库接管原来的源码和配置。

 

  ①保留损坏的【.und】项目,不执行删除或覆盖。

 

  ②查找以前导出的项目配置XML。

 

  ③新建一个空的【.und】项目。

 

  ④有配置备份时执行【und import settings.xml newProject.und】。

 

  ⑤没有配置备份时,在新项目中重新添加原源码目录。

 

  ⑥C/C++工程重新导入【compile_commands.json】或现有构建工程信息。

 

  ⑦检查Include、Macros、语言和文件范围。

 

  ⑧执行【und analyze newProject.und】重新建立分析数据库。

 

  ⑨打开新项目,核对源码文件数量、函数调用和度量结果。

 

  项目配置可以提前用【und export settings.xml myProject.und】导出。数据库发生异常后,这份XML能省掉不少重新配置文件范围和分析选项的工作。

 

  三、数据库恢复后怎么检查项目是否正常

 

  数据库重新分析成功,只能说明项目已经能读写,还要检查源码路径和分析关系有没有一起恢复。特别是从旧项目重建新数据库后,Include、宏和外部源码路径少一项,都可能让分析结果和原项目不同。

 

  1、检查源码和项目配置

 

  ①进入【Project】→【Configure Project】→【Files】。

 

  ②检查主要源码目录有没有全部加入。

 

  ③确认原来的排除目录没有被重新加入分析。

 

  ④打开【Improve Project Accuracy】查看缺失Include。

 

  ⑤检查Undefined Macros。

 

  ⑥C/C++工程重新核对实际构建使用的宏和头文件路径。

 

  ⑦修正后再次Analyze。

 

  2、用已知代码关系验证数据库

 

  ①选择一个已经确认存在调用关系的函数。

 

  ②打开【Information Browser】。

 

  ③查看【Calls】是否能找到下级函数。

 

  ④再到被调用函数查看【Called By】。

 

  ⑤打开一个主要文件,检查Metrics数据。

 

  ⑥查看项目文件数量和原项目是否接近。

 

  ⑦确认这些基础结果正常后,再继续生成依赖图、调用图和度量报告。

 

  3、给项目配置留一份可恢复备份

 

  ①项目配置稳定后执行【und export settings.xml myProject.und】。

 

  ②把【settings.xml】和源码版本对应保存。

 

  ③使用项目内分析数据时,把整个【.und】目录一起备份。

 

  ④项目升级Understand版本前,先保留旧数据库副本。

 

  ⑤源码目录发生迁移时,先处理项目路径,再重新Analyze。

 

  ⑥不要让多台机器同时写同一个Understand数据库,项目数据库不适合多用户同时写入。

  总结

 

  Understand数据库异常后,能重新生成的分析数据和需要保留的项目配置要分开看。源码、项目路径和分析设置还在时,重新分析或重新建立.und项目通常能够恢复代码关系和度量数据。项目平时保留一份配置备份,版本升级或磁盘迁移时也会省去不少重新配置工作。如需进一步了解Understand数据库管理、项目迁移与分析数据恢复方法,欢迎联系咨询。

135 2431 0251