GKD Introduction

This is the official site of “General Kernel Debugger”, GKD in short.

Download here

Project History

I created Peter-bochs debugger for os dev. I renamed it to GKD because peter-bochs only supports bochs but GKD support qemu too. The reasons I created it are:

  • bochs internal debugger is hard to dump out some x86 data structure, i need a faster way to do it.
  • tired with command line
  • i need a way to profiling part of my kernel, some bugs are really hard to trace without this feature
  • source level debug support


interrupt_tutorial3profiling_memory_rw_counttss_tutorial_2tss_tutorial_1

螢幕快照 2015-07-31 上午2.29.52 螢幕快照 2015-07-31 上午2.27.02 螢幕快照 2015-07-31 上午2.26.47 螢幕快照 2015-07-31 上午2.26.291350062109_7872

 

Some reasons i want to support QEMU because Bochs has some disadvantages, such as

  • It is slow, if compare to qemu or xen
  • It’s debug information output format is not fixed, hard to parse it correct it for all versions
  • qemu debugger can dump out more x86 specific registers
  • support x86 only

So GKD is a general debugger that able to run on qemu and bochs, i will not abandon bochs because it is still one of my favourite emulator to dev my own os.

Project Goal

  • Support full-kernel-profiling feature
  • Time travel
  • CUDA debugging
  • Support multiple hardware platform

read count : 1736