However, the problem is "just" that breakpoints do not work within the higherhalf -> main -> ... call-hierarchie. So as if gdb doesn't like the gdt-change within the loader-function. As I've mentioned above, breakpoints work for example within the interrupt-handling.
hrniels
Edit: Oh, I have just figured out that the breakpoints just don't work within the temporary GDT with a base of 0x40000000. As soon as the GDT is reset to a flat address-space (and paging is enabled), everything works fine. Sorry that I didn't get that earlier

So I don't know if there actually is a solution for it (maybe other people using this strategy simply live with it because it isn't much code where breakpoints don't work). But of course it would be nice if there is any

In any case, thank you very much for your help!
