是否可以在 cdb/windbg 中进行语法高亮显示?
Is it possible to have syntax highlighting in cdb/windbg?
我正在 windows 上试验命令行调试器,我想知道是否有办法在 cdb 或 windbg 控制台中突出显示语法?
因为你标记了 windbg 并且标题中有 windbg 这个答案仅适用于 windbg
我假设您知道 windbg 是 gui 而 cdb 是控制台应用程序
windbg src window 支持语法高亮并提供一些选项
改变颜色,你可以并排停靠它
除非你是魔术师,否则cdb不支持颜色
魔术师的魔法秘方运行彩色cdb
(
有人提到您可以创建一个 tools.ini 文件
创建两个条目 col_mode: TRUE , col: srcchar R--
但需要注意的是,这仅适用于真正的控制台
不知道cmd.exe是真console还是假console
除了带有 dml 的 .printf /D 之外,我永远无法让它以彩色输出
)
关于评论放在哪里tools.ini
可以将 tools.ini 放在任何需要的地方,只需确保
环境变量 INIT 指向放置它的目录
在下面的示例中,我在调试目录或当前工作目录中有 tools.ini,用 .\ 和 .\tools.ini 表示
我将 ENV VAR init 设置为 .\ 即当前目录
这里是 windbg srcwindow 的截图,语法高亮 src
后跟彩色 cmd.exe dml .printf 输出
如您所见,.symopt+10 已从 tools.ini
启用
所以 cdb 已经解析并理解了颜色整体
但是单步没有得到颜色
:\>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:
:\>
我正在 windows 上试验命令行调试器,我想知道是否有办法在 cdb 或 windbg 控制台中突出显示语法?
因为你标记了 windbg 并且标题中有 windbg 这个答案仅适用于 windbg
我假设您知道 windbg 是 gui 而 cdb 是控制台应用程序
windbg src window 支持语法高亮并提供一些选项 改变颜色,你可以并排停靠它
除非你是魔术师,否则cdb不支持颜色
魔术师的魔法秘方运行彩色cdb
(
有人提到您可以创建一个 tools.ini 文件
创建两个条目 col_mode: TRUE , col: srcchar R--
但需要注意的是,这仅适用于真正的控制台
不知道cmd.exe是真console还是假console
除了带有 dml 的 .printf /D 之外,我永远无法让它以彩色输出
)
关于评论放在哪里tools.ini 可以将 tools.ini 放在任何需要的地方,只需确保 环境变量 INIT 指向放置它的目录
在下面的示例中,我在调试目录或当前工作目录中有 tools.ini,用 .\ 和 .\tools.ini 表示 我将 ENV VAR init 设置为 .\ 即当前目录
这里是 windbg srcwindow 的截图,语法高亮 src
后跟彩色 cmd.exe dml .printf 输出
如您所见,.symopt+10 已从 tools.ini
启用所以 cdb 已经解析并理解了颜色整体
但是单步没有得到颜色
:\>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:
:\>