當前位置:首頁 » 編程軟體 » 如何調試腳本

如何調試腳本

發布時間: 2023-05-16 11:13:43

1. 如何調試shell腳本各種方法都說說。

方法一:sh -x script.sh
-x選項會將運行到的腳本內容顯示在屏幕上,前面有個+號。這樣就知道哪句被執行到了。對調試很有幫助。

方法二:在腳本中使用debug開關
適用於只調試部分腳本的情況。
set -x
......(要調試的代碼段)
set +x
然後sh script.sh運行腳本

方法三:在腳本中添加列印
比如搞個log輸出函數,專門用於列印調試相關信息。
_log()
{
if [ "$_DEBUG" = "true" ]; then
echo "調試信息"
fi
}
只要在外面控制$_DEBUG開關即可。

2. 如何在 Windows PowerShell ISE 中調試腳本

介紹如何通過使用 Windows PowerShell® 集成腳本環境 (ISE) 直觀調試功能來調試本地計算機上的腳本。
如何管理斷點如何管理調試會話如何在調試過程中步越、步入和步出如何在調試時顯示變數的值
如何管理斷點
斷點是腳本中你想要操作暫停的指定位置,這樣你可以檢查變數的當前狀態和腳本運行的環境。 一旦你的腳本被斷點暫停,你可以在控制台窗格中運行命令來檢查你的腳本狀態。 你可以輸出變數或運行其他命令。 甚至可以修改對正在運行的腳本的上下文可見的任何變數的值。 檢查完你想要查看的內容後,可以恢復該腳本的運行。
可以在 Windows PowerShell 調試環境中設置三種類型的斷點:
行斷點 **** 在腳本運行期間,當達到所指定的行時,腳本暫停
變數斷點。 每當指定變數的值發生更改時,腳本暫停。
命令斷點。 在腳本運行期間,每當要運行指定命令時,腳本暫停。 它可以包括參數,以便僅對所需操作進一步篩選斷點。 該命令還可以是你創建的函數。
其中,在 Windows PowerShell ISE 調試環境中,只有行斷點可以通過使用菜單或鍵盤快捷方式進行設置。 可以設置其他兩種類型的斷點,但應通過使用 Set-PSBreakpoint [m2] cmdlet 從控制台窗格中進行設置。 本部分介紹了如何通過使用菜單(若有)在 Windows PowerShell ISE 中執行調試任務,並通過腳本從控制台窗格中執行更廣泛的命令。
設置斷點
僅當保存腳本後,才可以在其中設置斷點。 右鍵單擊你想要設置行斷點的行,然後單擊「切換斷點」。 或者,單擊你想要設置的行斷點所在的行,然後按 F9,或在「調試」菜單上,單擊「切換斷點」。********
以下腳本是如何通過使用 Set-PSBreakpoint cmdlet 從控制台窗格中設置變數斷點的示例。
# This command sets a breakpoint on the Server variable in the Sample.ps1 script.
set-psbreakpoint -script sample.ps1 -variable Server

列出所有斷點
在當前 Windows PowerShell® 會話中顯示所有斷點。
在「調試」菜單上,單擊「列表斷點」。******** 以下腳本是如何通過使用 Get-PSBreakpoint cmdlet 從控制台窗格中列出所有斷點的示例。
# This command lists all breakpoints in the current session.
get-psbreakpoint

移除斷點
移除斷點會將其刪除。 如果你認為稍後還可能再次使用,請考慮改為禁用。 右鍵單擊你想要移除的斷點所在的行,然後單擊「切換斷點」。 或者,單擊你想要移除的斷點所在的行,然後在「調試」菜單上,單擊「切換斷點」。******** 以下腳本是如何通過使用 Remove-PSBreakpoint cmdlet 從控制台窗格中移除具有指定 ID 的斷點的示例。
# This command deletes the breakpoint with breakpoint ID 2.
remove-psbreakpoint -id 2

移除所有斷點
若要移除在當前會話中定義的所有斷點,在「調試」菜單上,單擊「移除所有斷點」。********
以下腳本是如何通過使用 Remove-PSBreakpoint cmdlet 從控制台窗格中移除所有斷點的示例。
# This command deletes all of the breakpoints in the current session.
get-breakpoint | remove-breakpoint

禁用斷點
禁用斷點不會將斷點移除;只是會將其關閉,直至啟用。 若要禁用特定行斷點,右鍵單擊你想要禁用的行斷點所在的行,然後單擊「禁用斷點」。 或者,單擊你想要禁用的斷點所在的行,然後按 F9,或在「調試」菜單上,單擊「禁用斷點」。******** 以下腳本是如何通過使用 Disable-PSBreakpoint cmdlet 從控制台窗格中移除具有指定 ID 的斷點的示例。
# This command disables the breakpoint with breakpoint ID 0.
disable-psbreakpoint -id 0

禁用所有斷點
禁用斷點不會將斷點移除;只是會將其關閉,直至啟用。 若要禁用在當前會話中的所有斷點,在「調試」菜單上,單擊「禁用所有斷點」。******** 以下腳本是如何通過使用 Disable-PSBreakpoint cmdlet 從控制台窗格中禁用所有斷點的示例。
# This command disables all breakpoints in the current session.
# You can abbreviate this command as: "gbp | dbp".
get-psbreakpoint | disable-psbreakpoint

啟用斷點
若要啟用特定斷點,右鍵單擊你想要啟用的斷點所在的行,然後單擊「啟用斷點」。 或者,單擊你想要啟用的斷點所在的行,然後按 F9,或在「調試」菜單上,單擊「啟用斷點」。******** 以下腳本是如何通過使用 Enable-PSBreakpoint cmdlet 從控制台窗格中啟用特定斷點的示例。
# This command enables breakpoints with breakpoint IDs 0, 1, and 5.
enable-psbreakpoint -id 0, 1, 5

啟用所有斷點
若要啟用在當前會話中定義的所有斷點,在「調試」菜單上,單擊「啟用所有斷點」。******** 以下腳本是如何通過使用 Enable-PSBreakpoint cmdlet 從控制台窗格中啟用所有斷點的示例。
# This command enables all breakpoints in the current session.
# You can abbreviate the command by using their aliases: "gbp | ebp".
get-psbreakpoint | enable-psbreakpoint

如何管理調試會話
開始調試之前,必須設置一個或多個斷點。 你不能設置一個斷點,除非已保存你想要調試的腳本。 有關如何設置斷點的說明,請參閱如何管理斷點或 Set-PSBreakpoint。 開始調試後,將無法編輯腳本,除非停止調試。 運行之前,將自動保存設置有一個或多個斷點的腳本。
啟動調試
按 F5 或在工具欄上單擊「運行腳本」圖標,或在「調試」菜單上單擊「運行\/繼續」。 腳本將一直運行,直到它遇到第一個斷點。 它將在此處暫停操作,並突出顯示它暫停時所在的行。
繼續調試
按 F5 或在工具欄上單擊「運行腳本」圖標,或在「調試」菜單上單擊「運行\/繼續」,或在控制台窗格中鍵入 C,然後按 ENTER。 這將導致腳本繼續運行到下一個斷點,或如果接下來沒有遇到任何斷點的話運行到腳本的末尾。
查看調用堆棧
調用堆棧會顯示腳本中的當前運行位置。 如果腳本在由其他函數調用的函數中運行,則會由輸出中的附加行在顯示中表示。 最底行顯示原始腳本以及腳本中調用函數所在的行。 下一行顯示該函數以及函數中可能調用了另一個函數所在的行。 最頂行顯示設置了斷點的當前行的當前上下文。
若要在暫停時查看當前調用堆棧,請按 CTRL+SHIFT+D,或在「調試」菜單上單擊「顯示調用堆棧」,或在控制台窗格中鍵入 K,然後按 ENTER。
停止調試
按 SHIFT-F5,或在「調試」菜單上單擊「停止調試器」,或在控制台窗格中鍵入 Q,然後按ENTER。
如何在調試過程中步越、步入和步出
單步執行是一次運行一條語句的過程。 你可以在一個代碼行上停止,然後檢查變數的值和系統狀態。 下表描述了常見的調試任務,如步越、步入和步出。

調試任務 說明 如何在 PowerShell ISE 中完成它
步入 執行當前的語句,然後在下一個語句處停止。 如果當前語句是一個函數或腳本調用,則調試器將單步調試該函數或腳本,或者停止在下一條語句上。 按 F11,或在「調試」菜單上,單擊「步入」,或者,在控制台窗格中,鍵入 S,然後按 ENTER。********
步越 執行當前的語句,然後在下一個語句處停止。 如果當前語句是一個函數或腳本調用,則調試器將執行整個函數或腳本,或者在函數調用後在下個語句處停止。 按 F10,或在「調試」菜單上,單擊「步越」,或者在控制台窗格中,鍵入 V,然後按 ENTER。********
步出 跳出當前函數,如果函數是嵌套的則返回上一級。 如果在主正文中,腳本將執行到末尾,或到下一個斷點。 將執行跳過的語句,但不會單步遍歷。 按 SHIFT+F11,或在「調試」菜單上單擊「步出」,或在控制台窗格中鍵入 O,然後按 ENTER。
繼續 繼續執行到結束,或到下一個斷點。 將執行已跳過的函數和調用,但不會進行單步遍歷。 按 F5 或在「調試」菜單上單擊「運行\/繼續」,或在控制台窗格中鍵入 C,然後按 ENTER。
如何在調試時顯示變數的值
單步遍歷代碼時,可以在腳本中顯示變數的當前值。
顯示標准變數的值
使用以下方法之一:
在腳本窗格中,將滑鼠懸停在變數上,以在工具提示中顯示它的值。
在控制台窗格中,鍵入變數的名稱並按 ENTER。
ISE 中的所有窗格始終位於同一作用域中。 因此,調試腳本時,你在控制台窗格中鍵入的命令在腳本作用域中運行。 這樣,你便可以使用控制台窗格查找變數的值,並調用僅在腳本中定義的函數。
顯示自動變數的值
調試腳本時,可以使用前述方法顯示幾乎所有變數的值。 但是,這些方法不適用於以下自動變數。
$_
$Input
$MyInvocation
$PSBoundParameters
$Args
如果你嘗試顯示這些變數中的任何一個的值,你將獲取調試器使用的內部管道中變數的值,而不是腳本中變數的值。 對於一些變數($_、$Input、$MyInvocation、$PSBoundParameters 和 $Args),可以使用以下方法解決此問題:
在腳本中,將自動變數的值分配給一個新變數。
通過將滑鼠懸停在腳本窗格中新變數上,或通過在控制台窗格中鍵入新變數來顯示新變數的值。
例如,若要顯示 $MyInvocation 變數的值,在腳本中,將該值分配給一個新變數(如 $scriptname),然後將滑鼠懸停在 $scriptname 變數上,或鍵入 $scriptname 變數以顯示其值。
#In MyScript.ps1
$scriptname = $MyInvocation.MyCommand.Path

#In the Console Pane:
C:\ps-test> $scriptname
C:\ps-test\MyScript.ps1

3. 如何調試lua腳本

調試lua現有的幾種方案:
1)luaedit : 編輯斷點和斷點命中查看那些都讓習慣用vs的人感到親切,但是它只是在純lua環境下的編輯器,也就是說和期望程序運行中能借用它來調試腳本可能性不大(至少我沒有試驗出來),能用上的需要給lua腳本做個main腳本函數,並提供一系列偽的c api(由lua實現的函數,只提供製定值的返回)。由luaedit啟動腳本main函數進行調試
2)利用 lua debug 庫中的 hook ,然後記錄一張斷點位置表,設置行模式的 hook ,每次進入 hook 都檢查是否是斷點處,若是就停下來等待交互調試。這個方法有效,但是很消耗 cpu 。因為每進入一個新的代碼行,都需要回調一個函數。當這個函數本身又是用 lua 寫的時候,效率更低。
3)利用lua腳本函數實現,在lua腳本中封裝一個斷點函數,這種方式結合debug庫實現斷點和棧信息,然後利用lua環境下的表對函數調用信息進行記錄和列印,需要腳本使用者顯式提供斷點函數的調用。這個辦法的優點自己可以組合出適合自己項目的斷點調試方案。但缺點是相對繁瑣,而且斷點命中以後難以和現有方式融合

4. shell 腳本如何進行調試

Shell提供了一些用於調試腳本的選項,如:
1.-n :讀一遍腳本中的命令但不執行,用於檢查腳本中的語法錯誤。
2.-v :一邊執行腳本,一邊將執行過的腳本命令列印到標准錯誤輸出。
3.-x :提供跟蹤執行信息,將執行的每一條命令和結果依次列印出來。該選項有三種常見的使用方法:
1.在命令行提供參數。如:itcast@itcast$ sh -x ./script.sh
2.在腳本開頭提供參數。如:#! /bin/sh -x
在腳本中用set命令啟用或禁用參數。如:set -x 和 set +x分別表示啟用和禁用-x參數,這樣可以只對腳本中的某一段進行跟蹤調試。
學會了嗎?我也是在黑馬程序員學了C之後會的,現在已經工作了,工資15K,福利待遇挺好的。

5. 如何調試LoadRunner腳本

VuGen 包含兩個選項來幫助調試 Vuser 腳本:「分步運行」命令和斷點。這些選

項不適用於 VBscript 和 VB 應用程序類型的 Vuser。

要查看「調試」工具欄,請執行下列操作:

右鍵單擊工具欄區域,然後選擇「調試」。「調試」工具欄將顯示在工具欄區域

中。 「分步運行」命令

「分步運行」命令在運行腳本時一次運行一行。通過該命令,可以依次查看腳本

每一行的執行情況。

要分步運行腳本,請執行下列操作:

1 依次選擇「Vuser」 > 「分步運行」,或者單擊「調試」工具欄上的「步驟」按

鈕。

VuGen 將執行腳本的第一行。

2 繼續單擊「步驟」按鈕來執行該腳本,直到腳本運行完成為止。

斷點

通過斷點可以使腳本在特定位置暫停執行。它可用於在執行期間的預定點處檢查

該腳本對應用程序的影響。要管理書簽,請參閱第 186 頁上的「斷點管理器」。

要設置斷點,請執行下列操作:

1 將游標置於腳本中要停止執行的行上。

2 依次選擇「插入」 > 「切換斷點」,或者單擊「調試」工具欄上的「斷點」按

鈕。也可以按鍵盤上的 F9 鍵。將在腳本的左邊距顯示「斷點」符號 ( )。

3 要禁用斷點,請將游標置於包含斷點符號的行上,然後單擊「調試」工具欄上的

「啟用 / 禁用斷點」按鈕。「斷點」符號中將會顯示一個白點 ( )。禁用一個斷點

後,執行將在下一個斷點處暫停。再次單擊該按鈕可以啟用斷點。

要刪除斷點,請將游標置於包含斷點符號的行上,然後單擊「斷點」按鈕或者按

F9 鍵。

要運行包含斷點的腳本,請執行下列操作:

1 照常運行腳本。

到達斷點時, VuGen 將暫停腳本的執行。可以檢查腳本運行到斷點時的效果,

並進行必要的更改,然後從斷點處重新啟動腳本。

2 要繼續執行,請依次選擇「 www.hnne.com Vuser」 > 「運行」。

重新啟動後,腳本將繼續執行,直到遇到下一個斷點或腳本完成。

斷點管理器

可以使用斷點管理器來查看和管理斷點。通過斷點管理器您可以操縱腳本中的所

有斷點。

要打開斷點管理器,請選擇「編輯」 > 「斷點」。

要跳至腳本中的斷點處,請執行下列操作:

1 從列表中選擇一個斷點。

2 單擊「在腳本中突出顯示」。則將在腳本中突出顯示該行。

注意,每次只能突出顯示一個斷點。

管理斷點

可以通過斷點管理器添加、刪除、禁用斷點或者為斷點設置條件

要添加斷點,請執行下列操作:

1 單擊「添加」。將打開「添加斷點」對話框。

2 選擇「操作」,並指定要添加斷點的行號。

3 單擊「確定」。該斷點將被添加到斷點列表中。

要刪除斷點,請執行下列操作:

1 要刪除單個斷點,請選擇該斷點並單擊「刪除」。

2 要立即刪除所有斷點,請單擊「全部刪除」。

要啟用 / 禁用斷點,請執行下列操作:

1 要啟用斷點,請在「操作」列內選中操作的復選框。

2 要禁用斷點,請在「操作」列內清除操作的復選框。

通過斷點管理器您可以將斷點設置為在某些條件下暫停執行。

要為斷點設置條件,請執行下列操作:

1 要在特定的迭代次數後暫停運行腳本,請選擇「當迭代次數為下值時暫停」並輸

入所需的數字。

2 要在參數 X 具有特定值時暫停腳本,請選擇「當參數 X 值為下值時暫停」並輸

入所需的值。有關參數的詳細信息,請參閱第 8 章「使用 VuGen 參數」。

書簽

當使用腳本視圖時, VuGen 使您可以在腳本中各個不同的置放置書簽。您可以

在書簽之間導航來分析和調試代碼。

要創建書簽,請執行下列操作:

1 將游標置於所需的位置,然後按 Ctrl + F2 組合鍵。VuGen 會在腳本的左邊距放

置一個圖標。

2 要刪除書簽,請單擊要刪除的標簽,然後按 Ctrl + F2 組合鍵。VuGen 將刪除左

邊距處的圖標。

3 要在書簽之間移動,請執行下列操作:

要移動到下一個書簽,請按 F2 鍵。

要導航到上一個書簽,請按 Shift + F2 組合鍵

您還可以通過「編輯」 > 「書簽」菜單項來創建書簽和在書簽之間進行導航。

注意: 只能在當前操作中的書簽之間導航。要導航到另一操作中的書簽,請在左

窗格中選擇該操作然後按 F2 鍵。

「轉至」命令

要不使用書簽在腳本中進行導航,可以使用「轉至」命令。請依次選擇「編輯」

> 「轉至行」並指定腳本的行號。在樹視圖中也支持此種導航。

如果要檢查特定步驟或函數的「回放日誌」消息,請在 VuGen 中選擇該步驟,

然後依次選擇「編輯」 > 「轉至回放日誌中的步驟」。VuGen 將把游標放置在

「輸出」窗口的「回放日誌」選項卡中的相應步驟處。

6. 如何調試Linux shell腳本

  1. 通過echo(也可以使用類似於c語言語法的printf)輸出變數或者中間結果來判斷是否執行符合預期,類似於我們寫java程序時用system.out.printlen

  2. 使用「sh -x 腳本名稱」。"-x"選項可用來跟蹤腳本的執行,是調試shell腳本的強有力工具。「-x」選項使shell在執行腳本的過程中把它實際執行的每一個命令行顯示出
    來,並且在行首顯示一個"+"號。 "+"號後面顯示的是經過了變數替換之後的命令行的內容,有助於分析實際執行的是什麼命令。

熱點內容
生化危機5配置要求怎麼樣 發布:2025-07-14 15:38:56 瀏覽:300
蘋果電話為什麼打不開密碼 發布:2025-07-14 15:33:45 瀏覽:44
安卓如何取消短消息通知 發布:2025-07-14 15:30:54 瀏覽:372
輿情監測演算法 發布:2025-07-14 15:29:19 瀏覽:13
android搜索聯系人 發布:2025-07-14 15:27:34 瀏覽:332
省唄上傳學歷 發布:2025-07-14 15:21:54 瀏覽:633
linux伺服器tomcat 發布:2025-07-14 15:19:41 瀏覽:191
東風風神奕炫max怎麼配置 發布:2025-07-14 15:13:44 瀏覽:746
蘋果安卓不知道到底怎麼選 發布:2025-07-14 15:07:52 瀏覽:925
資料庫spl 發布:2025-07-14 15:05:22 瀏覽:436