CN102301344A - 一种操作系统内核调试方法和虚拟调试服务模块 - Google Patents
一种操作系统内核调试方法和虚拟调试服务模块 Download PDFInfo
- Publication number
- CN102301344A CN102301344A CN2011800016502A CN201180001650A CN102301344A CN 102301344 A CN102301344 A CN 102301344A CN 2011800016502 A CN2011800016502 A CN 2011800016502A CN 201180001650 A CN201180001650 A CN 201180001650A CN 102301344 A CN102301344 A CN 102301344A
- Authority
- CN
- China
- Prior art keywords
- operating system
- breakpoint
- debugging
- debugged
- virtual
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种操作系统内核的调试方法和虚拟调试服务模块,该方法包括:虚拟调试服务模块接收主控操作系统中的调试模块发送的插入至少一个断点的断点插入请求,断点插入请求中包括插入断点的位置信息;虚拟调试服务模块根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中;虚拟调试服务模块捕获被调试操作系统执行过程中触发的断点异常,并将捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行比较,如果匹配,则暂停被调试操作系统的运行。
Description
技术领域
本发明涉及操作系统领域,尤其涉及一种基于虚拟化的操作系统内核调试方法和虚拟调试服务模块。
背景技术
一直以来,内核调试都是操作系统内核开发的一个技术瓶颈。现有的Linux系统内核调试手段包括KDB、kprobe、pintk、KGDB等,这些内核调试手段中大多需要给Linux系统内核植入特定的补丁(Patch)才能进行调试,而且而且这种调试方式相当于在操作系统调试自身,因此只能支持很简单的调试功能,例如查看内核数据结构、打印现场信息等,无法实现单步调试和设置端点等高级调试功能。虽然GDB调试手段可以提供一些高级的调试的功能,但是必须由两台主机才能完成调试。
发明内容
本发明实施例提供一种操作系统内核调试方法和虚拟调试服务模块,以解决调试手段单一、调试所需的主机数量多的问题。
本发明实施例一方面提供一种操作系统内核的调试方法,虚拟机上运行主控操作系统和被调试操作系统,该方法包括:
虚拟调试服务模块接收主控操作系统中的调试模块发送的插入至少一个断点的断点插入请求,所述断点插入请求中包括插入断点的位置信息;
虚拟调试服务模块根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中;
虚拟调试服务模块捕获被调试操作系统执行过程中触发的断点异常,并将捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行比较,如果匹配,则暂停被调试操作系统的运行。
本发明另一方面还提供一种虚拟调试服务模块,其构建在虚拟机中,所述虚拟机上运行主控操作系统和被调试操作系统,该虚拟调试服务模块包括:
断点插入请求接收单元,用于接收主控操作系统中的调试模块发送的插入至少一个断点的断点插入请求,所述断点插入请求中包括插入断点的位置信息;
断点插入单元,用于根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中;
断点异常捕获单元,用于捕获被调试操作系统执行过程中触发的断点异常;
特征比较单元,用于将所述捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行比较,如果匹配成功,则触发暂停单元进行工作;
暂停单元,用于触发被调试操作系统暂停运行。
本发明实施例中在虚拟机中实现一个虚拟调试模块,借助该虚拟调试模块可以实现对被调试操作系统的断点调试,可选地还可以实现单步执行调试,调试的手段更多。而且本发明实施例在进行调试的过程中只需要一台主机即可完成。
附图说明
图1是本发明实施例提供的操作系统内核的调试方法的流程示意图;
图2是本发明实施例一中的操作系统内核的调试方法所基于的系统层次架构图;
图3是本发明实施例一提供的操作系统内核的调试方法的流程示意图;
图4是本发明实施例二提供的操作系统内核的调试方法的流程示意图;
图5是本发明实施例提供的虚拟调试服务模块的结构示意图。
具体实施方式
本发明实施例在运行在硬件实体和操作系统之间的虚拟机中实现了一个虚拟调试服务(vir_gdbServer)模块,虚拟机通过虚拟化可以实现硬件共享,在一套硬件上同时运行多个操作系统,在本发明实施例中主控操作系统和被调试操作系统,主控操作系统与客户进行交互,是负责调试的操作系统。虚拟调试服务模块可以与主控操作系统中的调试模块(例如gdb)进行通信,用于实现调试模块的控制命令,主控操作系统中的调试模块利用通用调试协议(例如:gdb串行协议、或加密协议提供安全性)通过虚拟调试服务模块进行交互。
基于上述架构,本发明的一个实施例提供一种操作系统内核的调试方法,如图1所示,该方法包括:
步骤S101:虚拟调试服务模块接收主控操作系统中的调试模块发送的断点插入请求,该断点插入请求中包括请求插入断点的位置信息。
当用户想要在被调试操作系统中插入断点时,可以通过主控操作系统向调试模块发送断点插入请求,该断点插入请求中包含了用户想要插入的各个断点的位置信息。
步骤S102:虚拟调试服务模块根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中。
而后可以运行被调试操作系统,当被调试操作系统在运行过程中会触发断点异常,该断点异常可能是因为执行到步骤S102中插入的用于调试的断点产生的,也可能是执行到操作系统本身定义的其他中断产生的。
步骤S103:虚拟调试服务模块捕获被调试操作系统执行过程中触发的断点异常。
步骤S104:虚拟调试服务模块将捕获到的断点异常的特征与调试断点信息表中记录的断点位置进行比较,如果匹配则暂停被调试操作系统的运行。
之所以要将捕获到的断点异常与调试断点信息表中的断点位置进行比较,是因为正如前文所述,捕获到的断点异常可能是因为执行到步骤S102中插入的用于调试的断点产生的,也可能是执行到操作系统本身定义的其他中断产生的,而本发明实施例只需要对因执行到用于调试的断点而发生的异常进行后续处理,对于其他原因产生的断点异常不做处理;所以,在捕获到断点异常后,还需将其特征与调试断点信息表中的断点位置进行比较,如果匹配,说明该断点异常是被调试操作系统执行到之前插入的断点后产生的。
上述断点异常的特征包括发生异常的地址。此外,为了增强比较的严谨性,断点异常的特征中还可以包括异常向量。对于断点异常是因为执行到步骤S102中插入的用于调试的断点产生的情况,该异常向量应该是相同的一个特定值,所以本发明中还可以同时验证该异常向量是否等于执行到用户调试的断点时被调试操作系统应该产生的中断向量。
此外,还可以包括步骤S105:在暂停被调试操作系统的运行以后,虚拟调试服务模块接收主控操作系统中的调试模块发送的查阅被调试操作系统的状态信息的查阅请求;
步骤S106:虚拟调试服务模块根据步骤S105中的查阅请求,将被调试操作系统中的状态信息反馈至主控操作系统中的调试模块。
上述状态信息可以包括被调试操作系统的寄存器中的信息、堆栈中的信息和全局变量其中的一个或者任意组合。
由此可见,上述方法在虚拟机中实现了一个虚拟调试服务模块,可以轻松实现被调试操作系统的断点调试。
以下以两个具体的实施例详细说明上述方法的具体实现。
实施例一
图2示出了本实施例所基于的层次架构图。如图2所示,GOS1为主控操作系统,GOS2为被调试操作系统。GOS1和GOS2共同运行在同一个虚拟机上。在虚拟机中构建了一个虚拟调试服务模块(vir_gdbserver)。在GOS1中具有调试模块(gdb),gdb与vir_gdbserver进行通信,在实际中,为了使得上层的调试功能不依赖于底层的虚拟机的实现方式,在虚拟机中还构建一个虚拟设备(Virtual device),主控操作系统GOS1中的调试模块gdb通过该虚拟设备与虚拟机中的虚拟调试服务模块vir_gdbserver进行通信。
如图3所示,本实施例中提供的操作系统内核的调试方法包括如下步骤:
步骤S301:GOS1中的gdb通过虚拟设备虚拟机中的虚拟调试服务模块vir_gdbserver模块发送断点插入请求,请求向被调试操作系统GOS2中插入用于调试的断点。
步骤S302:vir_gdbserver模块接收到该断点插入请求后,根据其中包含的插入断点的位置信息,向GOS2中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中。
插入断点的具体实现方式可以是向要插入断点的位置处写入断点指令INT 3,即0xCC。
在实际中,该调试断点信息表可以以链表的形式进行存储。
步骤S303:运行GOS2,运行过程中,GOS2会触发断点异常。
步骤S304:vir_gdbserver模块捕获GOS2运行过程中触发的断点异常,并将该断点异常的特征与调试断点信息表中的断点位置进行比较,如果匹配成功,说明该断点异常是GOS2执行到之前插入的用于调试的断点后触发的,则暂停GOS2的运行。如果不能匹配,则不做任何处理,由vir_gdbserver模块继续捕获后续的断点异常。
在暂停GOS2的运行以后,vir_gdbserver模块可以根据GOS1发送的查阅请求,将GOS2中的状态信息反馈至GOS1中的gdb,这里的状态信息可以是GOS2中的各个寄存器内的信息、堆栈信息和全局变量中的任意一个或者任意组合。
需要说明的是,应用本实施例中的方法也可以实现单步执行调试的目的,只需要通过GOS1向vir_gdbserver模块发送请求在GOS2执行的每一步后都插入断点的请求即可,这时,在GOS2运行过程中,每执行完一步就触发一次断点异常,然后暂停GOS2的运行,供用户进行单步执行的断点调试。
此外,在一个优选的实施例中,虚拟调试服务模块(vir_gdbserver模块)还接收主控操作系统请求构造调试环境的请求,虚拟调试服务模块根据该请求,构造被调试操作系统的运行环境。利用该手段,用户可以模拟被调试操作系统在各种极端运行环境下的调试过程。例如,当用户知道出现故障的条件,但是不知道为什么该条件会出现,也就是说该条件的出现完全是随机的不可控的,此时可以将满足该条件的环境通过人为构造,达到故障输入的目的,为进一步克服该故障提供调试的基础。这里构造调试环境可以是在被调试操作系统运行之前进行,也可以是在被调试操作系统运行到断点时被暂停运行的时候进行。
另外,上述GOS1中的gdb与vir_gdbserver模块之间的通信过程优选采用密钥来完成,以增强系统的安全性。
由此可见,本实施例中在虚拟机中实现了一个虚拟调试服务模块,可以轻松实现被调试操作系统的断点调试,还可以通过断点调试的方式实现单步执行调试。
实施例二
本实施例仍然基于图2中的层次架构图。本实施例中提供的操作系统内核的调试方法用来完成单步执行调试的目的。图4示出了本实施例提供的操作系统内核的调试方法的示意图,如图4所示,该方法包括如下步骤:
步骤S401:当需要进行单步执行调试时,判断硬件是否支持单步执行。
如果步骤S401的判断结果为是时,则执行步骤S402,否则执行步骤S40X。
步骤S402:GOS1中的gdb向虚拟机中的vir_gdbserver模块发送控制命令,要求将被调试操作系统GOS2置于单步执行模式。
步骤S403:当GOS2运行时,vir_gdbserver模块将运行该GOS2的CPU(中央处理器)中的标志寄存器EFLAGS中的用于控制单步执行调试模式开关的标志位设置为表示“开启”的状态,以使GOS2在运行每一步后都产生单步异常。
这里的用于控制单步执行调试模式开关的标志位可以为标志寄存器EFLAGS中的TF标志位,TF标志位的值设为“1”时表示开启CPU的单步执行调试模式,TF标志位的值设为“0”时表示关闭CPU的单步执行调试模式。
步骤S404:GOS2在运行时,每执行完一条指令,就会产生一个单步异常。
步骤S405:vir_gdbserver模块捕获到GOS2运行过程中产生的单步异常,当确认GOS2运行的当前步(或者说当前运行的一条指令)执行完毕后,暂停GOS2的运行。
在步骤S405中暂停GOS2的运行以后,vir_gdbserver模块可以根据GOS1发送的查阅请求,将GOS2中的状态信息反馈至GOS1中的gdb,这里的状态信息可以是GOS2中的各个寄存器内的信息、堆栈信息和全局变量中的任意一个或者任意组合。
如果步骤S401的判断结果为否时,表明硬件不支持单步执行调试,则直接执行步骤S406。
步骤S406:GOS1中的调试模块gdb向vir_gdbserver模块发送在GOS2执行每一步均插入断点的断点插入请求,并执行后续步骤。
步骤S407:vir_gdbserver模块接收到该断点插入请求后,根据其中包含的插入断点的位置信息,向GOS2中的每一步后面均插入断点,并将插入断点的位置记录在调试断点信息表中。
插入断点的具体实现方式可以是向要插入断点的位置处写入断点指令INT 3,即0xCC。
在实际中,上述调试断点信息表可以以链表的形式进行存储。
步骤S408:运行GOS2,运行过程中,每执行完一步就触发一次断点异常。
步骤S409:vir_gdbserver模块捕获GOS2运行过程中触发的断点异常,并将该断点异常的特征与调试断点信息表中的断点位置进行比较,如果匹配,说明该断点异常是GOS2执行到之前插入的用于调试的断点后触发的,则暂停GOS2的运行。
在步骤S409中暂停GOS2的运行以后,vir_gdbserver模块可以根据GOS1发送的查阅请求,将GOS2中的状态信息反馈至GOS1中的gdb,这里的状态信息可以是GOS2中的各个寄存器内的信息、堆栈信息和全局变量中的任意一个或者任意组合。
此外,在一个优选的实施例中,虚拟调试服务模块(vir_gdbserver模块)还接收主控操作系统请求构造调试环境的请求,虚拟调试服务模块根据该请求,构造被调试操作系统的运行环境。利用该手段,用户可以模拟被调试操作系统在各种极端运行环境下的调试过程。例如,当用户知道出现故障的条件,但是不知道为什么该条件会出现,也就是说该条件的出现完全是随机的不可控的,此时可以将满足该条件的环境通过人为构造,达到故障输入的目的,为进一步克服该故障提供调试的基础。这里构造调试环境可以是在被调试操作系统运行之前进行,也可以是在被调试操作系统运行到断点时被暂停运行的时候进行。
另外,上述GOS1中的gdb与vir_gdbserver模块之间的通信过程优选采用密钥来完成,以增强系统的安全性。
由此可见,本实施例中在虚拟机中实现了一个虚拟调试服务模块,可以轻松实现被调试操作系统的断点调试以及单步执行调试。
本发明另一实施例还相应提供一种虚拟调试服务模块,该虚拟调试服务模块构建在虚拟机中,该虚拟机上运行主控操作系统和被调试操作系统,如图5所示,该虚拟调试服务模块50包括断点插入请求接收单元501、断点插入单元502、断点异常捕获单元503、特征比较单元504和暂停单元505。
其中,断点插入请求接收单元501用于接收主控操作系统中的调试模块发送的插入至少一个断点的断点插入请求,上述断点插入请求中包括插入断点的位置信息。断点插入单元502用于根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中。断点异常捕获单元503用于捕获被调试操作系统执行过程中触发的断点异常。特征比较单元504用于将上述捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行比较,如果匹配成功,则触发暂停单元505进行工作。暂停单元505用于触发被调试操作系统暂停运行。
为了进行单步执行调试,优选地,虚拟调试服务模块还可以包括:
单步执行支持判断单元506,用于在需要进行单步执行调试时,预先判断硬件是否支持单步执行;
逐步断点插入单元507,用于在单步执行支持判断单元506判断结果为否时,通知主控操作系统中的调试模块向虚拟调试服务模块发送在被调试操作系统执行的每一步均插入断点的断点插入请求。
此外,上述虚拟调试服务模块还可以包括:
标志位设置单元508,用于在单步执行支持判断单元判断结果为是时,在被调试操作系统运行时,将运行该被调试操作系统的中央处理器的标志寄存器中用于控制单步执行调试模式开关的标志位设置为表示“开启”的状态,以使被调试操作系统在运行每一步后都产生单步异常。
单步异常捕获单元509,用于捕获被调试操作系统在运行每一步后所产生的单步异常,当虚拟调试服务模块确认被调试操作系统运行的当前步执行完毕后,触发上述暂停单元505进行工作。
此外,为了方便用户在暂停运行被调试操作系统的运行状态信息,优选地还包括查阅单元506,用于用于在暂停被调试操作系统的运行以后,接收主控操作系统中的调试模块发送的查阅被调试操作系统的状态信息的查阅请求,并根据该查阅请求,将被调试操作系统的状态信息反馈至主控操作系统中的调试模块,这里被调试操作系统的状态信息可以包括被调试操作系统的寄存器中的信息、堆栈中的信息和全局变量中的任何一个或者任意组合。
以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。
Claims (10)
1.一种操作系统内核的调试方法,其特征在于,虚拟机上运行主控操作系统和被调试操作系统,该方法包括:
虚拟调试服务模块接收主控操作系统中的调试模块发送的断点插入请求,所述断点插入请求中包括插入断点的位置信息;
所述虚拟调试服务模块根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中;
所述虚拟调试服务模块捕获被调试操作系统执行过程中触发的断点异常,并将捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行匹配比较,如果匹配,则暂停被调试操作系统的运行。
2.根据权利要求1所述的操作系统内核的调试方法,其特征在于,还包括,当需要进行单步执行调试时,预先判断硬件是否支持单步执行,如果不支持,则主控操作系统中的调试模块向虚拟调试服务模块发送在被调试操作系统执行的每一步均插入断点的断点插入请求。
3.根据权利要求2所述的操作系统内核的调试方法,其特征在于,还包括,如果硬件支持单步执行,则:
在被调试操作系统运行时,所述虚拟调试服务模块将运行该被调试操作系统的中央处理器中的标志寄存器中用于控制单步执行调试模式开关的标志位设置为表示“开启”的状态,以使被调试操作系统在运行每一步后都产生单步异常;
所述虚拟调试服务模块捕获被调试操作系统在运行每一步后所产生的单步异常;
所述虚拟调试服务模块确认被调试操作系统运行的当前步执行完毕后,则暂停被调试操作系统的运行。
4.根据权利要求3所述的操作系统内核的调试方法,其特征在于,所述用于控制单步执行调试模式开关的标志位为TF标志位。
5.根据权利要求1至4中,限定比较匹配过程的特征信息,包括异常地址和异常向量。
6.根据权利要求1至4中任意一项所述的操作系统内核的调试方法,其特征在于,还包括:在暂停被调试操作系统的运行以后,虚拟调试服务模块接收主控操作系统中的调试模块发送的查阅被调试操作系统的状态信息的查阅请求,并根据查阅请求,将被调试操作系统的状态信息反馈至主控操作系统中的调试模块;
所述被调试操作系统的状态信息包括被调试操作系统的寄存器中的信息、堆栈中的信息和全局变量中的任意一个或者任意组合。
7.一种虚拟调试服务模块,其特征在于,其构建在虚拟机中,所述虚拟机上运行主控操作系统和被调试操作系统,该虚拟调试服务模块包括:
断点插入请求接收单元,用于接收主控操作系统中的调试模块发送的断点插入请求,所述断点插入请求中包括插入断点的位置信息;
断点插入单元,用于根据断点插入请求中的插入断点的位置信息,在被调试操作系统中的相应位置处插入断点,并将插入断点的位置记录在调试断点信息表中;
断点异常捕获单元,用于捕获被调试操作系统执行过程中触发的断点异常;
特征比较单元,用于将所述捕获到的断点异常的特征与调试断点信息表中记录的断点的位置进行比较,如果匹配成功,则触发暂停单元进行工作;
暂停单元,用于触发被调试操作系统暂停运行。
8.根据权利要求7所述的虚拟调试服务模块,其特征在于,还包括:单步执行支持判断单元,用于在需要进行单步执行调试时,预先判断硬件是否支持单步执行;
逐步断点插入单元,用于在单步执行支持判断单元判断结果为否时,通知主控操作系统中的调试模块向虚拟调试服务模块发送在被调试操作系统执行的每一步均插入断点的断点插入请求。
9.根据权利要求8所述的虚拟调试服务模块,其特征在于,还包括:
标志位设置单元,用于在单步执行支持判断单元判断结果为是时,在被调试操作系统运行时,将运行该被调试操作系统的中央处理器的标志寄存器中用于控制单步执行调试模式开关的标志位设置为表示“开启”的状态,以使被调试操作系统在运行每一步后都产生单步异常。
单步异常捕获单元,用于捕获被调试操作系统在运行每一步后所产生的单步异常,当虚拟调试服务模块确认被调试操作系统运行的当前步执行完毕后,触发所述暂停单元进行工作。
10.根据权利要求7至9中任意一项所述的虚拟调试服务模块,其特征在于,还包括:
查阅单元,用于在暂停被调试操作系统的运行以后,接收主控操作系统中的调试模块发送的查阅被调试操作系统的状态信息的查阅请求,并根据该查阅请求,将被调试操作系统的状态信息反馈至主控操作系统中的调试模块;
所述被调试操作系统的状态信息包括被调试操作系统的寄存器中的信息、堆栈中的信息和全局变量中的任意一个或者任意组合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/076910 WO2012106871A1 (zh) | 2011-07-06 | 2011-07-06 | 一种操作系统内核调试方法和虚拟调试服务模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102301344A true CN102301344A (zh) | 2011-12-28 |
CN102301344B CN102301344B (zh) | 2013-12-04 |
Family
ID=45360524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800016502A Expired - Fee Related CN102301344B (zh) | 2011-07-06 | 2011-07-06 | 一种操作系统内核调试方法和虚拟调试服务模块 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102301344B (zh) |
WO (1) | WO2012106871A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077220A (zh) * | 2014-06-10 | 2014-10-01 | 中标软件有限公司 | Mips架构操作系统内核的调试方法和装置 |
CN105159819A (zh) * | 2015-09-01 | 2015-12-16 | 汉柏科技有限公司 | 一种记录内核异常栈及调试信息的方法及系统 |
CN106126431A (zh) * | 2016-08-23 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 性能测试方法及系统 |
CN107341107A (zh) * | 2017-07-04 | 2017-11-10 | 飞天诚信科技股份有限公司 | 一种嵌入式开发的自动化测试方法及测试主机 |
CN109977633A (zh) * | 2019-03-28 | 2019-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种程序保护方法及相关装置 |
CN110096888A (zh) * | 2019-04-18 | 2019-08-06 | 苏州浪潮智能科技有限公司 | 一种加快验证及分析smm安全隐患的方法及系统 |
WO2020134634A1 (zh) * | 2018-12-27 | 2020-07-02 | 百富计算机技术(深圳)有限公司 | 程序调试方法、程序调试装置、终端设备及存储介质 |
CN115794313A (zh) * | 2022-12-26 | 2023-03-14 | 科东(广州)软件科技有限公司 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
CN116089316A (zh) * | 2023-04-07 | 2023-05-09 | 武汉凌久微电子有限公司 | 一种基于动态断点的内核驱动数据调试方法 |
CN116662157A (zh) * | 2023-04-26 | 2023-08-29 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7447942B2 (en) * | 2005-07-19 | 2008-11-04 | Microsoft Corporation | Fast data breakpoint emulation |
KR20070109432A (ko) * | 2006-05-11 | 2007-11-15 | 삼성전자주식회사 | 커널 인지 디버깅 장치 및 방법 |
CN101281488A (zh) * | 2007-04-06 | 2008-10-08 | 上海宇梦通信科技有限公司 | Linux操作系统的内核调试方法 |
CN101609429B (zh) * | 2009-07-22 | 2011-09-07 | 大唐微电子技术有限公司 | 一种调试嵌入式操作系统的方法和装置 |
-
2011
- 2011-07-06 WO PCT/CN2011/076910 patent/WO2012106871A1/zh active Application Filing
- 2011-07-06 CN CN2011800016502A patent/CN102301344B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
Non-Patent Citations (2)
Title |
---|
秦俊平: "WIN32动态调试器的研究与实现", 《内蒙古工业大学硕士学位论文》, 27 December 2007 (2007-12-27), pages 1 - 40 * |
陈沁源: "基于代码重构和页面故障技术的隐蔽调试机制研究与实现", 《电子科技大学硕士学位论文》, 3 November 2010 (2010-11-03), pages 1 - 40 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077220A (zh) * | 2014-06-10 | 2014-10-01 | 中标软件有限公司 | Mips架构操作系统内核的调试方法和装置 |
CN105159819A (zh) * | 2015-09-01 | 2015-12-16 | 汉柏科技有限公司 | 一种记录内核异常栈及调试信息的方法及系统 |
CN105159819B (zh) * | 2015-09-01 | 2018-03-13 | 汉柏科技有限公司 | 一种记录内核异常栈及调试信息的方法及系统 |
CN106126431A (zh) * | 2016-08-23 | 2016-11-16 | 腾讯科技(深圳)有限公司 | 性能测试方法及系统 |
CN107341107B (zh) * | 2017-07-04 | 2022-04-29 | 飞天诚信科技股份有限公司 | 一种嵌入式开发的自动化测试方法及测试主机 |
CN107341107A (zh) * | 2017-07-04 | 2017-11-10 | 飞天诚信科技股份有限公司 | 一种嵌入式开发的自动化测试方法及测试主机 |
WO2020134634A1 (zh) * | 2018-12-27 | 2020-07-02 | 百富计算机技术(深圳)有限公司 | 程序调试方法、程序调试装置、终端设备及存储介质 |
CN109977633A (zh) * | 2019-03-28 | 2019-07-05 | 武汉斗鱼鱼乐网络科技有限公司 | 一种程序保护方法及相关装置 |
CN110096888A (zh) * | 2019-04-18 | 2019-08-06 | 苏州浪潮智能科技有限公司 | 一种加快验证及分析smm安全隐患的方法及系统 |
CN115794313A (zh) * | 2022-12-26 | 2023-03-14 | 科东(广州)软件科技有限公司 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
CN115794313B (zh) * | 2022-12-26 | 2024-04-09 | 科东(广州)软件科技有限公司 | 一种虚拟机调试方法、系统、电子设备及存储介质 |
CN116089316A (zh) * | 2023-04-07 | 2023-05-09 | 武汉凌久微电子有限公司 | 一种基于动态断点的内核驱动数据调试方法 |
CN116089316B (zh) * | 2023-04-07 | 2023-06-09 | 武汉凌久微电子有限公司 | 一种基于动态断点的内核驱动数据调试方法 |
CN116662157A (zh) * | 2023-04-26 | 2023-08-29 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
CN116662157B (zh) * | 2023-04-26 | 2024-02-02 | 北京计算机技术及应用研究所 | 一种针对tms320 c28x指令集模拟器的虚拟化调试系统设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102301344B (zh) | 2013-12-04 |
WO2012106871A1 (zh) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301344B (zh) | 一种操作系统内核调试方法和虚拟调试服务模块 | |
US10180896B2 (en) | System and method of debugging multi-threaded processes | |
CN110162977B (zh) | 一种Android车载终端系统漏洞检测系统及方法 | |
CN103744761B (zh) | 一种控制多台移动终端自动执行任务的方法及系统 | |
KR101751936B1 (ko) | 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법 | |
EP2816427B1 (en) | Plc simulation system, plc simulator, recording medium, and simulation method | |
CN102937932A (zh) | 集成异构测试工具的自动化测试装置及方法 | |
CN114253740A (zh) | 基于Linux内核的协议栈数据传输方法及装置 | |
US7971110B2 (en) | System and method for testing a serial attached small computer system interface | |
CN105843697B (zh) | 一种浏览器控件的中断恢复方法及系统 | |
Schumilo et al. | Don’t trust your USB! How to find bugs in USB device drivers | |
JP2013137658A (ja) | 協調シミュレーション用計算機システム、組込みシステムの検証方法及びプログラム | |
CN113535532A (zh) | 故障注入系统、方法和装置 | |
CN114238127A (zh) | 接口测试方法、装置、设备及存储介质 | |
KR102053849B1 (ko) | 항공기 시스템 및 그것의 제어 방법 | |
CN109471763A (zh) | 抓取NVME硬盘trace的方法、装置、设备及系统 | |
CN104951346A (zh) | 一种用于嵌入式系统的进程管理方法及系统 | |
US8943475B2 (en) | Methods and systems for interactive debugging in a mixed computer environment | |
CN105824682B (zh) | 一种虚拟机的监控方法、装置和系统 | |
US9866501B2 (en) | Virtual switch enabling communication between external objects and simulation objects | |
US20130042142A1 (en) | Debug carrier transactions | |
CN108388228A (zh) | 一种针对多通道嵌入式控制系统的同步调试方法和装置 | |
CN103020500A (zh) | 登录认证方法和电子设备 | |
CN114328349A (zh) | 虚拟串口终端系统及其实现方法、设备及计算机存储介质 | |
CN102915284A (zh) | 红外触摸屏标准化配置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20131204 Termination date: 20160706 |
|
CF01 | Termination of patent right due to non-payment of annual fee |