Windbg logopen文件位置

Windbg logopen文件位置,windbg,Windbg,使用.logopen logfile.txt命令时,在哪里创建logfile.txt?我通过指定绝对路径来解决这个问题,但我想知道什么时候给出文件创建的相对路径?编辑 日志文件是在调用windbg的当前目录中创建的,而不是在homedir中。我总是从开始运行(winkey+r->windbg)运行windbg,显然它从安装文件夹启动windbg并继承该目录 从不同的文件夹启动windbg可以在各自的当前目录中创建日志文件 >md windbglogtestone >cd windbg

使用
.logopen logfile.txt
命令时,在哪里创建logfile.txt?我通过指定绝对路径来解决这个问题,但我想知道什么时候给出文件创建的相对路径?

编辑

日志文件是在调用windbg的当前目录中创建的,而不是在homedir中。我总是从开始运行(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命令中使用连字符

它表示一个空的输入文件
可以将
输入文件
传递到
.shell
进行处理,而不是
windbg命令

使用-i而不是-c
传递一个连字符以告知没有输入文件
只有指定的shell命令需要执行

编辑

日志文件是在调用windbg的当前目录中创建的,而不是在homedir中。我总是从开始运行(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命令中使用连字符

它表示一个空的输入文件
可以将
输入文件
传递到
.shell
进行处理,而不是
windbg命令

使用-i而不是-c
传递一个连字符以告知没有输入文件

WinDbg帮助在
.hh.logfile
中指出,对于6.3.9600版,只需执行指定的shell命令:

如果未指定路径,调试器将使用当前目录

5:kd> .dbgdbg
0:025> |
.  0    id: 29fc        attach  name: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe
对我来说,我在ProgramFiles目录中安装了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文件中保存工作目录时,它会打开该目录中的日志文件

5:kd> .dbgdbg
0:025> |
.  0    id: 29fc        attach  name: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe

我无法确认@blabbs的答案,因为我的主目录是

5: kd> !homedir
Home directory is C:\ProgramData\dbg

在这两种情况下(从
%ProgramFiles%
运行和从
D:\temp
运行)。如果我改变
!homedir
,日志文件的位置不受影响。

对于6.3.9600版,WinDbg帮助在
.hh.logfile
中说明:

如果未指定路径,调试器将使用当前目录

5:kd> .dbgdbg
0:025> |
.  0    id: 29fc        attach  name: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe
对我来说,我在ProgramFiles目录中安装了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文件中保存工作目录时,它会打开该目录中的日志文件

5:kd> .dbgdbg
0:025> |
.  0    id: 29fc        attach  name: C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe

我无法确认@blabbs的答案,因为我的主目录是

5: kd> !homedir
Home directory is C:\ProgramData\dbg

在这两种情况下(从
%ProgramFiles%
运行和从
D:\temp
运行)。如果我改变
!homedir
,日志文件的位置不受影响。

@LievenKeersmaekers我编辑了我的答案,包括为什么hyphen@LievenKeersmaekers我编辑了我的答案,以包括为什么我在创建文件的地方找到了一个使用连字符的进程监视器。它不是在homedir
C:\Program Files(x86)\Windows Kits\10\Debuggers\x64
(在我的例子中),而是在上面的一个级别(
C:\Program Files(x86)\Windows Kits\10\Debuggers
)中。使用进程监视器,我找到了文件的创建位置。它不是在homedir
C:\Program Files(x86)\Windows Kits\10\Debuggers\x64
(在我的例子中),而是在上面的一个级别(
C:\Program Files(x86)\Windows Kits\10\Debuggers
)。