PowerShell / PowerShell/PowerShell
Write-Debug ignores Debug switch in Foreach-Object Parallel block
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 55.5k
- Forks
- 8.5k
- Merge moyen
- 1 j 2 h
- PR mergées (30 j)
- 88
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
Steps to reproduce
Run this script with two identical blocks of code except for the "Parallel" option.
Write-Host 'Test 1 - non-parallel'
$DebugPreference = 'SilentlyContinue'
1..2 |
ForEach-Object {
Write-Debug "Item $_`: Write-Debug"
Write-Debug "Item $_`: Write-Debug -Debug" -Debug
Write-Debug "Item $_`: Write-Debug -Debug:`$true" -Debug:$true
Write-Debug "Item $_`: Write-Debug -Debug:`$false" -Debug:$false
}
Write-Host 'Test 2 - parallel'
$DebugPreference = 'SilentlyContinue'
1..2 |
ForEach-Object -Parallel {
Write-Debug "Item $_`: Write-Debug"
Write-Debug "Item $_`: Write-Debug -Debug" -Debug
Write-Debug "Item $_`: Write-Debug -Debug:`$true" -Debug:$true
Write-Debug "Item $_`: Write-Debug -Debug:`$false" -Debug:$false
}
Write-Host 'Done'
Expected behavior
Test 1 - non-parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Test 2 - parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Done
Actual behavior
Test 1 - non-parallel
DEBUG: Item 1: Write-Debug -Debug
DEBUG: Item 1: Write-Debug -Debug:$true
DEBUG: Item 2: Write-Debug -Debug
DEBUG: Item 2: Write-Debug -Debug:$true
Test 2 - parallel
Done
Error details
NA
Environment data
Name Value
---- -----
PSVersion 7.4.3
PSEdition Core
GitCommitId 7.4.3
OS Microsoft Windows 10.0.19045
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Visuals
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par exécuter le script de reproduction fourni et comparez le comportement de Write-Debug dans des blocs ordinaires et des blocs ForEach-Object -Parallel. Suivez les points d’entrée de ForEach-Object -Parallel et de Write-Debug afin de déterminer pourquoi le commutateur Debug est ignoré, puis vérifiez que le bloc parallèle produit les lignes de débogage attendues tout en respectant DebugPreference.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- shell
- Domaine
- cli
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100