工具如何查找源代码

2024年11月19日 23:30
有1个网友回答
网友(1):

为了显示带注释的源代码和带注释的反汇编代码,性能分析器和er_print实用程序对于运行实验的程序所使用的源代码文件和装入对象文件必须具有访问权限。
首先在实验的archives目录中查找装入对象文件。如果在该目录中未找到,则将使用与下面所述的源文件和对象文件相同的算法查找这些文件。
在大多数实验中,源文件和对象文件按照完整路径的格式记录。Java 源文件还具有一个软件包名称,其中列出文件的目录结构。如果在记录实验的同一系统上查看实验,则可以使用完整路径找到源文件和装入对象。当实验移到其他计算机或者在其他计算机上查看实验时,这些完整路径可能无法访问。
可以使用两个补充方法来查找源文件和对象文件:路径映射和搜索路径。如果在archives子目录中没有找到装入对象文件,可以使用相同的方法来查找这些文件。
可以设置路径映射和搜索路径,帮助工具查找实验中引用的文件。在分析器中,使用 "Set Data Preferences"(设置数据首选项)对话框的 "Pathmaps"(路径映射)标签设置路径映射,并使用 "Search Path"(搜索路径)标签设置搜索路径,如
设置数据表示选项
中所述。对于er_print实用程序,使用pathmap和setpath指令,如控制源文件搜索的命令中所述。
/a/b/c/sourcefile
,并且pathmap指令指定将/a/映射到/x/y/
,则可以在/x/y/b/c/sourcefile
中找到文件。如果pathmap指令将/a/b/c/映射到/x/
,则可以在/x/sourcefile
中找到文件。
如果通过路径映射找不到文件,则将使用搜索路径。搜索路径提供了一个要为具有指定基名的文件搜索的目录列表,在上面的示例中,指定的基名为sourcefile
。可以使用setpath命令设置搜索路径,并使用addpath命令向搜索路径附加一个目录。对于 Java 文件,将尝试软件包名称,然后再尝试基名。
使用搜索路径中的每个目录来构造尝试搜索的完整路径。对于 Java 源文件,将构造两个完整路径,一个用于基名,另一个用于软件包名称。工具会将路径映射应用于每个完整路径,如果没有映射路径指向文件,则将尝试下一个搜索路径目录。
如果在搜索路径中没有找到文件,并且没有映射前缀与原始完整路径匹配,则将尝试原始完整路径。如果有任何路径映射前缀与原始完整路径匹配,但没有找到文件,则不会尝试原始完整路径。
请注意,缺省搜索路径包含当前目录和实验目录,因此一个使源文件可访问的方法是将源文件复制到这些位置之一,或者在这些位置中放置指向源文件当前位置的符号链接。