Patent ID: 7975260

Claim:
A computer-implemented method comprising: generating a list of all memory regions of a debuggee and injecting a thread into the debuggee, the injected thread for generating the list and communicating with the debugger, the memory regions comprising old debuggee shared memory regions and private memory regions; adding old debuggee shared memory region handles to the list, each old debuggee shared memory region handle corresponding to an associated old debuggee shared memory region; using the old debuggee shared memory region handles to map the associated old debuggee shared memory regions to a debugger, wherein for each given old debuggee shared memory region mapped to the debugger, a virtual address of the given mapped old debuggee shared memory region used by the debugger matches a virtual address of the given mapped old debuggee shared memory region used by the debuggee; creating and mapping new debugger shared memory regions to the debugger, each new debugger shared memory region corresponding to an associated private memory region of the debuggee; adding new debugger shared memory region handles to the list, each new debugger shared memory region handle corresponding to an associated new debugger shared memory region; and using the new debugger shared memory region handles to map the associated new debugger shared memory regions to the debuggee; wherein creating and mapping new debugger shared memory regions to the debugger comprises: processing each private memory region in the list, the processing further comprising: creating a new debugger shared memory region that matches the size of the private memory region of the debuggee; transferring content of the private memory region of the debuggee to the new debugger shared memory region that matches the size of the private memory region of the debuggee; and freeing the private memory region of the debuggee unless the private memory region is allocated for the injected thread; and mapping the new debugger shared memory regions to respective virtual addresses of the debuggee corresponding to the respective freed private memory regions.