PowerShell / PowerShell/PowerShell

Write-Debug ignores Debug switch in Foreach-Object Parallel block

Ouverte
#24,016 18 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs-Triage
Langage dominant
C#
Étoiles
55.5k
Forks
8.5k
Merge moyen
1 j 2 h
PR mergées (30 j)
88

Description

Prerequisites
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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.