wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :668

Membres en ligne : 0
Invités en ligne : 9
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Comment debugger un code sous wxWidgets?
Conversation (Résolue) : Comment debugger un code sous wxWidgets?
05-09-2011 11:54:22  Comment debugger un code sous wxWidgets? #1
berger (Nouveau membre)
Inscrit le : 21-05-2008
Messages: 6
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

Je précise ma question : mon programme se plante dans un wxPanel lors d'un changement d'onglet.
Le debugger me donne une pile qui me semble incomplète du type
>    wxmsw292ud_core_vc_custom.dll!wxPanel::MSWGetCustomBgBrush()  Ligne 64 + 0x12 octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWindow::MSWGetBgBrushForChild(HDC__ * hDC=0x64011315, wxWindow * child=0x02196ed0)  Ligne 4917 + 0x12 octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWindow::MSWGetBgBrush(HDC__ * hDC=0x64011315)  Ligne 4961 + 0x1a octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWindow::DoEraseBackground(HDC__ * hDC=0x64011315)  Ligne 4898 + 0xc octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWindow::HandleEraseBkgnd(HDC__ * hdc=0x64011315)  Ligne 4846 + 0xc octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWindow::MSWWindowProc(unsigned int message=20, unsigned int wParam=1677792021, long lParam=0)  Ligne 3302 + 0xc octets    C++
    wxmsw292ud_core_vc_custom.dll!wxWndProc(HWND__ * hWnd=0x000b0a8e, unsigned int message=20, unsigned int wParam=1677792021, long lParam=0)  Ligne 2695 + 0x1e octets    C++
    user32.dll!7e398734()    
    [Les frames ci-dessous sont peut-être incorrects et/ou manquants, aucun symbole chargé pour user32.dll]   
    user32.dll!7e398816()    
    user32.dll!7e3a8ea0()    
    user32.dll!7e3a8eec()    
    ntdll.dll!7c91e473()    
    user32.dll!7e3aaf62()    
    wxmsw292ud_core_vc_custom.dll!wxWindow::Show(bool show=true)  Ligne 653 + 0x18 octets    C++
    0f00147d()   

Ce programme ne plantait pas avant un léger changement, passage de wxWidgets 2.9.1 à 2.9.2 et plpplot 5.9.7 à 5.9.8. Il y a un problème dans les évenements et je ne m'en sort pas.


Si quelqu'un à une idéee je le remercie d'avance de m'en faire part.
----------
Je n'ai pas trouvé comment debugger mais je pense avoir trouver une cause possible.
Je fais l'initialisation du wxPanel avec quelque chose du genre

wxPanel* panel = new wxPanel( ongletPalette ,0,0,400,400);

en debugging j'arrive sur ce code

#ifdef WXWIN_COMPATIBILITY_2_8
    wxDEPRECATED_CONSTRUCTOR(
    wxPanel(wxWindow *parent,
            int x, int y, int width, int height,
            long style = wxTAB_TRAVERSAL | wxNO_BORDER,
            const wxString& name = wxPanelNameStr)
    {
        Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), style, name);
    }
    ) // PRECISEMENT SUR CETTE LIGNE avec VC++2008
#endif // WXWIN_COMPATIBILITY_2_8

A la sortie je constate que panel->m_backgroundBrush     vaut 0xcdcdcdcd   

Donc évidement un bug pour plus tard.

Je dois dire que lors de la compilation j'ai un warning
warning C4996: 'wxPanel::wxPanel': a été déclaré désapprouvé
1>        c:\lib\wxwidgets-2.9.2\include\wx\msw\panel.h(52) : voir la déclaration de 'wxPanel::wxPanel'

et que j'ai mis dans setup.h
WXWIN_COMPATIBILITY_2_8 0

J'ai compilé l'exemple notebook et tout se passe bien.
Je ne comprends pas!

Dernière modification par berger (06-09-2011 09:49:08)

06-09-2011 13:25:04  Re: Comment debugger un code sous wxWidgets? #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Salut.

Essayes d'utiliser le constructeur "classique" :

Code wxWidgets:

 
wxPanel* panel = new wxPanel(ongletPalette , -1, wxPoint(0, 0), wxSize(400, 400));

Il n'y a pas de raison pour que ça ne marche pas.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
06-09-2011 16:49:17  Re: Comment debugger un code sous wxWidgets? #3
berger (Nouveau membre)
Inscrit le : 21-05-2008
Messages: 6
Snippets: 0
Tutoriels: 0
Hors ligne
Merci cela marche!
06-09-2011 18:01:36  Re: Comment debugger un code sous wxWidgets? #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Bonne nouvelle.

Je te laisse le soin de marquer le topic comme résolu (lien "Accepter" à droite du titre du post ayant résolu le problème).

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Comment debugger un code sous wxWidgets?