mbl
mbl

Reputation: 925

Is it possible to have syntax highlighting in cdb/windbg?

I am experimenting with command line debuggers on windows and I was wondering if there’s a way to have syntax highlighting in either cdb or the windbg console?

Upvotes: 1

Views: 617

Answers (1)

blabb
blabb

Reputation: 9007

since you tagged windbg and have windbg in title this answer is for windbg only

i presume that you are aware windbg is gui and cdb is console application

windbg src window supports syntax highlighting and provides some options to change the colors and you can dock it side by side

cdb does not support color unless you are a magician

magic recipe for magicians that can run colored cdb

( it is mentioned that you can create a tools.ini file
create two entries col_mode: TRUE , col: srcchar R--
but there is a caveat that this only works in true console
I don't know if cmd.exe is true console or false console
I could never coax it to output in color except for .printf /D with dml )

Regarding the comment where to put tools.ini one can put tools.ini anywhere one wishes just has to make sure the environment variable INIT points to the directory where one has put it

in the example below i have tools.ini in the debugee directory or current working Directory denoted with .\ and .\tools.ini and i am setting the ENV VAR init to .\ viz current directory

here is a screenshot for windbg srcwindow with syntax highlighted src

followed by a colored cmd.exe dml .printf output

enter image description here

as you can see the .symopt+10 has been enabled from tools.ini

so cdb has parsed and understood the color entires

but single stepping doesn't get color

:\>set INIT
Environment variable INIT not defined

:\>cdb -c ".symopt;q" classmagic.exe | awk "/Reading/,/quit/"
0:000> cdb: Reading initial command '.symopt;q'
Symbol options are 0xB0327:          <<<<<<<<<<<<<<<<<<<<
  0x00000001 - SYMOPT_CASE_INSENSITIVE
  0x00000002 - SYMOPT_UNDNAME
  0x00000004 - SYMOPT_DEFERRED_LOADS
  0x00000020 - SYMOPT_OMAP_FIND_NEAREST
  xxxxxxxxxxxxx
quit:

:\>set INIT=.\

:\>cat .\tools.ini
[CDB]
col_mode: TRUE
col srcchar R--
lines: TRUE  <<<<<<<<<<<<<<<<<<

:\>cdb -c ".symopt;q" classmagic.exe | awk "/Reading/,/quit/"

0:000> cdb: Reading initial command '.symopt;q'
Symbol options are 0xB0337:       <<<<<<<<<<<<<<
  0x00000001 - SYMOPT_CASE_INSENSITIVE
  0x00000002 - SYMOPT_UNDNAME
  0x00000004 - SYMOPT_DEFERRED_LOADS
  0x00000010 - SYMOPT_LOAD_LINES  <<<<<<<<<<<<<<<<
  0x00000020 - SYMOPT_OMAP_FIND_NEAREST
   xxxxxxxxxxxxxxxxxxxxxx
quit:

:\>

enter image description here

Upvotes: 1

Related Questions