CN116414634A - 设备调试方法、系统、装置、调试设备和可读存储介质 - Google Patents

设备调试方法、系统、装置、调试设备和可读存储介质 Download PDF

Info

Publication number
CN116414634A
CN116414634A CN202111678339.3A CN202111678339A CN116414634A CN 116414634 A CN116414634 A CN 116414634A CN 202111678339 A CN202111678339 A CN 202111678339A CN 116414634 A CN116414634 A CN 116414634A
Authority
CN
China
Prior art keywords
processor
debugging
information
debugged
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111678339.3A
Other languages
English (en)
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Simm Computing Technology Co ltd
Original Assignee
Beijing Simm Computing Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Simm Computing Technology Co ltd filed Critical Beijing Simm Computing Technology Co ltd
Priority to CN202111678339.3A priority Critical patent/CN116414634A/zh
Publication of CN116414634A publication Critical patent/CN116414634A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种设备调试方法、系统、装置、调试设备和可读存储介质。在本实施例中,当被测处理器为目标处理器时,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器的运行信息恢复。由此,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的运行信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的运行信息,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。

Description

设备调试方法、系统、装置、调试设备和可读存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种设备调试方法、系统、装置、调试设备和可读存储介质。
背景技术
调试器是一种用于调试的应用程序,测试人员可以通过调试设备中的调试器对被调试处理器进行调试以纠正程序中的错误。在调试的过程中,用户可以通过调试设备中的调试器控制被调试处理器在指定的断点处暂停,以便检查被调试处理器中运行的程序并进行相关的调试。
在相关技术中,由于被调试处理器中的核函数可能会在不同的运行位置被多次调用,而且每次调用时调试设备端的调用条件、调用参数等也不尽相同。因此,当出现调用错误时,测试人员需要在调试设备的各调用位置设置断点并查看调用时的上下文信息,这样,会使得问题定位的效率较低。
发明内容
有鉴于此,本申请实施例提供一种设备调试方法、系统、装置、调试设备和可读存储介质,以实现在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的运行信息,提高了问题定位的效率。
第一方面,提供了一种设备调试方法,所述方法包括:
响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息,所述第一调试信息表征所述被调试处理器中的被调试程序的运行信息;
响应于所述被调试处理器为目标处理器,显示第二调试信息,所述第二调试信息表征调用所述目标处理器的主处理器中的所述被调试程序的运行信息,所述被调试程序在所述主处理器和所述目标处理器中运行。
在一些实施例中,所述方法还包括:
响应于接收到所述目标处理器的驱动信息,存储所述主处理器中所述被调试程序的调试信息,所述驱动信息用于表征所述被调试程序在所述目标处理器中开始运行;
切换调试接口以调试所述目标处理器。
在一些实施例中,所述第一调试信息和所述第二调试信息至少包括函数调用栈信息,所述函数调用栈信息至少包括栈结构、栈寄存器值、帧寄存器值和栈所在内存信息。
在一些实施例中,根据接收到的查询请求显示第一调试信息包括:
通过所述被调试处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述被调试处理器对应的栈结构还原并显示所述被调试处理器的函数调用栈。
在一些实施例中,显示第二调试信息包括:
确定所述目标处理器对应的已恢复的函数调用栈末位帧的帧序号;
基于所述帧序号,通过所述主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述主处理器的栈结构恢复所述主处理器的函数调用栈。
在一些实施例中,所述方法还包括:
响应于所述被测处理器为目标处理器,在应用程序调试界面依次显示已恢复的所述目标处理器的调试信息和已恢复的主处理器的调试信息。
在一些实施例中,所述方法还包括:
响应于所述被测处理器为主处理器,在应用程序调试界面显示已恢复的所述主处理器的调试信息。
第二方面,提供了一种设备调试系统,所述系统包括:
目标设备,包括目标处理器;
调试设备,包括主处理器,被配置执行所述第一方面所述的设备调试方法。
在一些实施例中,所述目标处理器和所述主处理器响应于预设的中断点或接收到中断指令进入暂停状态。
第三方面,提供了一种设备调试装置,所述装置包括:
第一显示模块,用于响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息,所述第一调试信息表征所述被调试处理器中的被调试程序的运行信息。
第二显示模块,用于响应于所述被调试处理器为目标处理器,显示第二调试信息,所述第二调试信息表征调用所述目标处理器的主处理器中的所述被调试程序的运行信息,所述被调试程序在所述主处理器和所述目标处理器中运行。
在一些实施例中,所述装置还包括:
存储模块,用于响应于接收到所述目标处理器的驱动信息,存储所述主处理器中所述被调试程序的调试信息,所述驱动信息用于表征所述被调试程序在所述目标处理器中开始运行。
调试模块,用于切换调试接口以调试所述目标处理器。
在一些实施例中,所述第一调试信息和所述第二调试信息至少包括函数调用栈信息,所述函数调用栈信息至少包括栈结构、栈寄存器值、帧寄存器值和栈所在内存信息。
在一些实施例中,第一显示模块,具体用于:
通过所述被调试处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述被调试处理器对应的栈结构恢复所述被调试处理器的函数调用栈。
在一些实施例中,第二显示模块,具体用于:
确定所述目标处理器对应的已恢复的函数调用栈末位帧的帧序号。
基于所述帧序号,通过所述主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述主处理器的栈结构恢复所述主处理器的函数调用栈。
在一些实施例中,所述装置还包括:
第三显示模块,用于响应于所述被调试处理器为目标处理器,在应用程序调试界面依次显示已恢复的所述目标处理器的调试信息和已恢复的主处理器的调试信息。
在一些实施例中,所述装置还包括:
第四显示模块,用于响应于所述被调试处理器为主处理器,在应用程序调试界面显示已恢复的所述主处理器的调试信息。
第四方面,本申请实施例提供了一种调试设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。
在本申请实施例中,当被测处理器为目标处理器时,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器的调试信息恢复。这样,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的调试信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的调试信息,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。
附图说明
通过以下参照附图对本申请实施例的描述,本申请实施例的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1为本申请实施例设备调试系统的示意图;
图2为本申请实施例设备调试过程的流程示意图;
图3为本申请实施例的另一种设备调试过程的流程示意图;
图4为本申请实施例设备调试方法的流程图;
图5为本申请实施例恢复调试信息过程的流程示意图;
图6为本申请实施例调试信息的示意图;
图7为本申请实施例设备调试装置的结构示意图;
图8为本申请实施例调试设备的结构示意图。
具体实施方式
以下基于实施例对本申请进行描述,但是本申请并不仅仅限于这些实施例。在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。为了避免混淆本申请的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,相关技术在调试处理器时,测试人员会通过调试设备中的调试器控制被调试处理器在指定的断点处暂停,以检查被调试处理器出现的问题以及该问题出现的具体位置。
在一种情况下,测试人员可以通过调试设备中的调试器对调试设备(例如CPU端)和目标设备(例如嵌入式神经网络处理器NPU端)中的应用程序进行调试,其中,该应用程序即为调试程序。调试设备和目标设备中的应用程序可以是异构程序,异构程序是指在一份程序中,同时包含了宿主机端(即调试设备端)和目标设备端的运行代码。该异构程序经过预定的流程和触发条件,在宿主机端和目标设备端间同时运行并交互数据。通过发挥两种硬件不同的特性优势,提高程序整体的运行效率。
也就是说,在此情况下,若调试设备对被调试处理器进行调试,则被调试处理器既可能是主处理器,也可能是目标处理器。因此,在调试过程中调试设备可以通过切换硬件架构的方式对主处理器和目标处理器分别进行调试。
然而,相关技术在切换硬件架构后,调试设备中的调试程序只能显示当前硬件架构所的调试信息,而无法显示另一硬件架构的调试信息。因此,在目标处理器(即调试设备所调用的目标设备的处理器)出现调用相关的问题时,测试人员需要在调试设备的各个调用位置设置断点,并依次查看每个调用位置的上下文信息,以确定问题出现的具体位置,这样,会使得问题定位的效率较低。
为了解决上述问题,本申请实施例提供一种设备调试方法,该方法可以应用于设备调试系统,具体的,如图1所示,图1为本申请实施例设备调试系统的示意图。在本实施例中,设备调试系统包括目标设备11和调试设备12。其中,目标设备11中包括目标处理器111,调试设备12中包括主处理器121,同时,调试设备12中还设置有用于调试的调试程序122(例如调试器或其它适用的程序),在本申请实施例中,目标设备11和调试设备12可以是终端或者服务器,终端可以是智能手机、平板电脑或者个人计算机(Personal Computer,PC)等,服务器可以是单个服务器,也可以是以分布式方式配置的服务器集群,还可以是云服务器。
在本申请实施例中,目标处理器111可以是嵌入式神经网络处理器(Neural-network Processing Unit,NPU)。主处理器121可以是中央处理器(Central ProcessingUnit,CPU)。在其它情况下,目标处理器111和主处理器121也可以是其它类型的处理器,例如图形处理器(Graphics Processing Unit,GPU)等。
其中,NPU是一种基于神经网络的处理器,其采用数据驱动并行计算的架构。NPU具有更强大的算力和更低的功耗,使各种高数据量、高实时性的人工智能场景得以应用,在实际应用中,为了最大限度地发挥NPU的性能优势,NPU可以采用多核架构,以实现充分发挥并行和协同优势。
在本申请实施例中,目标设备11和调试设备12可以通过高速串行计算机扩展总线标准(peripheral component interconnect express,PCIe)或其它适用的方式相互连接,其中,PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,具有数据传输速率高的优点。
在调试过程中,调试设备12中的调试程序122可以通过调试接口(debug API)针对目标处理器111和主处理器121进行调试,其中,调试过程包括发送中断指令、修改应用程序运行内存、查询核运行状态等操作,以及,通过调试接口对目标处理器111进行调试时,即产生驱动信息。
在一种可选的实施方式中,目标处理器111和主处理器121响应于预设的中断点或接收到中断指令进入暂停状态。
也就是说,当目标处理器111和主处理器121命中断点时,目标处理器111和主处理器121会暂停运行并进入暂停状态。调试程序122可以通过查询各处理器的运行状态,在获知某一处理器处于暂停状态时,调试程序122会通过调试接口对处于暂停状态的处理器进行调试。
如图2所示,图2为本申请实施例设备调试过程的流程示意图。该示意图包括:用于表征调试进度的折线20、切换硬件架构调试接口的节点21、切换硬件架构调试接口的节点22、中断位置A、中断位置B和中断位置C。
假设执行某一任务时需要采用异构系统,也即需要主处理器和目标处理器协同处理,则其对应的调试也需调试主处理器和目标处理器,以目标处理器为被主处理器调用为例。在调试设备对主处理器和目标处理器调试的过程中,调试设备基于调试程序对主处理器进行调试,当调试进度运行至节点21处时,接收到目标处理器的中断信息,也即接收到目标处理器的核函数开始运行的消息,此时调试设备控制保存当前程序的调试信息(也即主处理器测试程序的调试信息),并控制切换硬件架构调试接口,以适配目标处理器端的调试,根据调试程序对目标处理器进行调试。当调试进度运行至节点22处时,目标处理器调试结束,继续对主处理中的主程序进行调试,调试设备再次控制切换硬件架构调试接口,以适配主处理端的调试,根据调试程序对主处理器进行调试。应理解,后续的调试过程与前述类似,在此不再赘述。由此,在目标处理器处于暂停状态时,调试设备接收到测试人员发送的查询请求,查询函数调用栈信息,可以在还原(即恢复)目标处理器的调试信息之后,显示调用目标处理器的主处理器的调试信息,以便于定位主处理器的调用位置,提高问题定位效率。
在本实施例的调试过程中,调试设备可以通过向主处理器或目标处理器发送中断指令,或者根据需求在程序中预先设置中断点,控制主处理器或目标处理器进入暂停状态。如图2所示,调试设备可以在程序执行到位置A(或位置B)处向目标处理器发送中断指令,控制目标处理器在位置A处进入暂停状态,或者预先在位置A处设置中断点,以控制目标处理器在执行到位置A处时命中中断点,进入暂停状态。同理,调试设备可以在程序执行到位置C处向主处理器发送中断指令,控制主处理器在位置C处进入暂停状态,或者预先在位置C处设置中断点,以控制主处理器在执行到位置A处时命中中断点,进入暂停状态。在目标处理器或主处理器进行暂停状态后,调试设备可以进行问题定位等操作,例如基于测试人员的查询请求显示处理器测试程序的调试信息等。
图3为本申请实施例的另一种设备调试过程的流程示意图。在本实施例中,调试设备中包括主处理器,目标设备中包括目标处理器,如图3所示,调试设备对主处理器和目标处理器进行调试的过程可以包括以下步骤:
在步骤S31,当主处理器命中中断点或接收中断指令时,进入暂停状态。
在步骤S32,调试设备调用调试接口调试主处理器。
当调试设备中的主处理器命中预设的中断点或接收到中断指令时,主处理器会进入暂停状态并等待外部的指令。当调试设备查询到主处理器处于暂停状态,调试设备可以基于调试程序调用调试接口调试主处理器。
在调试设备通过调试程序对主处理器的调试结束后,调试设备可以通过调试程序向主处理器发送指令以使得主处理器结束暂停状态并恢复运行,或者,在调试设备通过调试程序对主处理器的调试结束后,主处理器可以响应于调试结束,退出暂停状态并恢复运行。
在步骤S33,目标处理器命中中断点或接收中断指令进入暂停状态,其进入可被调试状态。
在调试设备调试主处理器的调试过程中,调试设备接收到目标处理器的中断信息,也即目标处理器的核函数开始运行的消息,调试设备控制保存当前程序的调试信息(也即主处理器测试程序的调试信息),并控制切换硬件架构调试接口,以适配目标处理器端的调试,根据调试程序对目标处理器进行调试。
在步骤S34,调试设备调用调试接口调试目标处理器。
当目标设备中的目标处理器命中预设的中断点或接收到中断指令时,目标处理器会进入暂停状态并等待外部的指令。当调试设备查询到目标处理器处于暂停状态,调试设备可以基于调试程序调用调试接口调试目标处理器。
在调试设备通过调试程序对目标处理器的调试结束后,调试设备可以通过调试程序向目标处理器发送指令以使得目标处理器结束暂停状态并恢复运行,或者,在调试设备通过调试程序对目标处理器的调试结束后,目标处理器可以响应于调试结束,退出暂停状态并恢复运行。
在上述过程中,为了保证目标处理器在出现调用问题时,调试设备可以自动确定调用时的上下文信息,调试设备可以被配置为执行本实施例的设备调试方法,以提高问题定位的效率。
具体的,如图4所示,该设备调试方法可以包括如下步骤:
在步骤S41,响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息。其中,调试信息用于表征当前运行的被调试程序所产生的数据,该数据可以通过帧的方式表示,例如函数调用栈中的帧,第一调试信息表征被调试处理器中的被调试程序的运行信息。
在步骤S42,响应于被调试处理器为目标处理器,显示第二调试信息。其中,第二调试信息表征调用目标处理器的主处理器中的被调试程序的运行信息,被调试程序在主处理器和目标处理器中运行。
其中,被调试处理器可以是目标设备中的目标处理器,也可以是调试设备中的主处理器。
在一种可选的实施方式中,第一调试信息和第二调试信息至少包括函数调用栈信息,函数调用栈信息至少包括栈结构、栈寄存器值、帧寄存器值和栈所在内存信息。
需要说明的,本申请实施例的设备调试方法是应用于正在被调试的被调试处理器,在调试设备调试被调试处理器时,调试设备可以通过向被调试处理器发送中断指令或者预设中断点的方式,使得被调试处理器在调试过程中暂停,在被调试处理器处于暂停状态时,调试设备可以接收查询请求来恢复对应的调试信息。
通过本申请实施例,当被调试处理器为目标处理器时,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器对应的调试信息恢复。由此,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的调试信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的调试信息,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。
在一种可选的实施方式中,若被调试处理器是目标设备中的目标处理器,则响应于接收到目标处理器的驱动信息,存储主处理器中被调试程序的调试信息,并切换调试接口以调试目标处理器。
其中,驱动信息用于表征被调试程序在目标处理器中开始运行。也就是说,当目标处理器被主处理器调用时,被调试程序会在目标处理器中开始运行,即当调试设备接收到目标处理器的驱动信息时,表征目标处理器被主处理器调用。
在本申请实施例中,如果当前被调试的处理器为目标处理器,则仅依靠目标处理器的调试信息是无法获知目标处理器被调用的信息。因此,当被调试处理器为目标处理器时,本申请实施例可以恢复调用目标处理器的主处理器的调试信息。也就是说,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器对应的调试信息恢复。
在一种可选的实施方式中,步骤S41可以执行为:通过被调试处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照被调试处理器对应的栈结构恢复被调试处理器的函数调用栈。
其中,被调试处理器的函数调用栈格式可以是序号和函数栈的组合形式,例如,被调试处理器的函数调用栈的格式可以如下所示:
#num XXXXXXX
其中,#num用于表征函数调用栈的序号(例如#1、#2、#3等),XXXXXXX用于表征函数调用栈的函数栈(例如0x00007ffff6ed8218 in_IO_file_under)。
通过被调试处理器的函数调用栈,测试人员可以获知调用被调试处理器的具体位置。
图5为本申请实施例恢复调试信息过程的流程示意图。如图5所示,本实施例的恢复调试信息的过程包括以下步骤:
在步骤S51,当目标处理器命中中断点或接收中断指令时,进入暂停状态。
在步骤S52,调试设备在接收到查询请求后调用调试接口恢复目标处理器的调试信息。
在步骤S53,调试设备通过调试接口恢复主处理器的调试信息。
在调试设备查询到目标处理器进入暂停状态后,若接收到查询请求,调试设备可以调用调试接口恢复目标处理器的调试信息,并通过调试接口恢复存储的主处理器的调试信息,其中,目标处理器的调试信息包括目标处理器的函数调用栈信息,主处理器的调试信息包括主处理器的函数调用栈信息。
调试设备在恢复目标处理器的调试信息和主处理器的调试信息后,可以针对恢复的调试信息进行打印、导出、显示等操作,以供测试人员查看(打印、导出、显示等过程图5中未示出)。
通过本申请实施例,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的调试信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的调试信息,以定位出错的调用位置,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。
在一种可选的实施方式中,步骤S42可以执行为:确定目标处理器对应的已恢复的函数调用栈末位帧的帧序号,基于该末位帧的帧序号,通过主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照主处理器的栈结构恢复主处理器的函数调用栈。
也就是说,本申请实施例在恢复目标处理器对应的函数调用栈之后,可以根据目标处理器的函数调用栈末位帧的帧序号,恢复主处理器对应的函数调用栈,由此,可以使得目标处理器的函数调用栈对应的帧序号和主处理器的函数调用栈对应的帧序号是整体连续的序号,以便于定位函数之间的调用关系。应理解,本实施例并不对函数调用栈恢复过程中的帧序号排列进行限制。
进一步的,本申请实施例可以对恢复的调试信息进行打印、导出、显示等操作。可选的,本实施例的设备调试方法还包括:在一种可选的实施方式中,响应于被调试处理器为目标处理器,调试设备还可以在应用程序调试界面依次显示已恢复的目标处理器的调试信息和已恢复的主处理器的调试信息。
其中,基于上述实施方式可知,本申请实施例可以基于目标处理器的函数调用栈对应的帧序号和主处理器的函数调用栈对应的帧序号对调试信息进行排序,以在应用程序调试界面显示各调试信息。
例如,如图6所示,图6为本申请实施例调试信息的示意图,其中,#1-#6为各函数调用栈对应的帧序号,每个帧序号后为函数调用栈对应的函数栈。
在本申请实施例中,调试设备会先恢复被调试处理器的调试信息,若被调试处理器是目标处理器,则调试设备会进一步恢复主处理器的调试信息。因此,在应用程序调试界面中,主处理器调试信息对应的帧序号是承接在目标处理器的调试信息之后的,以图6为例,#1-#4对应的调试信息可以为目标处理器的调试信息,#5之后的调试信息可以为主处理器的调试信息。
在一种可选的实施方式中,若被调试处理器是调试设备中的主处理器,则响应于接收到主处理器的中断信息,调试设备可以通过调试接口调试主处理器。
调试设备在通过调试接口调试主处理器的过程中,若主处理器处于暂停状态,调试设备在接收到查询请求后可以恢复主处理器的函数调用栈。具体的,该过程具体可以执行为:通过主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照主处理器对应的栈结构恢复被调试处理器的函数调用栈。
进一步的,本申请实施例还可以在应用程序调试界面显示已恢复的主处理器的调试信息。以图6为例,图6中的#1-#6所对应的函数调用栈可以均为主处理器对应的函数调用栈。
在本实施例中,当被调试处理器为目标处理器时,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器的调试信息恢复。由此,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的调试信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的调试信息,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。
图7为本申请实施例设备调试装置的结构示意图。如图7所示,本实施例的设备调试装置包括:第一恢复模块71和第二恢复模块72。
第一显示模块71,用于响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息,所述第一调试信息表征所述被调试处理器中的被调试程序的运行信息。
第二显示模块72,用于响应于所述被调试处理器为目标处理器,显示第二调试信息,所述第二调试信息表征调用所述目标处理器的主处理器中的所述被调试程序的运行信息,所述被调试程序在所述主处理器和所述目标处理器中运行。
在一些实施例中,所述装置还包括:
存储模块,用于响应于接收到所述目标处理器的驱动信息,存储所述主处理器中所述被调试程序的调试信息,所述驱动信息用于表征所述被调试程序在所述目标处理器中开始运行。
调试模块,用于切换调试接口以调试所述目标处理器。
在一些实施例中,所述第一调试信息和所述第二调试信息至少包括函数调用栈信息,所述函数调用栈信息至少包括栈结构、栈寄存器值、帧寄存器值和栈所在内存信息。
在一些实施例中,第一显示模块71,具体用于:
通过所述被调试处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述被调试处理器对应的栈结构恢复所述被调试处理器的函数调用栈。
在一些实施例中,第二显示模块72,具体用于:
确定所述目标处理器对应的已恢复的函数调用栈末位帧的帧序号。
基于所述帧序号,通过所述主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述主处理器的栈结构恢复所述主处理器的函数调用栈。
在一些实施例中,所述装置还包括:
第三显示模块,用于响应于所述被调试处理器为目标处理器,在应用程序调试界面依次显示已恢复的所述目标处理器的调试信息和已恢复的主处理器的调试信息。
在一些实施例中,所述装置还包括:
第四显示模块,用于响应于所述被调试处理器为主处理器,在应用程序调试界面显示已恢复的所述主处理器的调试信息。
在本申请实施例中,当被调试处理器为目标处理器时,调试设备除了将目标处理器本身的调试信息恢复外,还会将调用目标处理器的主处理器的调试信息恢复。这样,测试人员在查询目标处理器的调试信息时,调试设备可以恢复调用目标处理器的主处理器的调试信息,进而,当出现调用错误时,测试人员可以直接查看调用目标处理器的主处理器的调试信息,无需在调试设备的各调用位置设置断点,提高了问题定位的效率。
图8是本申请实施例的调试设备的示意图。如图8所示,图8所示的调试设备为通用地址查询装置,其包括通用的计算机硬件结构,其至少包括处理器81和存储器82。处理器81和存储器82通过总线83连接。存储器82适于存储处理器81可执行的指令或程序。处理器81可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器81通过执行存储器82所存储的指令,从而执行如上所述的本申请实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线83将上述多个组件连接在一起,同时将上述组件连接到显示控制器84和显示装置以及输入/输出(I/O)装置85。输入/输出(I/O)装置85可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置85通过输入/输出(I/O)控制器86与系统相连。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
本申请的另一实施例涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指定相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域技术人员而言,本申请可以有各种改动和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种设备调试方法,其特征在于,所述方法包括:
响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息,所述第一调试信息表征所述被调试处理器中的被调试程序的运行信息;
响应于所述被调试处理器为目标处理器,显示第二调试信息,所述第二调试信息表征调用所述目标处理器的主处理器中的所述被调试程序的运行信息,所述被调试程序在所述主处理器和所述目标处理器中运行。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到所述目标处理器的驱动信息,存储所述主处理器中所述被调试程序的调试信息,所述驱动信息用于表征所述被调试程序在所述目标处理器中开始运行;
切换调试接口以调试所述目标处理器。
3.根据权利要求1所述的方法,其特征在于,所述第一调试信息和所述第二调试信息至少包括函数调用栈信息,所述函数调用栈信息至少包括栈结构、栈寄存器值、帧寄存器值和栈所在内存信息。
4.根据权利要求3所述的方法,其特征在于,根据接收到的查询请求显示第一调试信息包括:
通过所述被调试处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述被调试处理器对应的栈结构还原并显示所述被调试处理器的函数调用栈。
5.根据权利要求3所述的方法,其特征在于,显示第二调试信息包括:
确定所述目标处理器对应的已还原的函数调用栈的末位帧的帧序号;
基于所述帧序号,通过所述主处理器对应的栈寄存器值、帧寄存器值和栈所在内存信息,按照所述主处理器的栈结构还原并显示所述主处理器的函数调用栈。
6.一种设备调试系统,其特征在于,所述系统包括:
目标设备,包括目标处理器;
调试设备,包括主处理器,被配置执行权利要求1-5中任一项所述的设备调试方法。
7.根据权利要求6所述的系统,其特征在于,所述目标处理器和所述主处理器响应于预设的中断点或接收到中断指令进入暂停状态。
8.一种设备调试装置,其特征在于,所述装置包括:
第一显示模块,用于响应于被调试处理器进入暂停状态,根据接收到的查询请求显示第一调试信息,所述第一调试信息表征所述被调试处理器中的被调试程序的运行信息;
第二显示模块,用于响应于所述被调试处理器为目标处理器,显示第二调试信息,所述第二调试信息表征调用所述目标处理器的主处理器中的所述被调试程序的运行信息,所述被调试程序在所述主处理器和所述目标处理器中运行。
9.一种调试设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的方法。
CN202111678339.3A 2021-12-31 2021-12-31 设备调试方法、系统、装置、调试设备和可读存储介质 Pending CN116414634A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111678339.3A CN116414634A (zh) 2021-12-31 2021-12-31 设备调试方法、系统、装置、调试设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111678339.3A CN116414634A (zh) 2021-12-31 2021-12-31 设备调试方法、系统、装置、调试设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN116414634A true CN116414634A (zh) 2023-07-11

Family

ID=87058524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111678339.3A Pending CN116414634A (zh) 2021-12-31 2021-12-31 设备调试方法、系统、装置、调试设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN116414634A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117370214A (zh) * 2023-12-01 2024-01-09 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质
CN118093446A (zh) * 2024-04-28 2024-05-28 上海燧原智能科技有限公司 一种异构程序调试方法、系统、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117370214A (zh) * 2023-12-01 2024-01-09 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质
CN117370214B (zh) * 2023-12-01 2024-04-19 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质
CN118093446A (zh) * 2024-04-28 2024-05-28 上海燧原智能科技有限公司 一种异构程序调试方法、系统、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109800159B (zh) 程序调试方法、程序调试装置、终端设备及存储介质
US10191835B2 (en) Multi-threaded debugger support
US8370816B2 (en) Device, method and computer program product for evaluating a debugger script
US9852038B2 (en) Debugging system and debugging method of multi-core processor
CN116414634A (zh) 设备调试方法、系统、装置、调试设备和可读存储介质
CN109726135B (zh) 一种多核调试方法、装置及计算机可读存储介质
US8752024B2 (en) Resuming a prior debug session
CN107111595B (zh) 用于检测早期引导错误的方法、设备及系统
CN111124792A (zh) 一种多核调试方法、装置及存储介质
CN113821257B (zh) 处理器内核调用栈信息查询方法及装置
US10229033B2 (en) System, method and apparatus for debugging of reactive applications
US7526756B2 (en) Address watch breakpoints with basing pointers
CN101968759A (zh) 具有断点功能的处理器芯片仿真器
CN112068980B (zh) 采样cpu挂死前信息的方法和装置、设备和存储介质
US10041998B2 (en) Method of debugging PLC by using general-purpose microprocessor
CN117408060B (zh) 整车模型仿真性能优化方法、存储介质和电子设备
CN117408061B (zh) 整车模型仿真性能优化系统及计算机装置
CN114327648B (zh) 一种驱动调试方法、装置、电子设备及存储介质
CN116361084A (zh) 多核处理器调试方法、装置、调试设备和可读存储介质
CN215814076U (zh) 一种用于实现国产arm处理器死机后自动重启的系统
CN112416695B (zh) 一种全局变量监控方法、装置、设备及存储介质
CN118093446A (zh) 一种异构程序调试方法、系统、装置、电子设备及存储介质
CN116701290A (zh) 数据处理装置、方法、电子设备和存储介质
CN117806859A (zh) 线程堆栈信息获取方法、装置、电子设备及存储介质
CN118301080A (zh) 数据传输方法、装置和数据传输系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination