CN208384554U - 仿真器 - Google Patents
仿真器 Download PDFInfo
- Publication number
- CN208384554U CN208384554U CN201820695431.8U CN201820695431U CN208384554U CN 208384554 U CN208384554 U CN 208384554U CN 201820695431 U CN201820695431 U CN 201820695431U CN 208384554 U CN208384554 U CN 208384554U
- Authority
- CN
- China
- Prior art keywords
- debugging
- module
- breakpoint
- address
- code
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本实用新型公开了一种仿真器,包括:地址比较模块、处理器核、断点地址范围寄存器、调试模块和用户电脑;所述地址比较模块通过一组地址线与处理器核相连接,通过断点触发信号线与调试模块相连接,通过一组数据读取线与断点地址范围寄存器相连接;所述断点地址范围寄存器通过一组数据写入线与调试模块相连接,所述调试模块通过调试通道与用户电脑相连接。本实用新型在出现代码执行异常时,能够立即触发断点功能。
Description
技术领域
本实用新型涉及处理器芯片调试领域,特别是涉及一种仿真器。
背景技术
处理器芯片内有用户开发的用户程序,在用户程序的编写和调试中,所使用的工具一般是仿真器。仿真器内使用包含产品处理器芯片各项功能的仿真芯片,用于模拟产品处理器芯片的工作行为,仿真芯片与仿真器其它部件(存放用户程序的程序存储器、存放数据的数据存储器,以及用户电脑上的集成开发环境等)配合实现用户程序的仿真运行和各项调试功能。
用户程序调试过程中经常会遇到代码执行过程中出现代码执行异常,也就是代码跑飞,执行到了非预期的代码地址空间的情况,用户非常希望能有调试手段准确地寻找到执行哪一句代码时,触发了非预期的代码执行异常,以及跑飞后的代码地址,以便进一步分析和调试。
使用现有的仿真器,调试中出现上述问题时,只能采用不断设置代码断点,配合使用单步来逐步逼近寻找定位在执行了哪一句代码时,触发了非预期的代码执行异常,非常麻烦、调试效率低下。同时,如果代码执行异常跑飞的情况不是每次执行代码时都稳定发生的,或者触发代码异常跑飞的代码语句有多条时,采用上述调试方法将更加困难。
实用新型内容
本实用新型要解决的技术问题是提供一种仿真器,在出现代码执行异常时,能够立即触发断点功能。
为解决上述技术问题,本实用新型的仿真器,包括:地址比较模块、处理器核、断点地址范围寄存器、调试模块和用户电脑;所述地址比较模块通过一组地址线与处理器核相连接,通过断点触发信号线与调试模块相连接,通过一组数据读取线与断点地址范围寄存器相连接;所述断点地址范围寄存器通过一组数据写入线与调试模块相连接,所述调试模块通过调试通道与用户电脑相连接。
所述用户电脑上安装有集成开发环境模块,所述调试模块通过调试通道与安装在用户电脑上的集成开发环境模块相连接。
由于采用本实用新型的仿真器,能够在用户程序代码执行过程中,出现取代码的地址超出了指定地址范围时,立即触发断点功能,用户程序立即停止执行,且程序执行地址指针停止在触发代码执行异常跑飞前所执行的用户程序语句地址上,并通过调试界面显示给用户查看。这样,极大地方便了用户调试、定位代码执行异常错误,提高了代码开发和调试的效率。
附图说明
下面结合附图和具体实施方式对本实用新型作进一步详细的说明:
图1是所述仿真器一实施例的结构示意图。
具体实施方式
如图1所示,所述仿真器1在下面的实施例中,包括:地址比较模块2、处理器核6、断点地址范围寄存器3、调试模块4和集成开发环境模块5。所述地址比较模块2通过一组地址线11与处理器核6相连接,通过断点触发信号线7与调试模块4相连接,通过一组数据读取线9与断点地址范围寄存器3相连接。所述断点地址范围寄存器3通过一组数据写入线10与调试模块4相连接。调试模块4通过调试通道8与用户电脑上的集成开发环境模块5相连接。
不执行用户程序代码,处于调试状态时,用户在所述集成开发环境模块5上通过调试通道8向调试模块4下发需要设置的正常用户代码地址范围数据,所述调试模块4通过数据写入线10把所述正常用户代码地址范围数据写入到断点地址范围寄存器3中。此时,所述断点地址范围寄存器3中存放着用户设置的正常用户代码地址范围数据。
用户程序代码开始全速执行,所述地址比较模块2通过地址线11实时获取来自处理器核6的取下一条要执行的代码语句时的代码语句地址信息,通过数据读取线9从所述断点地址范围寄存器3中读取正常用户代码地址范围数据,并比对和判断所述下一条要执行的代码语句地址是否在所述正常用户代码地址范围内。如果在正常用户代码地址范围内,则不通过断点触发信号线7向调试模块4发出触发断点信号;如果不在正常用户代码地址范围内,则马上通过断点触发信号线7向调试模块4发出触发断点信号。所述调试模块4接收到触发断点信号后,马上停止执行用户程序,并把停止执行时的用户程序地址通过调试通道8发送给集成开发环境模块5显示出来。
这样所实现的仿真器1就能不断地实时采集、比较下一条要执行的代码语句地址是否在预设的正常地址范围内,一旦发现马上要出现代码跑飞的情况就会触发断点,立即停止代码执行,由于是在取下一条代码地址时发现的代码地址异常并触发了断点停止代码执行,集成开发环境模块5上显示指向的就是触发断点时当前执行的代码语句,也就是将会触发代码执行异常跑飞前所执行的用户程序语句。
同时,采用本实用新型的仿真器1,如果代码执行异常跑飞的情况不是每次执行代码时都稳定发生的,也能在发生时停止在触发异常跑飞的代码语句上。并且,在触发代码异常跑飞的代码语句有多条时,都能停止在各条触发异常跑飞的代码语句上。
所述地址比较模块2、断点地址范围寄存器3和调试模块4都可使用FPGA(Field-Programmable Gate Array,即现场可编程门阵列)中的逻辑资源和寄存器资源配合逻辑设计实现。
以上通过具体实施方式对本实用新型进行了详细的说明,但这些并非构成对本实用新型的限制。在不脱离本实用新型原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本实用新型的保护范围。
Claims (3)
1.一种仿真器,其特征在于,包括:地址比较模块、处理器核、断点地址范围寄存器、调试模块和用户电脑;所述地址比较模块通过一组地址线与处理器核相连接,通过断点触发信号线与调试模块相连接,通过一组数据读取线与断点地址范围寄存器相连接;所述断点地址范围寄存器通过一组数据写入线与调试模块相连接,所述调试模块通过调试通道与用户电脑相连接。
2.如权利要求1所述的仿真器,其特征在于:所述用户电脑上安装有集成开发环境模块,所述调试模块通过调试通道与安装在用户电脑上的集成开发环境模块相连接。
3.如权利要求1所述的仿真器,其特征在于:所述地址比较模块、断点地址范围寄存器和调试模块采用FPGA构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201820695431.8U CN208384554U (zh) | 2018-05-10 | 2018-05-10 | 仿真器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201820695431.8U CN208384554U (zh) | 2018-05-10 | 2018-05-10 | 仿真器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN208384554U true CN208384554U (zh) | 2019-01-15 |
Family
ID=64973996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201820695431.8U Active CN208384554U (zh) | 2018-05-10 | 2018-05-10 | 仿真器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN208384554U (zh) |
-
2018
- 2018-05-10 CN CN201820695431.8U patent/CN208384554U/zh active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603528B (zh) | 调试系统和方法 | |
US7200776B2 (en) | System and method for generating trace data in a computing system | |
EP3072051B1 (en) | Diagnosing production applications based on process snapshots | |
US9507688B2 (en) | Execution history tracing method | |
EP2668578B1 (en) | Controlling generation of debug exceptions | |
Giraldeau et al. | Recovering system metrics from kernel trace | |
CN102467446A (zh) | 可设置程序指针值的处理器芯片仿真器 | |
CN110647472A (zh) | 崩溃信息统计方法、装置、计算机设备及存储介质 | |
CN101178685A (zh) | 带特殊功能寄存器断点的增强型微处理器片上动态跟踪方法 | |
CN101329650B (zh) | 智能卡仿真器 | |
US9348723B2 (en) | Method, system, and computer program product | |
CN106528414B (zh) | 处理器芯片仿真器 | |
CN108021495B (zh) | 基于回放的代码调试方法 | |
CN208384554U (zh) | 仿真器 | |
CN208384556U (zh) | 仿真器 | |
US7526756B2 (en) | Address watch breakpoints with basing pointers | |
CN108647144A (zh) | 仿真器及代码执行异常断点实现方法 | |
US8707267B1 (en) | Debugging a computer program by interrupting program execution in response to access of unused I/O port | |
CN100481093C (zh) | 验证目标系统的验证系统及其验证方法 | |
CN115878363A (zh) | 用于解析处理器异常的方法、装置及计算机可读存储介质 | |
US9946624B1 (en) | Systems and methods to capture data signals from a dynamic circuit | |
EP1367489A1 (en) | A microprocessor development system | |
CN106484584A (zh) | 处理器芯片仿真器 | |
US20070028218A1 (en) | Apparatus, system, and method for a software test coverage analyzer using embedded hardware | |
CN110362396A (zh) | 基于powerpc架构并支持中断嵌套的外部中断管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |