FIX: Uitzondering als meerdere threads de C runtime-"atexit"-functie op hetzelfde moment in Windows Embedded Compact 7

Inleiding

Dit artikel beschrijft een probleem waarbij eenn uitzondering doet zich voor wanneer de C runtime-"atexit"-functie in Windows Embedded Compact 7 tegelijkertijd meerdere threads. Er is een update beschikbaar om dit probleem te verhelpen. Voordat u deze update installeert, moeten alle eerder uitgebrachte updates voor dit product zijn geïnstalleerd.

Symptomen

Als meerdere threads de C runtime- atexit -functie in Windows Embedded Compact 7 tegelijkertijd, treedt er een uitzondering. De uitzondering doet zich voor wanneer de code die de functie atexit aanroept geen serienummer of wanneer de atexit functie wordt ingevoegd door de compiler.

Oorzaak

Het probleem treedt op omdat de functie C Run time atexit niet thread-safe. Daarom is de geheugen-tabel waarin de functie beschadigd.

Oplossing

Informatie over de software-update

Een ondersteunde software-update is nu beschikbaar bij Microsoft als Compact 7 maandelijkse Update van Windows Embedded (juni 2017).

Opmerking Deze Windows ingesloten Compact 7 maandelijkse Update is beschikbaar voor downloaden vanaf de volgende website van Microsoft Download Center:

Windows Embedded Compact 7 Updates

Vereisten

Met deze update wordt alleen ondersteund als ook alle eerder uitgebrachte updates voor dit product zijn geïnstalleerd.

Opnieuw opstarten

Nadat u deze update hebt toegepast, moet u het hele platform leegmaken en opnieuw opbouwen uitvoeren. Gebruik hiervoor een van de volgende methoden:

  • Klik op Schone oplossingin het menu maken en klik op Oplossing bouwen.

  • Klik op het menu BuildOplossing bouwen.

U beschikt niet over de computer opnieuw opstarten nadat u deze update hebt toegepast.

Informatie over het vervangen van updates

Deze update vervangt geen andere updates.

Bestandsinformatie

Als dit een volledige wave-release is. Bijna alle binaire bestanden worden beïnvloed door deze versie.

De volgende bronbestanden worden beïnvloed door deze versie::

private\winceos\COREOS\core\corelibc\crtw32\startup\cexit.cpp
private\winceos\COREOS\core\corelibc\crtw32\startup\onexit.c

Meer informatie

In een multithreaded omgeving is tabellen van de functie van de atexit beschadigd door een aanroep van atexit door niet-thread veiligheid. Dit kan leiden tot beschadiging van het geheugen en uitzonderingen. De functie atexit wordt gebruikt voor het registreren van een routine die wordt uitgevoerd wanneer het programma wordt afgesloten of een DLL-bestand wordt verwijderd. De fout in de thread veiligheid kan leiden tot wijziging van deze afsluitroutine en beschadiging van de exit function-tabellen.

Referenties

Meer informatie over de terminologie die door Microsoft wordt gebruikt om software-updates te beschrijven.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de vertaalkwaliteit?

Wat heeft uw ervaring beïnvloed?

Hebt u aanvullende feedback? (Optioneel)

Bedankt voor uw feedback.

×