Source Insight中文网站 > 售前问题 > Source Insight怎么设置关系窗口 Source Insight关系窗口不显示调用信息如何排查

Source Insight怎么设置关系窗口 Source Insight关系窗口不显示调用信息如何排查

发布时间:2026-08-31 16: 22: 00

Source Insight的Relation Window可以根据当前选中的符号显示函数调用、被调用关系、引用关系、类继承和结构成员等信息。阅读大型C/C++工程时,可以把函数关系设置成Calls或Calls and Callers,跟随光标快速查看调用链。如果窗口已经打开却没有函数调用信息,应先确认当前符号被正确识别,再检查Relationship、自动跟踪、Call Graph Filter以及工程符号数据库是否正常。

一、Source Insight怎么设置关系窗口

Relation Window会根据当前符号类型采用不同的Relationship Rule,因此查看函数调用前,需要先把Function对应的关系设置正确。一个关系窗口也可以根据函数、类型、变量等不同符号自动切换显示内容。

1、打开Relation Window

①打开已经建立完成的Source Insight工程。

②进入【View】→【Panels】→【Relation Window】。

③把Relation Window拖到编辑器右侧或底部。

④在源码中把光标放到一个函数名上。

⑤等待窗口自动读取当前符号。

⑥如果窗口没有立即变化,点击工具栏中的【Refresh Relation Window】。

⑦需要固定当前调用树时,点击关系窗口工具栏上的【Lock】按钮。

锁定以后,移动源码光标不会改变当前Relation Window内容,需要查看其他函数时可以解除Lock,或者选择新函数后手动执行Refresh。

2、设置函数调用关系

①在Relation Window工具栏中打开【Relation Window Options】。

②找到【View Relationship】相关设置。

③选择符号类型【Functions】。

④需要查看当前函数调用了哪些函数时,将Relationship设置为【Calls】。

⑤既想看调用函数,又想看哪些函数调用当前函数时,选择【Calls and Callers】。

⑥需要查看当前函数被哪些位置引用时,可以改为【References】。

⑦设置【Levels】控制自动展开层数。

⑧点击【OK】返回Relation Window。

【Calls】表示当前函数内部引用或调用的其他函数,【References】则从相反方向查找哪些符号引用当前函数。方向设置错误时,很容易误认为调用信息没有生成。

3、设置自动符号跟踪

①再次进入【Relation Window Options】。

②找到【Automatic Symbol Tracking】。

③点击【Tracking Options】。

④选择【Track selected symbol】时,窗口跟踪当前光标所在的具体符号。

⑤希望无论光标位于函数体什么位置都查看当前函数时,选择【Track the enclosing function or class】。

⑥不要把Automatic Symbol Tracking设置成【Off】。

⑦保存设置。

⑧返回代码区移动光标,检查Relation Window是否自动切换。

二、Source Insight关系窗口不显示调用信息如何排查

Relation Window为空时,先测试Source Insight能不能识别当前函数。如果【Jump to Definition】和【Lookup References】同样无法工作,问题通常不只是关系窗口设置,而是工程文件、解析结果或符号数据库不完整。

1、确认函数已经被识别为符号

①把光标放到函数定义名称上。

②执行【Jump to Definition】。

③确认Source Insight能够跳到正确的函数定义。

④再执行【Lookup References】。

⑤检查Search Results是否能够找到函数引用。

⑥如果定义和引用都找不到,打开【Project】检查对应源文件是否已经加入当前工程。

⑦头文件和实现文件缺失时,把相关文件补充到工程中。

⑧完成后执行一次工程同步。

Relation Window依赖Source Insight建立的符号和引用索引。如果函数本身没有进入符号数据库,单独刷新窗口不会产生调用树。

2、检查Relationship和过滤条件

①打开【Relation Window Options】。

②确认【Functions】对应的关系仍为【Calls】或【Calls and Callers】。

③点击【Call Graph Filtering】。

④检查【Exclude Symbols】中有没有误加入需要查看的函数。

⑤取消不必要的排除条件。

⑥进入【Symbol Types】。

⑦确认Function没有被过滤。

⑧保存后点击【Refresh Relation Window】重新计算。

Call Graph Filter可以把指定符号排除在调用树之外。如果之前为了隐藏系统函数、库函数或宏配置过过滤规则,也可能把项目自身函数一起过滤掉。

3、检查当前代码是不是间接调用

①定位Relation Window中缺失的调用语句。

②检查源码是不是普通函数调用。

③如果通过函数指针调用,确认指针实际指向关系能否被静态解析。

④C++工程中检查虚函数、模板和宏展开产生的调用。

⑤对疑似函数执行【Lookup References】。

⑥比较Reference结果与Calls结果。

⑦宏较多时再检查Call Graph Filter是否排除了Macro。

Relation Window根据静态源码关系建立调用图。函数指针、运行时绑定和部分复杂宏无法像直接函数调用一样稳定解析,因此源码实际运行时存在调用,并不代表静态调用树一定能完整还原。

三、关系窗口仍为空怎么检查工程索引

Relationship设置没有问题后,应继续验证工程数据库。大量文件修改、代码目录替换或Source Insight异常退出后,符号数据库可能没有及时反映当前源码。

1、先同步工程文件

①保存当前修改。

②进入【Project】。

③执行【Synchronize Files】。

④等待Source Insight扫描工程文件变化。

⑤重新打开目标源码。

⑥选择函数并执行【Refresh Relation Window】。

如果只是新增或修改了一批文件,可以先通过同步更新解析结果,不必直接重建整个工程。

2、重新建立项目数据库

①进入【Project】→【Rebuild Project】。

②需要重新解析全部源码时选择【Re-Parse all source files】。

③怀疑项目数据库异常时,可以使用完整重建方式。

④需要彻底重新生成符号数据时选择【Re-Create the whole project from scratch】。

⑤等待所有源码重新扫描完成。

⑥打开目标函数。

⑦重新检查【Calls】和【References】。

完整重建会重新产生工程的符号数据库和索引,更适合文件数量变化较大或符号关系明显异常的情况。

3、检查文件类型和语言解析

①找到无法识别调用关系的源码文件。

②检查文件扩展名。

③进入【Options】中的File Type相关设置。

④确认该扩展名绑定到了正确语言解析器。

⑤自定义后缀文件要检查是否被当成普通文本。

⑥修正文件类型后重新同步或重建工程。

⑦再次检查函数是否能够Jump to Definition。

总结

Source Insight设置关系窗口时,可以通过Relation Window Options把函数关系设为Calls、Calls and Callers或References,再结合自动符号跟踪查看当前代码的调用关系。窗口不显示调用信息时,应先确认函数符号能够被正常识别,再检查Relationship和Call Graph Filter;如果定义、引用和调用信息同时异常,则继续同步或重建工程符号数据库,并核对文件类型和语言解析设置。如需进一步了解Source Insight关系窗口、函数调用树与符号关系异常排查方法,欢迎联系咨询。

展开阅读全文

︾

标签:sourceinsight使用教程,代码阅读软件,代码阅读工具

读者也访问过这里:
Source Insight
更好用的代码编辑器
咨询购买
最新文章
SonarQube怎么配置SCM代码归属信息 SonarQube分析后缺少代码作者信息如何排查
代码扫描完成后,文件里能看到问题,却找不到相关行的作者,排查时就少了提交记录这个线索。SonarQube的代码归属信息来自版本控制历史,执行扫描的账户不能直接代替代码作者。下面以Git仓库和SonarScanner CLI为例,说明SCM配置与作者缺失的处理方法,网页操作采用英文界面名称。
2026-09-30
Source Insight怎么查看宏定义 Source Insight宏跳转到错误定义位置如何排查
阅读C/C++代码时,一个宏可能决定缓冲区长度,也可能把一段操作封装成简短的调用。点进定义后,若打开的是另一套平台的头文件,继续往下分析就容易看错。Source Insight按工程符号信息定位代码,结果还会受工程范围和解析条件影响。下面以Source Insight 4英文界面为例,说明宏定义查看和跳转排查方法,这里的宏指代码中的预处理宏。
2026-09-30
Source Insight怎么设置文件类型关联 Source Insight自定义后缀文件无法识别语法如何处理
在代码阅读和维护过程中,Source Insight通常需要根据文件类型加载对应的语法解析规则。对于项目中新增的脚本文件、自定义源码文件或者特殊后缀文件,如果没有建立正确关联,软件可能会将文件当作普通文本打开,导致关键字无法高亮、函数结构无法识别等情况。Source Insight支持自定义文件类型配置,不过后缀关联、语言选择以及项目重新解析都会影响最终显示效果。
2026-09-30
SonarQube怎么导入外部Issue报告 SonarQube外部Issue导入后不显示如何排查
SonarQube可以把第三方静态分析工具产生的问题导入项目,与自身检测出的Issue一起查看。对于已经适配SonarQube的工具,可以使用对应的报告参数;其他分析器可以转换成Generic Issue格式或SARIF格式再导入。报告文件已经生成但SonarQube页面没有显示问题时,要先确认Scanner实际读取到了报告,再检查报告格式、源码路径、分析范围和当前查看的分支,不能只看报告文件是否存在。
2026-08-31
Source Insight怎么设置项目文件过滤规则 Source Insight项目中出现无关文件如何调整过滤条件
Source Insight建立大型代码工程时,可以根据File Type决定哪些文件会被自动加入项目。源码目录里同时包含编译产物、脚本、配置文件、第三方资源或临时文件时,如果过滤范围设置过宽,【Add Tree】或自动同步就可能把不需要分析的文件一起加入Project File List。处理这类问题时,可以先通过File Type Options控制文件扩展名,再清理已经进入工程的无关文件;如果还需要严格限定目录和具体文件,则可以使用Master File List维护项目范围。
2026-08-31
Source Insight怎么设置关系窗口 Source Insight关系窗口不显示调用信息如何排查
Source Insight的Relation Window可以根据当前选中的符号显示函数调用、被调用关系、引用关系、类继承和结构成员等信息。阅读大型C/C++工程时,可以把函数关系设置成Calls或Calls and Callers,跟随光标快速查看调用链。如果窗口已经打开却没有函数调用信息,应先确认当前符号被正确识别,再检查Relationship、自动跟踪、Call Graph Filter以及工程符号数据库是否正常。
2026-08-31

咨询热线 400-8765-888