发明名称 System and method of debugging multi-threaded processes
摘要 A system and method of debugging a multi-threaded process with at least one running thread and at least one suspended thread is disclosed. Embodiments utilize a blocking function to block the thread of a process while other threads are allowed to run. The blocking function may be executed in a suspended thread by a debugger under control of a thread blocking controller. The other threads may implement interprocess communication channels for enabling communication between the process and another application. A simulated user interface (UI) of a debugger enables interaction with users while a hardware simulation thread is blocked, where blocking of the hardware simulation thread may be implemented by a thread blocking component implemented externally to the debugger. Where a thread blocking controller is implemented within the debugger, a debugger UI may interact with a user while the hardware simulation thread is blocked and interprocess communication threads are running.
申请公布号 US9459992(B2) 申请公布日期 2016.10.04
申请号 US201414165541 申请日期 2014.01.27
申请人 Synopsys, Inc. 发明人 Spycher Matthias;Petras Dietmar
分类号 G06F9/44;G06F11/36 主分类号 G06F9/44
代理机构 Fenwick & West LLP 代理人 Fenwick & West LLP
主权项 1. A method of debugging a platform, said method comprising: detecting a breakpoint event of a simulator that is communicatively coupled to a debugger, the simulator comprising a first thread simulating the platform, a second thread implementing a first interprocess communication channel between the simulator and an embedded software debugger that is different than the debugger and a third thread implementing a second interprocess communication channel between the simulator and a component that is different than the debugger and different than the embedded software debugger and external to the simulator; blocking, using the debugger and responsive to detecting the breakpoint event, the first thread simulating the platform while allowing the second thread implementing the first interprocess communication channel to operate and allowing the third thread implementing the second interprocess communication channel to operate; and communicating using the second thread implementing the first interprocess communication channel and the third thread implementing the second interprocess communication channel while the first thread simulating the platform is blocked, the embedded software debugger accessing a state of the platform using the second thread during the communicating.
地址 Mountain View CA US