Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuz, Visual Studio Code (VS Code) ve C# uzantısını kullanarak derlenmiş bir PowerShell modülü için C# kaynak kodunda etkileşimli olarak hata ayıklamayı gösterir.
Visual Studio Code hata ayıklayıcısı hakkında bazı bilgi sahibi olduğunuz varsayılır.
Visual Studio Code'da Hata Ayıklama hakkında genel bir giriş için bkz. Visual Studio Code'da Hata Ayıklama.
PowerShell betik dosyalarında ve modüllerinde hata ayıklama örnekleri için bkz. uzaktan düzenleme ve hata ayıklama için Visual Studio Code kullanma.
Bu kılavuzda Taşınabilir Modül Yazma kılavuzundaki yönergeleri okuduğunuz ve izlediğiniz varsayılır.
Derleme görevi oluşturma
Hata ayıklama oturumu başlatmadan önce projenizi otomatik olarak oluşturun. Yeniden derleme, kodunuzun en son sürümünde hata ayıklamanızı sağlar.
Derleme görevini yapılandırma:
Komut PaletiVarsayılan Derleme Görevini Yapılandır komutunu çalıştırın.
yapılandırmak için bir görev seçin iletişim kutusunda şablondan tasks.json dosyası oluştur seçin.
Görev Şablonu Seç iletişim kutusunda .NET Core seçin.
Henüz yoksa yeni bir tasks.json dosyası oluşturulur.
Derleme görevinizi test etmek için:
Komut Paletiiçinde, Derleme Görevini Çalıştır komutunu çalıştırın.
çalıştırılacak derleme görevini seçin iletişim kutusunda derleme seçin.
Kilitlenen DLL dosyaları hakkında bilgi
Varsayılan olarak, başarılı bir derleme terminal bölmesinde çıkışı göstermez. Project dosyasının metin içeren bir çıktı görürseniz, tasks.json dosyasını düzenlemeniz gerekir. C# projesinin "${workspaceFolder}/myModule"olarak ifade edilen açık yolunu ekleyin. Bu örnekte, myModule proje klasörünün adıdır. Bu girdi, build listesindeki args girdisinin ardından aşağıdaki gibi geçmelidir:
{
"label": "build",
"command": "dotnet",
"type": "shell",
"args": [
"build",
"${workspaceFolder}/myModule",
// Ask dotnet build to generate full paths for file names.
"/property:GenerateFullPaths=true",
// Do not generate summary otherwise it leads to duplicate errors in Problems panel
"/consoleloggerparameters:NoSummary",
],
"group": "build",
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
Hata ayıklama sırasında modül DLL'niz VS Code terminalindeki PowerShell oturumuna aktarılır. DLL kilitlenir. Derleme görevini terminal oturumunu kapatmadan çalıştırdığınızda aşağıdaki ileti görüntülenir:
Could not copy "obj\Debug\netstandard2.0\myModule.dll" to "bin\Debug\netstandard2.0\myModule.dll"`.
Yeniden oluşturmadan önce terminal oturumları kapatılmalıdır.
Hata ayıklayıcıyı ayarlama
PowerShell cmdlet'inde hata ayıklamak için özel bir başlatma yapılandırması ayarlamanız gerekir. Bu yapılandırma şunları yapmak için kullanılır:
- Kaynak kodunuzu oluşturma
- Modülünüz yüklü olarak PowerShell'i başlatma
- PowerShell'i terminal bölmesinde açık bırakın
Terminal oturumunda cmdlet'inizi çağırdığınızda, hata ayıklayıcı kaynak kodunuzda ayarlanan kesme noktalarında durur.
PowerShell için launch.json yapılandırma
Visual Studio Code için C# uzantısını yükleme
Hata Ayıklama bölmesinde hata ayıklama yapılandırması ekleyin
Select environmentiletişim kutusunda.NET Core'ı seçinlaunch.jsondosyası düzenleyicide açılır. İmlecinizconfigurationsdizisindeykenconfigurationseçiciyi görürsünüz. Bu listeyi görmüyorsanız Yapılandırma Ekleseçin.Varsayılan hata ayıklama yapılandırması oluşturmak için .NET Core Konsol Uygulamasını başlatöğesini seçin:
name,program,argsveconsolealanlarını aşağıdaki gibi düzenleyin:{ "name": "PowerShell cmdlets: pwsh", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "pwsh", "args": [ "-NoExit", "-NoProfile", "-Command", "Import-Module ${workspaceFolder}/myModule/bin/Debug/netstandard2.0/myModule.dll", ], "cwd": "${workspaceFolder}", "stopAtEntry": false, "console": "integratedTerminal" }
program alanı, hata ayıklanan cmdlet'in çalıştırılabilmesi için pwsh başlatmak için kullanılır.
-NoExit bağımsız değişkeni, modül içeri aktarıldığında PowerShell oturumunun çıkış yapmasını engeller.
Import-Module bağımsız değişkenindeki yol, Taşınabilir Modül Yazma kılavuzu izlediğinizde varsayılan derleme çıkış yoludur. Bir modül bildirimi (.psd1 dosyası) oluşturduysanız bunun yerine bunun yolunu kullanmanız gerekir.
/ yol ayırıcısı Windows, Linux ve macOS üzerinde çalışır. Hata ayıklamak istediğiniz PowerShell komutlarını çalıştırmak için tümleşik terminali kullanmanız gerekir.
Not
Hata ayıklayıcı herhangi bir kesme noktasında durmazsa, Visual Studio Code Hata Ayıklama Konsolu'nda şu satırı arayın:
Loaded '/path/to/myModule.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Bunu görürseniz başlatma yapılandırmanıza "justMyCode": false ekleyin ("console": "integratedTerminal"ile aynı düzeyde).
Windows PowerShell için launch.json yapılandırma
Bu başlatma yapılandırması, cmdlet'lerinizi Windows PowerShell'de (powershell.exe) test etme amacıyla çalışır.
Aşağıdaki değişikliklerle ikinci bir başlatma yapılandırması oluşturun:
namePowerShell cmdlets: powershellolmalıdırtypeclrolmalıdırprogrampowershellolmalıdırŞu şekilde görünmelidir:
{ "name": "PowerShell cmdlets: powershell", "type": "clr", "request": "launch", "preLaunchTask": "build", "program": "powershell", "args": [ "-NoExit", "-NoProfile", "-Command", "Import-Module ${workspaceFolder}/myModule/bin/Debug/netstandard2.0/myModule.dll", ], "cwd": "${workspaceFolder}", "stopAtEntry": false, "console": "integratedTerminal" }
Hata ayıklama oturumunu başlatma
Artık her şey hata ayıklamaya başlamak için hazır.
Hata ayıklamak istediğiniz cmdlet'in kaynak koduna bir kesme noktası yerleştirin:
Kesme noktası, kenar boşluğunda kırmızı nokta olarak gösterilir
Hata Ayıklama görünümündeki yapılandırma açılan menüsünde ilgili PowerShell cmdlet'lerinin yapılandırmasının seçildiğinden emin olun:
Başlatma yapılandırması seçin
F5 tuşlarına basın veya Hata Ayıklamayı Başlat düğmesine tıklayın
Terminal bölmesine geçin ve cmdlet'inizi çağırın:
Yürütme kesme noktasında durur:
Kesme noktası'de yürütme durduruldu
Kaynak kodu adım adım ilerleyebilir, değişkenleri inceleyebilir ve çağrı yığınını inceleyebilirsiniz.
Hata ayıklamayı sonlandırmak için, hata ayıklama araç çubuğunda Durdur'e tıklayın veya Shift+F5tuşlarına basın. Hata ayıklamak için kullanılan kabuk, derlenmiş DLL dosyasında kilit çıkar ve serbest bırakır.
PowerShell