The invention discloses a real-time single step debugging method based on log, which relates to the field of device debugging. In the detection mode, events are allocated to the latest instructions to be executed in the thread; the execution of the thread is suspended; the events in the thread are awakened and the execution of the thread is resumed in response to the first operation instruction; the awakened events are recycled and allocated to the next event Last pending instruction. The technical effect of the invention is that the field personnel do not depend on the software developer and the debugging environment, the system can be kept in the instantaneous state after each log output by simple operation, and the software and hardware equipment in the instantaneous state can be easily investigated. Compared with the single step debugging of setting breakpoints by using the debugging environment, the invention does not need to add additional code, and also can ensure the single step debugging and the positive The timing of threads is consistent in the normal run time, which improves the efficiency and accuracy of investigation.
【技术实现步骤摘要】
一种基于日志实时单步调试方法和装置
本专利技术涉及设备调试领域,尤其涉及一种基于日志实时单步调试方法和装置。
技术介绍
系统发生故障时,主要通过事后分析和事中分析来调试,排查故障。事后分析,即现场人员收集系统运行的日志后,再交由开发人员,通过分析日志内容来判断故障原因。但受限于日志信息不全及人员经验,往往无法把握故障时软硬件的运行状态及预想外的状况。同时故障往往发生在一系列连续动作中的某一个步骤,由于瞬时状态不可维持,现场人员缺少系统运行时保持瞬时状态的手段,无法排查处于此状态下的软硬件故障。(例如通过程控方式设置继电器动作,当继电器或是相关电路存在物理损坏时,即使通过日志信息确认到了程控指令及指令反馈都正常,但凭日志开发人员并不能判断出物理损坏的实际状况,且由于继电器切换往往发生在短时间内,设备的运行状态很快的发生了变化,现场人员也无法调查故障时的设备状态。)因此这种方法调查往往精度差,效率低。事中调试,即开发人员在现场或者远程,依赖调试工具对系统进行实时单步调试。这种调试方式非常直观,但需要软件开发人员协同作业, ...
【技术保护点】
1.一种基于日志实时单步调试方法,其特征在于,包括:/n在检测模式下,对线程中最近的待执行指令分配事件;/n挂起所述线程的执行;/n响应于第一操作指令,唤醒所述线程中的事件并恢复所述线程的执行;/n将被唤醒的事件回收并分配下一个事件给下一个最近的待执行指令。/n
【技术特征摘要】
1.一种基于日志实时单步调试方法,其特征在于,包括:
在检测模式下,对线程中最近的待执行指令分配事件;
挂起所述线程的执行;
响应于第一操作指令,唤醒所述线程中的事件并恢复所述线程的执行;
将被唤醒的事件回收并分配下一个事件给下一个最近的待执行指令。
2.根据权利要求1所述的基于日志实时单步调试方法,其特征在于,所述为线程分配事件的步骤包括:
根据事件池对所述事件编号得到的事件编号为所述线程中最近的待执行指令分配所述事件;其中,所述事件池包括的事件数量大于或等于所述线程的数量。
3.根据权利要求2所述的基于日志实时单步调试方法,其特征在于,根据事件池对所述事件编号得到的事件编号为线程中最近的待执行指令分配所述事件的步骤包括:
若N=M,将事件编号为1的事件分配至所述最近的待执行指令;
若N<M,将事件编号为N+1的事件分配至所述最近的待执行指令;其中,1≤N≤M,M表示所述事件池的事件数量,N表示前一次分配的事件编号,N为自然数;
若N<M,将前一次分配的事件编号为N+1;
若N=M,将前一次分配的事件编号为1。
4.根据权利要求2所述的基于日志实时单步调试方法,其特征在于,唤醒所述线程中的事件的步骤包括:
将分配的所述事件发送至时序队列;其中,所述时序队列为先进先出队列;
唤醒所述时序队列中时序最早的事件。
5.根据权利要求1至4所述的基于日志实时单步调试方法,其特征在于,对线程中最近的日志输出指令分配事件;将所述被唤醒的事件回收并分配下一个事件给下一个最近的日志输出指令。
6.根据权利要求1至4中任一项所述的基于日志实时单步调试方法,其特征在于,还包括:
在运行模式下,对所述线程正常执行。
7.一种基于日志实时单步调试装置,其特征在于,包括:
分配模块,用于对线程中最近的待执行指令分配事件,以及将被唤醒的事件回收并分配下一个事件给...
【专利技术属性】
技术研发人员:俞颖奇,郭亚群,张晓东,
申请(专利权)人:上海光电医用电子仪器有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。