使用.logopen logfile.txt
命令时,logfile.txt在哪里创建?我设法通过指定绝对路径来解决它,但我想知道何时给出文件创建的相对路径?
答案 0 :(得分:2)
对于版本6.3.9600,WinDbg帮助在.hh .logfile
中说:
如果未指定路径,则调试器将使用当前目录。
对我来说,我在程序文件目录中安装了WinDbg。
5:kd> .dbgdbg
0:025> |
. 0 id: 29fc attach name: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe
使用Process Monitor,我可以看到WinDbg尝试在那里创建日志文件(并且由于许可原因而失败)。
当我将WinDbg LNK文件中的工作目录用于启动时,它会打开该目录中的日志文件。
我无法确认@blabbs的答案,因为我的主目录是
5: kd> !homedir
Home directory is C:\ProgramData\dbg
在两种情况下(从%ProgramFiles%
运行并从D:\temp
运行)。如果我更改!homedir
,.logfile
的位置不会受到影响。
答案 1 :(得分:1)
编辑
日志文件是在当前目录中创建的,其中windbg被调用而不是在homedir中我总是从start run(winkey + r - > windbg)运行windbg,显然它从安装文件夹启动windbg并继承目录看来好像
从不同文件夹启动windbg使日志文件在相应的当前目录中创建
>md windbglogtestone
>cd windbglogtestone
\windbglogtestone>cdb -c ".logopen mylog.txt;q" cdb
Microsoft (R) Windows Debugger Version 10.0.16299.15 X86
0:000> cdb: Reading initial command '.logopen mylog.txt;q'
Opened log file 'mylog.txt'
quit:
\windbglogtestone>cd ..
>md windbglogtestwo
>cd windbglogtestwo
\windbglogtestwo>cdb -c ".logopen mylog.txt;q" cdb
Microsoft (R) Windows Debugger Version 10.0.16299.15 X86
0:000> cdb: Reading initial command '.logopen mylog.txt;q'
Opened log file 'mylog.txt'
quit:
\windbglogtestwo>cd ..
>dir /s /b *my*.txt
\windbglogtestone\mylog.txt
\windbglogtestwo\mylog.txt
它在home目录中创建,其中home表示安装windbg的文件夹(通常为c:\ progra~ \ w..kits .. \ debug ..... \ x ..)
请参阅下文,了解不同路径中的windbg安装
0:000> .logopen mylogfile.txt
Opened log file 'mylogfile.txt'
0:000> !homedir
Home directory is E:\windjs\windbg_16299\x86
0:000> .shell - dir *my*
Directory of E:\windjs\windbg_16299\x86
02/14/2018 09:07 AM 0 mylogfile.txt
1 File(s) 0 bytes
0 Dir(s) 102,247,899,136 bytes free
.shell: Process exited
Press ENTER to continue
回应lieven的评论为什么.shell命令中的连字符
它表示空输入文件
可以将input files
传递给.shell
进行处理,而不是windbg commands
使用 -i 代替 -c
传递一个连字符告诉没有输入文件
只有指示的shell命令需要完成