πŸš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5606

Re: Debugger Visual C++

#5606
From: Sven Callewaert
Date: Wed, 12 Mar 2003 16:04
87 lines
4818 bytes
"Christophe" <chill@mine.be> wrote in message
news:KtIba.8637$Vq.718@afrodite.telenet-ops.be...
>
> "Roel Schroeven" <ed5wcylnn2001@sneakemail.com> schreef in bericht
> news:7gIba.8627$Vq.742@afrodite.telenet-ops.be...
> > Christophe wrote:
> > > "Roel Schroeven" <ed5wcylnn2001@sneakemail.com> schreef in bericht
> > > news:lIHba.8594$Vq.784@afrodite.telenet-ops.be...
> > >
> > >>Christophe wrote:
> > >>
> > >>
> > >>>DE fout die ik krijg is de volgende:
> > >>>
> > >>>"Debug assertion failed"
> > >>>File wincore.cpp
> > >>>line 884
> > >>>
> > >>>Press retry to debug...
> > >>>
> > >>>* Kunt u daar iets uithalen??
> > >>>* Als ik debug, kan ik dan de fout eruit halen? Of het laten doen?
> > >>>    Want die debugger geeft me PC-assembler code denk ik
> > >>
> > >>Ik vrees dat je best de tijd neemt om de debugger goed te leren
kennen.
> > >>In een geval als dit, stopt de debugger op de plaats (ongeveer) waar
de
> > >>fout opgetreden is; als dat gebeurt in bijv. een libraryfunctie waar
de
> > >>source code niet van voorhanden is, zal hij inderdaad de assemblercode
> > >>laten zien bij gebrek aan beter. Je kan dan via de call stack naar je
> > >>eigen functie gaan zien die die library functie aanroept.
> > >>
> > >>Maar 't is niet evident, en met verschillende threads wordt het er
> > >>alleen maar ingewikkelder op.
> > >>
> > >>
> > >>>Dit is de functie die de fout genereert, misschien vindt u iets?
> > >>
> > >>Ziet er op het eerste zicht goed uit, maar hou er rekening mee dat
> > >>multithreading nogal tricky kan zijn. Is het bijvoorbeeld toegestaan
> > >>MFC-code aan te roepen van in je ChatThread? Of alleen van in de main
> > >>thread?
> > >
> > >
> > > in je threadfunctie zeg je
> > > CChatDlg*  dlg = (CChatDlg*) p;
> > > // je kan nu op dlg verschillende MFC-code laten uitvoeren:
> > > dlg->m_sPoort.SendData("A",1);
> > >
> > > Dus ik denk wel dat het mag, het compileert alleszinds..
> >
> > Blijkbaar is het inderdaad toegestaan, dat zal het dus niet zijn.
> > Maar nogmaals, dat het compileert wil alleen zeggen dat je programma
> > syntactisch juist is; er kunnen nog hopen runtime bugs in zitten.
> >
> > Verder kan ik je helaas niet helpen. Zonder de volledige code kan ik het
> > niet zien, maar ik heb sowieso niet de tijd mij daarin te storten.
> >
> > --
> > "Codito ergo sum"
> > Roel Schroeven
> >
>
> Ik heb de release build gebruikt, en weg assertion errors...
> bedankt!
>
>
Als je een release versie compileert neemt de compiler de assert statements
niet op in de exe, daarom zie je de warnings dan ook niet, maar dat neemt
niet weg dat er nog steeds wat mis is met je applicatie. Asserts laten staan
in code geeft je gegarandeerd vroeg of laat een crash.
Het antwoord op jouw geval staat op regel 886 van wincore.cpp. Feit is dat
je een CWnd (ie. CChatDlg) uitwisselt met een andere thread en dat is niet
threadsafe. Als je vanuit beide threads eenzelfde memberobject verandert kan
dat
onvoorspelbaar gedrag of een crash veroorzaken. Dat kan opgelost worden met
locking (via mutexen en zo), maar dat is reeds advanced programming. Als je
persοΏ½ een CWnd object wilt uitwisselen moet je dat doen via de hwnd handle
en geen grote memberobjecten gebruiken (vb. int mag wel, CString is al
gevaarlijk).
In jouw geval kan je misschien werken door messages van de ene naar de
andere thread te zenden...

Sven
Technical Details
Message-ID: <3e6f5a28$0$83859$ba620e4c@news.skynet.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.multikabel.nl!skynet.be!skynet.be!louie!not-for-mail
References: <JbGba.8496$Vq.687@afrodite.telenet-ops.be> <HpGba.8510$Vq.840@afrodite.telenet-ops.be> <tXGba.8544$Vq.382@afrodite.telenet-ops.be> <zgHba.8560$Vq.705@afrodite.telenet-ops.be> <tkHba.8569$Vq.730@afrodite.telenet-ops.be> <sxHba.8583$Vq.798@afrodite.telenet-ops.be> <lIHba.8594$Vq.784@afrodite.telenet-ops.be> <f7Iba.8618$Vq.829@afrodite.telenet-ops.be> <7gIba.8627$Vq.742@afrodite.telenet-ops.be> <KtIba.8637$Vq.718@afrodite.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,295e341629919ff3
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-03-12 08:02:58 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed.multikabel.nl!skynet.be!skynet.be!louie!not-for-mail
From: "Sven Callewaert" <scallewaert@artilium.com>
Newsgroups: be.comp.programming
References: <JbGba.8496$Vq.687@afrodite.telenet-ops.be> <HpGba.8510$Vq.840@afrodite.telenet-ops.be> <tXGba.8544$Vq.382@afrodite.telenet-ops.be> <zgHba.8560$Vq.705@afrodite.telenet-ops.be> <tkHba.8569$Vq.730@afrodite.telenet-ops.be> <sxHba.8583$Vq.798@afrodite.telenet-ops.be> <lIHba.8594$Vq.784@afrodite.telenet-ops.be> <f7Iba.8618$Vq.829@afrodite.telenet-ops.be> <7gIba.8627$Vq.742@afrodite.telenet-ops.be> <KtIba.8637$Vq.718@afrodite.telenet-ops.be>
Subject: Re: Debugger Visual C++
Date: Wed, 12 Mar 2003 17:04:03 +0100
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Lines: 89
Message-ID: <3e6f5a28$0$83859$ba620e4c@news.skynet.be>
Organization: -= Skynet Usenet Service =-
NNTP-Posting-Host: 217.136.171.122
X-Trace: 1047484968 reader0.news.skynet.be 83859 217.136.171.122:58244
X-Complaints-To: abuse@skynet.be