《调试系统及执行调试系统操作的方法.pdf》由会员分享,可在线阅读,更多相关《调试系统及执行调试系统操作的方法.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103123603 A(43)申请公布日 2013.05.29CN103123603A*CN103123603A*(21)申请号 201210447912.4(22)申请日 2012.11.0913/293,099 2011.11.09 USG06F 11/36(2006.01)(71)申请人联发科技(新加坡)私人有限公司地址新加坡启汇城大道一号索拉斯大厦三楼之一(72)发明人杰弗里戴维罗乐肯尼思艾德温普尔 戴文生骆志安(74)专利代理机构北京万慧达知识产权代理有限公司 11111代理人于淼 杨颖(54) 发明名称调试系统及执行调试系统操作的方法(57) 摘要本发明揭。
2、示调试系统及执行调试系统操作的方法。调试系统,包含调试模块。调试模块接收包含至少一软件断点的应用,当目标系统遇到软件断点时,调试模块开始处理软件断点,决定软件断点是否为选择性软件断点,假若决定遇到选择性软件断点,则删除对所有其他剩余断点的指令替换以及在遇到软件断点处的应用的原始指令的执行,或者删除对所有其他剩余断点的指令替换,并且在遇到软件断点处重新安装该选择性软件断点。上述调试系统及执行其操作的方法通过在决定遇到选择性软件断点时删除指令替换来提高处理特定种类断点的速度及性能。(30)优先权数据(51)Int.Cl.权利要求书2页 说明书4页 附图3页(19)中华人民共和国国家知识产权局(12。
3、)发明专利申请权利要求书2页 说明书4页 附图3页(10)申请公布号 CN 103123603 ACN 103123603 A1/2页21.一种调试系统,包含:调试模块,接收包含至少一软件断点的应用,当目标系统遇到该至少一软件断点时,该调试模块开始处理该至少一软件断点,决定该至少一软件断点是否为选择性软件断点,假若决定遇到选择性软件断点,则该调试模块删除对所有其他剩余断点的指令替换以及在遇到该选择性软件断点处的该应用的原始指令的执行,或者删除对所有其他剩余断点的指令替换并且在遇到该选择性软件断点处重新安装所遇到的该选择性软件断点。2.如权利要求1所述的调试系统,更包含主机系统,执行该调试模块。。
4、3.如权利要求2所述的调试系统,其特征在于,该主机系统使用该调试模块来控制该目标系统。4.如权利要求1所述的调试系统,其特征在于,该调试模块包含调试器以及调试接口。5.如权利要求1所述的调试系统,其特征在于,该选择性软件断点位于对该目标系统的处理器的状态没有副作用的指令上。6.如权利要求5所述的调试系统,其特征在于,该调试模块在决定该目标系统上的该处理器保持停止或者继续运行之前,保留所有已安装断点。7.如权利要求6所述的调试系统,其特征在于,该调试模块在处理该选择性软件断点后,决定自动将该处理器设置为运行,并且自动恢复执行该应用。8.如权利要求1所述的调试系统,其特征在于,该选择性软件断点包含。
5、轻量断点。9.如权利要求8所述的调试系统,其特征在于,该调试模块在决定该目标系统上的处理器保持停止或者继续运行之前,保留除该轻量断点之外的所有已安装断点。10.如权利要求9所述的调试系统,其特征在于,该调试模块决定自动将该处理器设置为运行,以重新安装的该轻量断点以及其他已安装断点来恢复执行该应用。11.一种执行调试系统操作的方法,包含:提供应用以执行;使用调试模块来接收包含至少一软件断点的该应用,当目标系统遇到该至少一软件断点时,该调试模块开始处理该至少一软件断点,决定该至少一软件断点是否为选择性软件断点,假若决定遇到选择性软件断点,则该调试模块删除对所有其他剩余断点的指令替换以及在遇到该选择。
6、性软件断点处该应用的原始指令的执行,或者删除对所有其他剩余断点的指令替换并且在遇到该选择性软件断点处重新安装所遇到的该选择性软件断点。12.如权利要求11所述的执行调试系统操作的方法,其特征在于,由主机系统执行该调试模块。13.如权利要求12所述的执行调试系统操作的方法,其特征在于,该主机系统使用该调试模块来控制该目标系统。14.如权利要求11所述的执行调试系统操作的方法,其特征在于,该调试模块包含调试器以及调试接口。15.如权利要求11所述的执行调试系统操作的方法,其特征在于,该选择性软件断点位于对该目标系统的处理器的状态没有副作用的指令上。16.如权利要求15所述的执行调试系统操作的方法,。
7、其特征在于,该调试模块在决定该目标系统上的该处理器保持停止或者继续运行之前,保留所有已安装断点。17.如权利要求16所述的执行调试系统操作的方法,其特征在于,该调试模块在处理权 利 要 求 书CN 103123603 A2/2页3该选择性软件断点后,决定自动将该处理器设置为运行,并且自动恢复执行该应用。18.如权利要求11所述的执行调试系统操作的方法,其特征在于,该选择性软件断点包含轻量断点。19.如权利要求18所述的执行调试系统操作的方法,其特征在于,该调试模块在决定该目标系统上的处理器保持停止或者继续运行之前,保留除该轻量断点之外的所有已安装断点。20.如权利要求19所述的执行调试系统操作。
8、的方法,其特征在于,该调试模块决定自动将该处理器设置为运行,以重新安装的该轻量断点以及其他已安装断点来恢复执行该应用。权 利 要 求 书CN 103123603 A1/4页4调试系统及执行调试系统操作的方法技术领域0001 本发明有关于软件断点处理领域,特别是有关于通过在特定条件下删除指令替换(instruction replacement)与执行来提高软件断点处理的性能。背景技术0002 一些调试器(debugger),例如GNU计划调试器(GNUProject debugger,GDB),提供了当处理器停止时,决定如何处理断点的选项。断点可留在存储器中或者从存储器移除。假若断点留在存储器中。
9、,并且要求调试器读取存储器断点存在的区域,则调试器在将此区域内容显示给用户前,以原始存储器内容来遮蔽断点。0003 本发明通过在特定条件下删除指令替换与执行来提高处理特定种类断点的速度及性能,相比于现有技术有了很大进步。发明内容0004 有鉴于此,本发明提供新的调试系统及执行调试系统操作的方法。0005 根据本发明的一实施方式,提供一种调试系统,包含调试模块。调试模块接收包含至少一软件断点的应用,当目标系统遇到软件断点时,调试模块开始处理软件断点,决定软件断点是否为选择性软件断点,假若决定遇到选择性软件断点,则删除对所有其他剩余断点的指令替换以及在遇到软件断点处的应用的原始指令的执行,或者删除。
10、对所有其他剩余断点的指令替换并且在遇到软件断点处重新安装该选择性软件断点。0006 根据本发明的另一实施方式,提供执行调试系统的操作的方法,包含:提供应用以执行;使用调试模块来接收包含至少一软件断点的该应用,当目标系统遇软件断点时,调试模块开始处理软件断点,决定软件断点是否为选择性软件断点,假若决定遇到选择性软件断点,则删除对所有其他剩余断点的指令替换以及在遇到选择性软件断点处的应用的原始指令的执行,或者删除对所有其他剩余断点的指令替换并且在遇到选择性软件断点处重新安装该选择性软件断点。0007 本发明所提出的调试系统及执行调试系统操作的方法,其通过在决定遇到选择性软件断点时删除指令替换来提高。
11、处理特定种类断点的速度及性能。附图说明0008 图1为依本发明一实施方式,显示所使用的调试系统的示意图。0009 图2为显示在执行所加载的应用期间,当发现NOP指令上的软件断点时,本发明的调试系统所执行步骤的处理流程图。0010 图3为显示这执行所加载的应用期间,当遇到LWBP时,本发明的调试系统所执行步骤的处理流程图。具体实施方式说 明 书CN 103123603 A2/4页50011 本发明提供一种基于断点的个别属性(individual attribute),而不是影响所有断点的总体选项(global option)来处理特定软件断点的技术方法。特别地,本发明依靠两种软件断点应用的特定场。
12、景来确定如何继续进行以及如何处理指令集(instruction set)中剩余的断点。上述指令集为所提供的待处理指令集。调试器基于遇到哪一个断点场景来决定如何继续进行对所加载的应用中其他剩余断点的处理。0012 图1为依本发明一实施方式,所使用的调试系统2的示意图。调试系统2包括主机4。主机4包含由用户控制的计算器,一般为具有处理器、处理器存储器、硬盘储存器(hard disk storage)、以及其他外围装置(peripheral device)的个人计算器。主机4使用其处理器以及处理器存储器来完成耦接于调试接口10的调试器8。调试器8与调试接口10可视为运行在调试模块中。调试器8为运行于。
13、主机4上的软件应用,用于控制目标系统6,并且显示信息来允许用户诊断并且分析待运行于目标系统6上的应用代码。调试接口10为目标系统6与运行于主机4上的调试器8之间的接口模块。0013 目标系统6执行包括软件断点的所加载的应用。软件断点为一种特别指令,当执行软件断点时会使得处理器进入调试模式,调试模式中调试器8具有控制权。一般地,通过保留应用的原始指令,并且将其替换为特别的断点指令来设置软件断点。调试器还支持自动断点。自动断点是基于所加载的应用中预定义标记(predefined label)的存在而被自动设置的断点。0014 假若存在特定的定义标记,则调试器8或者调试接口10在这些位置自动设置断点。
14、,而无需用户明确地进行设置。当发现自动或者条件性的(conditional)软件断点(即选择性软件断点)时,调试器8或者调试接口10基于地址、属性、以及可能来源于处理器自身的数据来评估特定条件,并且无需与用户的交互动作就决定处理器是否应该保持停止状态还是自动返回运行状态。0015 目前的现有技术中,当在目标系统中触发断点事件(breakpoint event)时,调试器或者调试接口基于事件发生的地址来决定如何处理此断点事件。假若断点为自动或者条件性的断点,则调试器8或者调试接口10评估断点的条件,并且可选择地(optionally)在执行一些特定动作后,不受用户干预地将处理器设置为再次运行。每。
15、当发现一个断点且处理器停止,则自存储器移除系统中的所有其他断点,并且以所保存的其原始指令来替换。假若将处理器设置为再次运行,则必须首先在指令之前停止的地方执行单步(single step)指令,以越过(get beyond)目前断点的地址,接着将所有断点写入存储器,并且再次保存原始指令以待后续使用。接着,可将处理器设置为运行。0016 本发明识别两种断点使用场景,第一断点使用场景为断点位于当被执行时,对目标系统的处理器状态没有副作用的指令上。例如,位于无操作(No Operation,以下称为NOP)指令上。当遇到位于NOP指令上的断点时,不再需要从存储器中移除断点,并且可跳过单步指令以加快断。
16、点处理。这是因为NOP指令作为断点的占位(placeholder),在不被执行时,对应用没有副作用。第二断点使用场景为使用简化断点处理的轻量断点(Lightweight Breakpoint,以下称为LWBP)。一般地,当遇到断点并且处理器停止,则从存储器移除系统中所有其他断点,并且以其原始指令替换。当遇到标示为LWBP的断点时,调试器/调试接口仅移除LWBP,并且保持等待,直到做出在从存储器移除系统中所有其他断点前确实保持处理器停止的决定。假若在处理LWBP之后,决定应该将处理器设置为再次运行,则仅需要重说 明 书CN 103123603 A3/4页6新安装LWBP。自动断点也可以是LWBP。
17、,但是并非所有LWBP都是自动断点。0017 图2为在执行所加载的应用期间,当发现NOP指令上的软件断点时,本发明的调试系统2所执行步骤的处理流程图。处理流程16中,如步骤18所示,加载的应用具有在所选择的地址设置的断点(包含自动断点)。主机4的处理器执行调试器8。在目标系统6上执行应用。如步骤20所示,当执行于目标系统6上的应用执行软件断点指令时,触发断点,即处理器运行,并且触发断点事件。由此,如步骤22所示,启动调试器8来评估断点的地址与属性。调试器8启动断点处理器(handler)来执行处理流程24所示的处理断点的动作。如步骤26所示,从调试器8接收信息的后,断点处理器决定原始指令是否为。
18、NOP指令。假若决定原始指令是NOP指令,则如步骤28所示,个人计算器不降速(decrement),并且如步骤30所示,不卸除任何剩余断点(即删除对所有其他剩余断点的指令替换与在遇到该选择性软件断点处的该应用的原始指令的执行)。假若决定断点并非NOP指令,则如步骤32所示,个人计算器降速,并且如步骤34所示,卸除所有断点。0018 此外,步骤35决定断点是否为自动断点,以及是否满足允许调试器8将处理器设置为再次运行的条件。假若处理器待设置为再次运行则需要完成处理流程36所示任务,并且假若处理器在调试器8的控制下待保持停止,则需要完成处理流程38所示步骤。具体地,处理流程36显示,假若自动断点位。
19、于NOP指令上,则如步骤40所示,不执行目前的单步指令,并且如步骤42所示,没有断点重新安装。步骤48中将处理器设置为运行。如处理流程36所示,假若决定自动断点不位于NOP指令上,则如步骤44所示接着执行目前的单步指令并且如步骤46所示,重新安装所有断点。再次说明,步骤48中将处理器设置为运行。处理流程38显示在调试器8的控制下,当要保持处理器停止时所需步骤。此状况下,假若断点位于NOP指令上,则如步骤50所示,卸除所有断点。0019 当遇到位于NOP指令上的断点时,不再需要移除断点,并且还可以跳过单步指令,以加快断点处理,这是因为NOP指令作为断点的占位,在不被执行时,对应用没有副作用。这一。
20、点,在重复遇到自动或者条件性断点,并且调试器8或者调试接口10一般地在处理断点后自动恢复(resume)应用时,特别有用。0020 图3为在执行所加载的应用期间,当遇到LWBP时,本发明的调试系统2所执行步骤的处理流程图。处理流程60中,如步骤62所示,加载的应用具有在所选择的地址设置的断点(包含自动断点)。主机4的处理器执行调试器8。在目标系统6上执行应用。如步骤64所示,当在目标系统6上运行的应用执行软件断点指令时,触发断点,即处理器运行,并且触发断点事件。由此,如步骤66所示,启动调试器8来评估断点的地址与属性。调试器8启动断点处理器(handler)来执行处理流程68所示的处理断点的动。
21、作。如步骤70所示,断点处理器使个人计算器降速来决定是否遇到LWBP。假若遇到LWBP,则如步骤72所示,仅卸除LWBP,而不卸除剩余断点(即删除对所有其他剩余断点的指令替换),否则,假若遇到的并非LWBP,则如步骤74所示,卸除所有断点。0021 此外,步骤76决定断点是否为自动断点,以及是否满足允许调试器8将处理器设置为再次运行的条件。假若处理器待设置为再次运行则需要完成处理流程78所示任务,并且假若处理器在调试器8的控制下待保持停止,则需要完成处理流程80所示步骤。具体地,处理流程78显示,如步骤82所示,执行目前的单步指令。假若断点为LWBP,则如步骤84所示,仅重新安装LWBP。步骤。
22、88中将处理器设置为运行。如步骤82所示,假若决定自动断点说 明 书CN 103123603 A4/4页7并非LWBP,则如步骤86所示,重新安装所有断点。再次说明,步骤88中将处理器设置为运行。处理流程80显示,当处理器在调试器8的控制下待保持停止时的所需步骤。此状况下,假若断点为LWBP,则如步骤90所示,卸除所有剩余断点。0022 此场景中,当遇到LWBP时,由于不需要交换所有已安装断点,性能得以提高。本实施方式中,最初仅将LWBP移除。此外,当调试器8决定自动将处理器设置为再次运行,性能进一步得到提高。这是因为,无需重新安装所有断点,而仅重新安装LWBP。条件性软件断点以及用于文档输入/输出(FileI/O)操作的软件断点是LWBP能够提高性能的好范例。0023 本发明虽以较佳实施方式揭露如上,然其并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。说 明 书CN 103123603 A1/3页8图1说 明 书 附 图CN 103123603 A2/3页9图2说 明 书 附 图CN 103123603 A3/3页10图3说 明 书 附 图CN 103123603 A10。