Efficient breakpoint detection via caches

US10599541B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10599541-B2
Application numberUS-201916292646-A
CountryUS
Kind codeB2
Filing dateMar 5, 2019
Priority dateJan 13, 2017
Publication dateMar 24, 2020
Grant dateMar 24, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Efficient breakpoint detections via caches comprises monitoring a memory location by detecting cache misses on a cache. Embodiments include identifying a memory address that is to be monitored, storing the memory address in a breakpoint monitoring list, and ensuring that any cache lines overlapping with the memory address are evicted from a cache. Based at least on an indication of an occurrence of a cache miss, embodiments determine whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list. When the portion of the imported cache line does overlap with the memory address, embodiments process one or more monitoring operations on the memory address, and, based on the memory address being stored in the breakpoint monitoring list, embodiments evict the imported cache line from the cache.

First claim

Opening claim text (preview).

What is claimed: 1. A method, implemented at a computer system that includes one or more processors, for monitoring a memory location for occurrence of a breakpoint through use of a cache during debugging, the method comprising: identifying a memory address that is to be monitored; based at least on identifying the memory address that is to be monitored, performing at least the following: storing the memory address in a breakpoint monitoring list; and ensuring that any cache lines overlapping with the memory address are evicted from a cache, including, based on the memory address being stored in the breakpoint monitoring list, evicting one or more cache lines from the cache; and based at least on an indication of an occurrence of a cache miss, determining whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list, and when the portion of the imported cache line does overlap with the memory address, performing at least the following: processing one or more monitoring operations on the memory address, including determining that a breakpoint was encountered when the memory address was written to or read by a memory access operation; and based on the memory address being stored in the breakpoint monitoring list, evicting the imported cache line from the cache. 2. The method as recited in claim 1 , wherein the one or more monitoring operations include putting at least one of the one or more processors in verbose mode and single-stepping at least one of the one or more processors. 3. The method as recited in claim 1 , wherein determining whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list comprises determining whether the imported cache line includes a memory address matching the memory address stored in the breakpoint monitoring list. 4. The method as recited in claim 1 , wherein when the portion of the imported cache line does not overlap with the memory address, the imported cache line remains in the cache. 5. The method as recited in claim 1 , further comprising merging cache misses for a plurality of memory operations by performing monitoring operations on a cache line accessed by the plurality of memory operations, while refraining from evicting the cache line during the plurality of memory operations. 6. The method as recited in claim 1 , further comprising merging cache misses for a plurality of memory operations when those memory operations relate to at least one of: a first breakpoint on a thread's stack, while executing a function owning a stack frame of the thread's stack; or a second breakpoint within a function, while executing code of the function. 7. A computer system, comprising: one or more processors; and one or more hardware storage devices having stored thereon instructions that are executable by the one or more processors to cause the computer system to monitor a memory location for occurrence of a breakpoint through use of a cache during debugging, the instructions including instructions that are executable to cause the computer system to perform at least the following: identify a memory address that is to be monitored; based at least on identifying the memory address that is to be monitored, perform at least the following: store the memory address in a breakpoint monitoring list; and ensure that any cache lines overlapping with the memory address are evicted from a cache, including, based on the memory address being stored in the breakpoint monitoring list, evicting one or more cache lines from the cache; and based at least on an indication of an occurrence of a cache miss, determine whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list, and when the portion of the imported cache line does overlap with the memory address, perform at least the following: process one or more monitoring operations on the memory address, including determining that a breakpoint was encountered when the memory address was written to or read by a memory access operation; and based on the memory address being stored in the breakpoint monitoring list, evict the imported cache line from the cache. 8. The computer system as recited in claim 7 , wherein the one or more monitoring operations include putting at least one of the one or more processors in verbose mode and single-stepping at least one of the one or more processors. 9. The computer system as recited in claim 7 , wherein determining whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list comprises determining whether the imported cache line includes a memory address matching the memory address stored in the breakpoint monitoring list. 10. The computer system as recited in claim 7 , wherein when the portion of the imported cache line does not overlap with the memory address, the imported cache line remains in the cache. 11. The computer system as recited in claim 7 , the instructions including instructions that are executable to cause the computer system to merge cache misses for a plurality of memory operations by performing monitoring operations on a cache line accessed by the plurality of memory operations, while refraining from evicting the cache line during the plurality of memory operations. 12. The computer system as recited in claim 7 , the instructions including instructions that are executable to cause the computer system to merge cache misses for a plurality of memory operations when those memory operations relate to at least one of: a first breakpoint on a thread's stack, while executing a function owning a stack frame of the thread's stack; or a second breakpoint within a function, while executing code of the function. 13. A computer program product comprising one or more hardware storage devices having stored thereon instructions that are executable by one or more processors to cause a computer system to monitor a memory location for occurrence of a breakpoint through use of a cache during debugging, the instructions including instructions that are executable to cause the computer system to perform at least the following: identify a memory address that is to be monitored; based at least on identifying the memory address that is to be monitored, perform at least the following: store the memory address in a breakpoint monitoring list; and ensure that any cache lines overlapping with the memory address are evicted from a cache, including, based on the memory address being stored in the breakpoint monitoring list, evicting one or more cache lines from the cache; and based at least on an indication of an occurrence of a cache miss, determine whether a portion of a cache line imported into the cache based on the cache miss overlaps with the memory address stored in the breakpoint monitoring list, and when the portion of the imported cache line does overlap with the memory address, perform at least the following: process one or more monitoring operations on the memory address, including determining that a breakpoint was encountered when the memory address was written to or read by a memory access operation; and based on the memory address being stored in the breakpoint monitoring list, evict the imported cache line from the cache. 14. The computer program product as recited in claim 13 , wherein the one or more monitoring operations include putting at le

Assignees

Inventors

Classifications

  • Address tracing · CPC title

  • using additional hardware · CPC title

  • using clearing, invalidating or resetting means · CPC title

  • with main memory updating (G06F12/0806 takes precedence) · CPC title

  • Debugging of software · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10599541B2 cover?
Efficient breakpoint detections via caches comprises monitoring a memory location by detecting cache misses on a cache. Embodiments include identifying a memory address that is to be monitored, storing the memory address in a breakpoint monitoring list, and ensuring that any cache lines overlapping with the memory address are evicted from a cache. Based at least on an indication of an occurrenc…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/3636. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 24 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).