title: How to set breakpoint in a specific program when they are many loaded at the same address?
body: <p>I am debugging a system which consist of a kernel and some user programs and I want to trace one of these user programs. The problem is they are all loaded at the same virtual address; so that when I set a breakpoint at an address; it gets hit when the execution passes by this address in any of my user programs.
  I know that one way to solve it would be to load them in different address spaces, but I would like to avoid it if there is a better way...</p>
  
  <p>I use qemu to emulate x86 architecture in order to run the system (Kernel + user code). 
  In order to debug, I use an external gdb client which connects to gdbserver running on qemu.</p>