著录项信息
专利名称 | 一种用于识别对应于源代码语句的采集样本的逻辑分析仪 |
申请号 | CN98115979.6 | 申请日期 | 1998-07-16 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 1999-01-27 | 公开/公告号 | CN1206142 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
申请人 | 特克特朗尼克公司 | 申请人地址 | 美国俄勒冈州
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 特克特朗尼克公司 | 当前权利人 | 特克特朗尼克公司 |
发明人 | R·J·赫斯 |
代理机构 | 中国专利代理(香港)有限公司 | 代理人 | 王勇;王岳 |
摘要
一种用于在逻辑分析仪或仿真器采集缓冲器中定位对应于源代码语句(58)的数据样本的系统与方法,采用第一(56)及第二(54)窗口,其中一个窗口(56)显示诸如反汇编形式的采集缓冲器的内容,而另一窗口(54)则显示源代码。当显示了源代码文件并选择了源代码内的指定语句时,便启动在采集缓冲器中搜索(36)匹配的样本。如果找到样本,便在适当的窗口中显示与加亮(40)它。
1.一种逻辑分析仪,包括:
一个采集系统(46),用于采集样本数据;
一个存储器(36),用于存储所述采集的数据;并且 其特征在于:
一个用于识别对应于源代码语句的采集样本的系统,包括:
装置(54),用于观察以所述源代码写的一个程序指令行的 显示;
装置(56),用于观察由以所述源代码写的所述程序编译成 目标代码的一个程序指令行的显示;
关联器(15、48),用于将以所述源代码给出的指令与以所 述目标代码的地址范围关联;和
搜索装置(48、26、28、30、32、34、36、38、40、42), 用于为发生的一个具有等于目标代码的所述地址范围中的一个 地址值的采集的样本数据,在所述存储器中搜索所述采集样本 数据。
2.按照权利要求1的逻辑分析仪,其特征在于:所述关联 器(15、48)包括一个查找表,所述查找表将源代码语句位置与 对应的目标代码语句位置范围关联。
3.按照权利要求1的逻辑分析仪,其特征还在于:一个界 面装置用于接收用户的命令。
4.按照权利要求2的逻辑分析仪,其特征在于:所述界面 装置指示在采集样本数据中向前搜索(30)或向后搜索(32) 之一。
5.按照权利要求4的逻辑分析仪,其特征还在于:一个指 针装置(49),其中所述指针装置是用户用来选择要为之定位对 应的采集样本的源代码语句的。
6.按照权利要求5的逻辑分析仪,其特征在于:所述指针 装置具有第一(51)及第二(53)选择器,及其中在启动第一 选择器时,所述搜索系统向前搜索,而在启动第二选择器时, 所述搜索系统向后搜索。
7.按照权利要求6的逻辑分析仪,其特征在于:所述采集 样本数据包含目标代码数据。
8.按照权利要求1的逻辑分析仪,其特征在于:所述源代 码语句包含汇编语言源代码数据。
9.按照权利要求6的逻辑分析仪,其特征在于:
装置(54),用于观察以所述源代码写的一个程序指令行的 显示,该装置包括一个用于加亮一源代码行的第一光标定位装 置;
装置(56),用于观察由以所述源代码写的所述程序编译成 目标代码的一个程序指令行的显示,该装置包括一个用于加亮 一目标代码行的第二光标定位装置;并且
其特征还在于:当所述搜索系统查找发生的一个具有等于 目标代码的所述地址范围中的一个地址值的所述采集样本数据 时,所述第二光标定位装置移动所述光标到目标代码的所述显 示中一个对应的位置。
10.按照权利要求2的逻辑分析仪,其特征在于:可以随机 选择所述将用于查找一个对应的采集的样本数据的源代码语 句。
技术领域\n本发明涉及测试和测量系统,更具体地涉及确定测试仪所获取的 对应于软件源代码语句的采集样本的系统。\n背景技术\n早先,工程师通常以作为低级语言的汇编语言编写测试和测量系 统的控制代码。然而现在为了改进开发时间并使得在较短的时间内能 开发出更强大的功能及复杂性的产品,工程师通常采用诸如C、C++等 高级语言开发产品。高级语言是用编译程序/汇编程序/连接程序系统 转换成供在特定处理器上操作的机器代码的,该系统根据高级源代码 生成汇编语言与/或机器代码。在调试时,工程师必须与低级机器代码 打交道,通常用调试程序将后者转换成汇编语言以帮助其理解。然而, 由于工程师并不以汇编语言编写软件且由于工程师可能并不熟悉编译 程序生成对应于各种源代码语句的汇编语言代码所采用的方法,工程 师难于理解调试期间系统的确切操作。\n按照先有技术,用户有必要选择采集样本然后试图定位对应的源 代码语句。并且,这些先有系统允许搜索对应于在执行次序中下一条 或前一条源代码语句的采集样本。然而,先有技术中不存在能从用来 生成可执行代码的任何源代码文件中随机选择一条源代码语句,然后 在采集缓冲器/反汇编文件中定位一个匹配样本的系统。\n诸如逻辑分析仪等当前的测试仪器是包含用于控制测试仪的操作 的广泛的软件支持系统的完善的装置。这些支持系统中的一些包含调 试系统,它们使工程师能使用测试仪来执行所嵌入的系统的实时特性 与调试,其中所获取的数据(在微处理器系统的情况中)包含在系统 的操作期间发生的总线事务处理之类。\n按照先有技术,采用调试系统,工程师在调试系统时必须逐行地 跟踪采集样本。例如,如果工程师对已被系统获取的特定数据样本感 兴趣,并且对应的源代码显示在工作站上的调试窗口中,工程师可能 不知道哪一源代码语句对应于该特定数据样本,由于取决于控制软件 的操作特征与流程,数据样本通常可从许多不同模块中任何一个中得 出。从而,如果工程师正在用调试程序观察特定的源代码行,工程师 必须对采集缓冲器中的对应数据样本是从何处获取的作出某种受过训 练的推测,并跟踪通过若干样本,希望这种推测是正确的并且源语句 的条件是适当地满足的使得所希望的样本的确出现在采集缓冲器中。 这可能包含逐步地通过采集缓冲器中的多个样本,这可能使工程师烦 恼, 因为通常不逐步通过大量的采集样本便不能在调试程序中到达该 特定的采集样本,完全没有保证所寻求的样本存在于采集缓冲器中。\n发明内容\n从而,本发明的目的为提供改进的调试系统。\n本发明的另一目的为提供用于互相关联两个数据集之间的光标的 改进的系统。\n本发明的又另一目的为提供改进的调试系统,其中当高级数据中 的光标移动时,低级数据中的光标移动到一条对应的语句。\n根据本发明,提供了一种用于识别对应于源代码语句的采集样本 的逻辑分析仪,包括:一个采集系统,用于采集样本数据;一个存储 器,用于存储所述采集的数据;并且其特征在于:一个用于识别对应于 源代码语句的采集样本的系统,包括:一个用于观察以所述源代码写 的一个程序指令行的显示的装置;一个用于观察由以所述源代码写的 所述程序编译成目标代码的一个程序指令行的显示的装置;一个关联 器,用于将以所述源代码给出的指令与以所述目标代码的地址范围关 联;和搜索装置,用于为发生的一个具有等于目标代码的所述地址范 围中的一个地址值的采集的样本数据,在所述存储器中搜索所述采集 样本数据。\n附图说明\n本发明的主题在本说明书的结论部分中具体地指出及提出明确的 要求。然而,通过参照下面结合附图作出的描述,可以最好地理解其 组织与操作方法连同其进一步的优点与目的,附图中相同的参照字符 指示相同的单元。\n图1为按照本发明的系统的方框图,其中该系统适用于与源代码 观察器、调试程序之类一起使用;\n图2为展示在打开目标代码文件时执行本发明中的执行步骤的流 程图;\n图3为在执行本发明的搜索方式中的执行步骤的流程图;\n图4为采用本发明时所使用的典型配置的方框图;\n图5为采用本发明的替代操作环境的视图;\n图6为展示对应于所获取的数据的高级源代码及汇编代码信息的 样本采集窗口的视图;以及\n图7为图4的典型配置的替代实施例,其中的测试仪及工作站为 同一单元。\n具体实施方式\n按照本发明的较佳实施例的系统包括连接在低级采集数据观察器 上的高级源代码数据观察器,其中在一个数据观察器中的光标移动及 搜索命令的发布导致在另一数据观察器中的光标的对应移动以指示对 应的位置(如果找到这一位置的话)。这里所使用的高级数据适当地 包括比如源代码,而低级数据可包括所获取的数据、目标代码、汇编 代码等。\n参见图1,展示采用本发明的系统10的结构的方框图,可包括汇 编语言观察器12(及可通过反汇编目标代码操作的)的低级观察器与 可包括源代码观察器14或作为替代的调试程序的高级数据观察器用 按照本发明的通信信道16链接起来。通信信道16在高级与低级观察 器之间传递相对的光标命令,来指令另一观察器(或调试程序)将其 光标移动到适当的位置。计算机、工作站之类运行这些观察器及本发 明的其它过程。\n使用中,本系统利用诸如编译程序所提供的调试信息,其中该调 试信息通常存储在编译程序生成的目标文件中。这一调试信息中包含 源代码文件名、对应于目标文件中的语句的行与列(有时有)数据。 按照本发明,当打开源文件时,打开及读取对应的目标文件,并生成 可包含诸如查找表的关联数据15,将源代码语句映射到地址上。作为 替代,不打开目标文件,而是一个独立的程序可首先从目标文件中抽 取调试信息并将其存储在独立的符号文件中,源代码观察器读取它来 替代直接读取目标文件。\n参见图2,它是在打开目标或符号文件时执行本发明中的执行步 骤的流程图,在步骤20上,打开目标或符号文件,然后在步骤22利用 出现在目标或符号文件中的调试信息导出关联数据,将可执行/目标文 件中的地址范围与源文件名、源文件中的行号及有时与特定的列相关 联。在步骤24上,从低级数据观察中获取初始地址值。在步骤26利用 这一地址及步骤22中构成的关联数据确定对应的源文件名并在步骤 28打开该源文件。高级观察器显示源文件的内容。在步骤30中,调整 高级观察器的显示,使得用关联数据指示的源文件的特定行能看得见 并适当地加亮该行。保持关联数据供在低级视图中定位对应的语句时 使用,如下面所讨论的。\n当指针在该源代码语句上时用户通过揿按诸如鼠标按钮而选择源 文件中的源代码语句时,便从关联数据中确定对应的地址范围。导出 搜索命令并用它来启动在低级数据缓冲器中起始于紧接在当前光标位 置之前或之后的位置上搜索带有指定的范围内的地址值的采集样本。 如果找到这一样本,便重新定位低级观察器中的采集缓冲器窗口来显 示适当的样本并将光标定位在该样本上。\n较佳实施例中的搜索规则如下:\n如果要搜索的源代码语句位置是在当前光标位置下面的源文件 中,则在向前方向上启动搜索。\n如果要搜索的源代码语句在当前光标位置前面,则在向后方向上 启动搜索直到找到该数据时为止。\n本发明的另一特征在于例如只须在鼠标器49(见图4)上选择一 个另一按钮便能反转搜索方向。从而,如果源语句在文件中在当前位 置之后,用左鼠标器按钮51(第一选择器)选择源语句导致向前搜索,而对于给定 的相同的源代码行位置用右鼠标器按钮53(第二选择器)选择源语句导致反向搜索。\n上面提出的规则与搜索特征是在较佳实施例中采用的,但也可选 择与适当地采用其它规则。\n本系统并不限制用户从当前显示的源文件中选择行。用户能从清 单中选择显示任何源文件,然后可从该文件中选择源代码行。在可获 得的源文件的清单上的文件便是用来建立用户指定的目标文件的那些 文件。通常,这些文件名是从目标或符号文件中的调试信息中确定的。\n参见图3,它是定位对应于源语句的语句的步骤的流程图,首先 在步骤26中获取新的光标位置(它是要为之定位对应的低级数据的源 语句),然后在判定框28中作出判定该新位置在文件中是否还在前一 位置下面。如果位置是在下面,便在步骤30将要执行的进一步搜索的 方向设定为向前方向。如果否,便在步骤32将搜索方向设定为向后。接 着,便从早先生成的关联数据中确定对应于所选择的源代码行的地址 范围,步骤34。接着,在采集缓冲器中启动搜索从关联数据中所确定 的范围中的对应地址的第一次出现,步骤36。如果在判定框38找到, 则在低级数据视图中移动光标,步骤40。如果在搜索到采集缓冲器 尾部之前未找到对应的地址范围,别通过显示诸如对这一结果的对话 框而作出该情况的指示,步骤42。\n对于任何所选择的源代码语句,在采集缓冲器中可以有零个样 本、一个样本或一个以上对应的样本,因为在一组给定的采集数据中 (例如,它是在运行测试仪期间获得的),可能存在导致执行一次、 多次或零次特定源语句的情况。如熟悉本技术的人员会理解的,源代 码语句不一定按照它们在源代码文件中的位置的次序执行,或者如果 源语句是在分开的文件中,则各种语句的执行次序是有点无法预测 的。此外,由于源文件语句可能在执行多次的循环内,匹配的样本可 能出现多次。因此应理解,此前描述的搜索方向规则是基于假设的, 并不能保证搜索方向是正确的,或者甚至不能保证搜索目标存在于采 集缓冲器中。\n在一个特定实施例中,本发明与逻辑分析仪及被测器件一起使 用。图4为实现本发明所使用的典型配置的方框图,其中被测器件44 连接在测试仪46上(诸如逻辑分析仪、仿真器等)而测试仪46则与 工作站48互连。工作站48显示来自测试仪的运行时间数据(例如为 供工程师早先研究而反汇编的)并且还包含同样操作测试仪的高级源 代码。工作站与测试仪通过链路50连接,当测试仪与工作站接近时链 路50可由电缆构成。在某些情况中,测试仪可建立在实验室中,而工 作站则在工程师的办公室中,链路50则可包含网络,其中测试仪是受 遥控的并由工作站查询数据。工作站与测试仪也可适当地包含在同一 单元中,例如,如图7中所示,其中通用计算机48’是工作站,并设置 有内置的或插接的测试仪模块(或多个模块)46’。\n此外,如图5所示,来自测试仪及被测器件的采集数据可在测试 仪的实时运行期间捕获并作为测试数据52保存。然后,工程师可在某 一其它时间上观察保存的测试数据,空出实验室、测试仪及被测器件 供其它工程师使用。\n图6为显示在工作站48上的示例性窗口的视图,其中窗口54中 包含正在被测试仪46观察的系统的高级“C”源代码语句。窗口56中 包括测试仪获得的对应的低级反汇编后的目标代码。在源窗口54中, 在58“i<NUM_STATES;”处加亮文件“demo.c”的行46的一部分。 这一显示是在工程师通过击鼠标器左按钮在窗口56中启动搜索对应 的语句时生成的,导致在窗口56中被定位的对应汇编代码“MOVEQ# 08,DO”受到加亮(用箭头60指示)。\n虽然这里所示的实例涉及搜索对应于高级源代码的汇编或低级语 句,作为替换,可以以相反的方式进行搜索,其中利用在低级数据中 所选择的语句来启动搜索高级数据中的对应语句。采用可能包含查找 表(如带有不同的索引的现有的表)的逆关联将低级地址与高级源语 句关联。采集缓冲器可以是诸如跟踪缓冲器,而这里所称的所获取的 数据可适当地包括早先获得然后保存在文件中的数据。\n虽然所展示的实施例适当地利用查找表作为关联数据来达到高级 到低级关联,应理解本发明不限于这一方法及结构。例如,替代查找 表,可将系统实现为每次要产生关联时通过从目标文件中读取调试信 息来导出对应于高级数据选择的地址范围。熟悉本技术的人员会理 解,也能适当地采用其它类型的数据结构来达到这一关联。\n从而,本发明采用诸如高级与低级源数据为所获取的被测器件的 实时测试数据提供了用于关联高级与低级视图的改进的系统。本系统 能在任一视图中随机(不同于下一条或前一条)选择语句,然后在另 一视图中向前或向后搜索,以从另一视图中定位对应的语句。然后测 试工程师便能更快地观察源代码语句与它们所对应的低级语句而无须 每次一项地逐步通过数据或语句。\n按照本发明的系统的用户所能解决的典型问题为检测存储器恶化 问题的原因、定时与性能问题判定以及只可能在系统的全速操作中才 能出现的其它相关异常表现,或只能在系统操作许多小时之后出现的 问题。\n虽然已示出及描述了本发明的较佳实施例,对于熟悉本技术的人 员很清楚,可以在其较宽广的方面在不脱离本发明的情况下作出许多 改变与修正。因此,所附的权利要求书旨在覆盖落入本发明的真实精 神和与范围内的所有这些改变与修正。
法律信息
- 2016-09-07
未缴年费专利权终止
IPC(主分类): G06F 9/44
专利号: ZL 98115979.6
申请日: 1998.07.16
授权公告日: 2003.04.09
- 2003-04-09
- 2000-07-26
- 1999-01-27
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
1987-03-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |