WinDbg經常使用命令系列---源代碼操做相關命令

lsf, lsf- (Load or Unload Source File)

lsf和lsf-命令加載或卸載源文件。服務器

lsf Filename 
lsf- Filename

參數:app

  • Filename
    指定要加載或卸載的文件。若是此文件不在從中打開調試器的目錄中,則必須包含絕對路徑或相對路徑。文件名必須遵循Microsoft Windows文件名慣例。

lsf命令加載源文件。lsf-命令卸載源文件。可使用此命令卸載之前使用lsf加載的文件或自動加載的源文件。不能使用lsf-卸載經過windbg的file|open source file命令加載的文件或windbg工做區加載的文件。在cdb或kd中,能夠在調試器命令窗口中查看源文件。在windbg中,源文件做爲新的源窗口加載。編輯器

lsc (List Current Source)

lsc命令顯示當前源文件名和行號。ui

lsc

lse (Launch Source Editor)

該命令打開當前源文件的編輯器。this

lse

lse命令打開當前源文件的編輯器。此命令至關於在windbg的源窗口的快捷菜單中單擊「編輯此文件」。發佈服務器在運行目標的計算機上打開,所以您不能從遠程客戶端使用lse命令。windiff編輯器註冊表信息或WINDBG_INVOKE_EDITOR環境變量的值決定打開哪一個編輯器。例如,考慮WINDBG_INVOKE_EDITOR的如下值。spa

c:\my\path\myeditor.exe -file %f -line %l

此值表示myeditor.exe打開到當前源文件的基於一個行號的行。%l選項表示行號應以一個爲基礎讀取,而%f表示應使用當前源文件。您還能夠包括%l以指示行號是基於零的,或者包括%p以指示應使用當前源文件。debug

ls, lsa (List Source Lines)

ls和lsa命令顯示來自當前源文件的一系列行,並前進當前源行號。調試

ls [.] [first] [, count] 
lsa [.] address [, first [, count]]

參數:code

  • .
    使命令查找調試器引擎或.srcpath(設置源路徑)命令正在使用的源文件。若是不包括句點(.),ls將使用lsf(加載源文件)命令最近加載的文件。
  • address
    指定源顯示開始的地址。
  • first
    指定要顯示的第一行。默認值是當前行。
  • count
    指定要顯示的行數。默認值是20(0x14),除非使用lsp-a命令更改了默認值。

運行ls或lsa命令後,當前行被從新定義爲顯示的最後一行加上一行。當前行用於未來的ls、lsa和lsc命令。server

lsp (Set Number of Source Lines)

i s l a n d mìnglìngkāidāngqiányuánwénjiàndebiānmìnglìngxiāngdāngzàiw i n d b g deyuánchuāngkǒudekuàijiécàidānzhōngdānbiānwénjiàn

lsp命令控制單步執行或執行代碼或使用ls和lsa命令時顯示的源代碼行數。

The editor is opened on the computer that the target is running on, so you cannot use the lse command from a remote client.

lsp [-a] LeadingLines TrailingLines 
lsp [-a] TotalLines 
lsp [-a]

參數:

  • -a
    lsp命令控制單步執行或執行代碼或使用ls和lsa命令時顯示的源代碼行數。
  • LeadingLines
    指定要在當前行以前顯示的行數。
  • TrailingLines
    指定要在當前行以後顯示的行數。
  • TotalLines
    指定要顯示的行總數。這個數字在前導行和尾隨行之間平均分配。(若是此數字爲奇數,則顯示更多的尾隨行。)

當您在沒有參數的狀況下使用lsp命令時,lsp將顯示您在單步執行時使用的當前前導行和尾行值。當您僅將此命令與-a參數一塊兒使用時,lsp將顯示您在單步執行以及ls和lsa命令時使用的值。 當您單步執行程序或在程序執行後插入時,上一個lsp命令將肯定顯示的前導和尾隨行數。使用lsa時,前一個lsp-a命令肯定顯示的前導和尾隨行數。使用ls時,全部行都顯示爲一個塊,所以前一個lsp-a命令肯定顯示的行總數。

dāngnínzàiméiyǒucānshùdeqíngkuàngxiàshǐ使 yòngl s p mìnglìngshíl s p jiāngxiǎnshìnínzàidānzhíxíngshíshǐ使 yòngdedāngqiánqiándǎohángwěixíngzhídāngnínjǐnjiāngmìnglìng- a cānshùshǐ使 yòngshíl s p jiāngxiǎnshìnínzàidānzhíxíngl s l s a mìnglìngshíshǐ使 yòngdezhí

.open (Open Source File)

When you step through a program or break in after program execution, the previous lsp command determines the number of leading and trailing lines that are displayed. When you use lsa, the previous lsp -a command determines the number of leading and trailing lines that are displayed. When you use ls, all lines appear as a single block, so the previous lsp -a command determines the total number of lines that are displayed.

.open命令搜索源文件的源路徑並打開此文件。

.open [-m Address] FileName 
.open -a Address

參數:

  • FileName
    指定源文件名。此名稱能夠包含絕對路徑或相對路徑。除非指定絕對路徑,不然該路徑將被解釋爲相對於源路徑中的目錄。
  • -m Address
    指定源文件中的地址。此地址必須包含在已知模塊中。若是filename指定的文件不惟一,則應使用-m address參數。 若是使用源服務器檢索源文件,則須要-m參數。
  • -a Address
    指定源文件中的地址。此地址必須包含在已知模塊中。若是調試器能夠找到源文件,則調試器將加載並打開該文件,並突出顯示與指定地址對應的行。若是調試器找不到源文件,則地址將顯示在「反彙編」窗口中。

.srcpath, .lsrcpath (Set Source Path)

.srcpath和.lsrcpath命令設置或顯示源文件搜索路徑。

.srcpath[+] [Directory [; ...]] 
.lsrcpath[+] [Directory [; ...]]

參數:

  • +
    指定新目錄將附加到(而不是替換)上一個源文件搜索路徑。
  • Directory
    指定要放入搜索路徑中的一個或多個目錄。若是未指定目錄,則顯示當前路徑。用分號分隔多個目錄。

.srcpath命令在全部調試器上均可用。.lsrcpath命令僅在windbg中可用,不能在腳本文件中使用。若是源路徑中包含srv*,調試器將使用srcsrv從目標模塊符號文件中指定的位置檢索源文件。從調試客戶端發出此命令時,.srcpath設置調試服務器上的源路徑,.lsrcpath設置本地計算機上的源路徑。

.srcfix, .lsrcfix (Use Source Server)

.srcfix和.lsrcfix命令自動設置源路徑,以指示將使用源服務器。

.srcfix[+] [Paths] 
.lsrcfix[+] [Paths]

參數:

  • +
    使現有源路徑保持不變,並將srv*追加到末尾。若是未使用+號,則替換現有源路徑。
  • Paths
    指定要附加到新源路徑末尾的一個或多個附加路徑。

.srcfix命令在全部調試器上均可用。.lsrcfix命令僅在windbg中可用,不能在腳本文件中使用。將srv*添加到源路徑時,調試器使用srcsrv從目標模塊符號文件中指定的位置檢索源文件。在源路徑中使用srv*與在符號路徑中使用srv*有本質的不一樣。在符號路徑中,能夠指定符號服務器位置以及srv*(例如,.sympath srv*http://msdl.microsoft.com/download/symbols)。在源路徑中,srv*是獨立的,用分號與全部其餘元素分隔開。從調試客戶端發出此命令時,.srcfix將源路徑設置爲使用調試服務器上的源服務器,而.lsrcfix在本地計算機上執行相同的操做。這些命令與.srcpath(set source path)和.lsrcpath(set local source path)命令相同,後面跟着srv*source path元素。所以,如下兩個命令是等效的:

.srcfix[+] [Paths] 
.srcpath[+] srv*[;Paths]

相似地,如下兩個命令是等效的:

jiàngs r v * tiānjiādàoyuánjìngshítiáo調 shìshǐ使 yòngs r c s r v cóngbiāokuàihàowénjiànzhōngzhǐdìngdewèizhijiǎnsuǒyuánwénjiànzàiyuánjìngzhōngshǐ使 yòngs r v * zàihàojìngzhōngshǐ使 yòngs r v * yǒuběnzhìdetóngzàihàojìngzhōngzhǐdìnghàowèizhis r v * . s y m p a t h s r v * h t t p : / / m s d l . m i c r o s o f t . c o m / d o w n l o a d / s y m b o l s zàiyuánjìngzhōngs r v * shìdeyòngfēnhàosuǒyǒuyuánfēnkāi

.lsrcfix[+] [Paths] 
.lsrcpath[+] srv*[;Paths]

.srcnoisy (Noisy Source Loading)

When this command is issued from a debugging client, .srcfix sets the source path to use a source server on the debugging server, while .lsrcfix does the same on the local machine.

.srcnoisy命令控制源文件加載的詳細級別。

.srcnoisy [Options]

參數:

  • Options
    能夠是如下任一選項:
    0
    禁止顯示多出的信息。

    1
    顯示源文件加載和卸載的進度有關的信息。

    2
    顯示的符號文件加載和卸載進度有關的信息。

    3
    顯示經過選項 1 和 2 顯示的全部信息。

cóngtiáo調 shìduānchūmìnglìngshí. s r c f i x jiāngyuánjìngshèzhìwéishǐ使 yòngtiáo調 shìshàngdeyuánér. l s r c f i x zàiběnsuànshàngzhíxíngxiāngtóngdecāozuò

These commands are the same as the .srcpath (Set Source Path) and .lsrcpath (Set Local Source Path) commands followed by the srv* source path element. Thus, the following two commands are equivalent:

若是沒有參數,.srcnoisy將顯示噪聲源加載的當前狀態。噪聲源加載不該與噪聲符號加載混淆--噪聲符號加載由控制!sym noise擴展和經過其餘方式控制symopt_調試設置。

相關文章
相關標籤/搜索