microsoft / microsoft/vscode-debugadapter-node
ProtocolClient.send breaks async stacktraces
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 306
- Forks
- 90
- Merge moyen
- 8 h 36 min
- PR mergées (30 j)
- 3
Description
The following implementation:
https://github.com/microsoft/vscode-debugadapter-node/blob/1621133e71527d9d46438edb766eaf8e731b68f5/testSupport/src/protocolClient.ts#L69-L80
is not async itself and returns the promise immediately without awaiting it. Consequently, if the promise gets rejected with an error, the stack trace in the error does not include either send or its caller. This unnecessarily complicates debugging of e.g. async unit tests that await send() and receive an unexpected error response.
Instead, the callback for doSend should capture the raw response in a wrapper promise, and then send should await that promise and translate it to a throw.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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 dans testSupport/src/protocolClient.ts, au niveau de l’implémentation liée de ProtocolClient.send, et examinez comment elle appelle doSend. Suivez le chemin de la promesse rejetée et vérifiez que send attend un wrapper autour de la réponse brute avant de traduire l’erreur. C’est terminé lorsque les traces de pile des rejets asynchrones incluent send et son appelant.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- api
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100