1. A method of debugging computer instructions, the method comprising: determining a plurality of instruction address ranges corresponding to regions of a first memory, the plurality of instruction address ranges including a first instruction address range and a second instruction address range; loading the first instruction address range into registers in a first processor to form a hardware breakpoint range; enabling a software breakpoint, in response to a determination that a current instruction address is not within the first instruction address range; and loading the second instruction address range into the registers from a second memory external to the first processor, in response to a determination that the current instruction address is within the second instruction address range.