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
更好用的代码编辑器
咨询购买
最新文章
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
Source Insight语法高亮怎么设置 Source Insight语法高亮颜色不生效是什么原因
代码能正常打开,关键字、函数和注释却全是一个颜色,看久了确实有点累。Source Insight的高亮并不只看颜色设置,它还会受语法格式、文件类型、语言解析器和视觉主题影响。处理Source Insight语法高亮怎么设置Source Insight语法高亮颜色不生效是什么原因,需要把这几处一起检查。
2026-07-30
Source Insight怎么批量替换代码 Source Insight批量替换后如何撤销修改
项目里改函数名、宏定义或接口前缀时,逐个文件处理很容易漏。Source Insight支持跨文件替换,不过范围一旦选大,注释、字符串和同名变量也可能被一起改掉。处理“Source Insight怎么批量替换代码Source Insight批量替换后如何撤销修改”,建议先查结果,再替换;真改错了,也别急着关文件。
2026-07-30
Source Insight编码格式怎么切换 Source Insight编码格式错误导致中文乱码怎么办
Source Insight编码格式的切换,以及编码格式错误导致中文乱码时的处理,很多时候并不是代码内容本身损坏了,而是文件原有的编码和编辑器读取的方式没有对上。在比较早的项目里面,GBK、ANSI、UTF-8这几种编码混在一起使用是很常见的,尤其是中文注释、中文字符串和历史源码被一同维护的时候,文件打开以后就很容易出现乱码。Source Insight能够使用不同的字符编码来打开和保存文件,默认的编码通常是按照UTF-8来处理的,但是项目里面的文件却未必全都是UTF-8的。
2026-06-30
Source Insight书签怎么添加 Source Insight书签丢失后怎么恢复定位
Source Insight函数跳转的设置,以及函数跳转到了声明那里却不能进入定义的处理,在查看C/C++项目的时候,是一个经常会碰到的问题。Source Insight的跳转功能需要依靠项目的符号库,只有当源文件、头文件、包含路径和符号同步这几样都保持正常,函数跳转的结果才会比较准确;这个软件本身支持通过快捷键或者鼠标的方式跳转到符号的定义,也支持在项目符号列表里面查找函数定义,并完成跳转。
2026-06-30

咨询热线 400-8765-888