The IQ application will be briefly unavailable on Sunday, March 31st, starting at 10:00am ET. Access will be restored as quickly as possible.
Browse Prior Art Database

A method for preventing infinite code loops due to address breakpoints encountered by atomic code.

IP.com Disclosure Number: IPCOM000028865D
Original Publication Date: 2004-Jun-04
Included in the Prior Art Database: 2004-Jun-04
Document File: 1 page(s) / 41K

Publishing Venue



This invention prevents processors from looping continuously when they encounter an interrupt due to a breakpoint while executing atomic code.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 67% of the total text.

Page 1 of 1

A method for preventing infinite code loops due to address breakpoints encountered by atomic code.

There are sections of code the compiler creates called atomic code. The ldarx / stdcx set of instructions are a good example. Once execution starts on an atomic code segment, it must complete without an interrupt. If an interrupt occurs, the saved state at the beginning of the atomic code will be brought up again and another attempt is made to complete the instructions without an interrupt. We do not allow instruction breakpoints or instruction stepping through atomic code. Each time a breakpoint is hit, there is an interrupt and transfer of control, causing the atomic code segment to be repeated. However, address breakpoints are not tied to code instructions. When execution of an atomic code segment touches an address breakpoint, or more exactly, touches a page where an address breakpoint resides, an interruption occurs. This causes the processor to fall into a tight loop, executing the atomic code segment over and over.

     This invention will detect the looping condition and take measures to allow the atomic code segment to complete without an interrupt. Before this algorithm was implemented, there was no way to break out of such a looping condition without an IPL of the partition/system. There is still no known way to detect and prevent the looping condition from occurring in the first place.

     The tables that hold information about address breakpoints on the partitio...