I would prefer to target 10.6 (yes, I know it is old), possibly 10.8 as the latest in order to support as many systems as I can.
You really don't want to do this. Getting a KEXT to build and run all the way back to 10.6 is a pain even if you ignore the debugger issues. Specifically:
There's a code signing inflection point at OS X 10.9. OS X 10.9 requires signed KEXTs and OS X 10.8 won't load KEXTs that are signed. WWDC 2013 Session 707 What's New in Kext Development has the details.
There's a 64-bit inflection point somewhere around OS X 10.8. Mac OS X 10.6 runs on 32-bit hardware, so you have to build a universal KEXT. In addition, OS X 10.7, even though it only runs on 64-bit CPUs, still has machines running K32, so you need the universal KEXT there too. I think we went K64-only with OS X 10.8, but it might have been later.
The K64 transition is covered by WWDC 2009 Session 501 "Managing Kernel Extensions" and 502 "Creating I/O Kit Drivers for Multiple Architectures and OS Versions". I'm not sure if our WWDC video archives go back that far, which is an indication of how tricky this is going to be )-:
Building, loading and debugging KEXTs with the old toolchain (GCC and GDB) is quite painful. The new toolchain (Clang, LLDB, K64-only) is much more pleasant.
The old toolchain is not supported by modern versions of Xcode; moreover, sufficiently old versions of Xcode are not supported on modern OSes. You'll find yourself having to maintain multiple build machines (real or virtual) so that you can build your KEXT for all the environments on which it runs.
If you do go down this path I recommend that you start by building a modern KEXT for 10.9 and later. That way you won't be distracted by compatibility issues as you do your main development. Then, once you have everything working, worry about how to get it built for older systems.
I've also found a graphical debugger called Affinic Debugger GUI, which is a gui around gdb. Since it just a wrapper around gdb, it seems like it should be possible to set it up to do remote debugging. I'm curious if anyone has tried this.
I haven't looked at this but, given my advice above, it's going to be irrelevant unless it also supports LLDB.
Share and Enjoy
—
Quinn "The Eskimo!"
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
let myEmail = "eskimo" + "1" + "@apple.com"