erreurs lors du run d'exe - C++ - Programmation
Marsh Posté le 25-04-2007 à 16:41:24
stead a écrit : Bonjour tout le monde. |
C a doit pourtant pas etrte bien difficile de debugger ce probleme pour des gens qui s'y connaissent en visual 2003. Et je suis sur qu'il y en a . Alors à votre bon coeur
Marsh Posté le 25-04-2007 à 16:48:45
Très franchement, non y'a aucun moyen de trouver l'erreur sans avoir (à la limite) le source ASM avec le point d'arrêt en question.
Commence par compiler en mode debug afin de laisser les symbols dans ton EXE, t'aura au moins le nom de la fonction qui plante ainsi que la ligne dans ton programme...
(et certainement un message d'erreur plus clair)
Marsh Posté le 26-04-2007 à 11:15:35
MagicBuzz a écrit : Très franchement, non y'a aucun moyen de trouver l'erreur sans avoir (à la limite) le source ASM avec le point d'arrêt en question. |
Bonjour,
au niveau du disassembly , il y a une fleche jaune qui pointe sur l'adresse ox7c901230 avec int 3 , j'ai lu qu'il fallait remplacer le 'int 3' par 'nop' parce qu'apparement c'est un breakpoint physique. Le soucis , c'est que le disassembly est en read only. Donc je ne sais pas comment le changer pour savoir si ca marche effectivement ou pas ? Ce que je viens de tester et qui est tres etonnant , c'est qu'avec un projet visual vierge ( c'est a dire , avec le "hello world" ) ca m'affiche ca :
'test1.exe': Loaded 'C:\visual C++\test1\Debug\test1.exe', Symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\mscoree.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\user32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorwks.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\msvcr71.dll', Symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\fusion.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorlib.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\assembly\NativeImages1_v1.1.4322\mscorlib\1.0.5000.0__b77a5c561934e089_2dcaeaaf\mscorlib.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\diasymreader.dll', No symbols loaded.
'DefaultDomain': Loaded 'c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll', No symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorsn.dll', No symbols loaded.
'test1': Loaded 'c:\visual C++\test1\Debug\test1.exe', Symbols loaded.
'test1.exe': Loaded 'C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorjit.dll', No symbols loaded.
J'en deduis sans trop de difficulté que le probleme que je rencontrais avec la compilation du Darwin streaming serveur ne provient pas du code source Darwin , mais du compilateur lui meme. Peut etre est ce un bug de Visual 2003
En tous les cas , merci par avance pour toute aide quelle qu'elle soit
Marsh Posté le 26-04-2007 à 16:17:45
là je pige pas trop... en débug t'as pas d'erreur là si ?
Marsh Posté le 26-04-2007 à 16:22:40
Ce sera plus facile d'aller en parler avec les auteurs du soft...
La il faudrait que tu comprennes mieux ce que tu fais.
Poser un point d'arrêt en amont, et checker les valeurs au moment du plantage.
Ca demande une analyse plus poussées, c'est pas la connaissance de vs2003 qui va y changer quoi que ce soit.
Si tu as jamais programmé de ta vie dis le nous ca ira plus vite.
Marsh Posté le 27-04-2007 à 10:42:07
_darkalt3_ a écrit : Ce sera plus facile d'aller en parler avec les auteurs du soft... |
Faisons comme si je n'avais jamais programmé, peux tu alors Darkalt3 me donner les etapes systematiques à suivre quand on a un programme qui plante et qui genere des erreurs.comment aller chercher ces erreurs , les localiser ...
Et comment faire quand c'est pas le programme compilé qui génére des erreurs mais quand c'est l'exe ,généré a partir d'un code source , qui génère des erreurs.
Merci
Marsh Posté le 27-04-2007 à 10:51:31
stead a écrit : Faisons comme si je n'avais jamais programmé, peux tu alors Darkalt3 me donner les etapes systematiques à suivre quand on a un programme qui plante et qui genere des erreurs.comment aller chercher ces erreurs , les localiser ... |
Analyser, lire la doc, debugger.
stead a écrit : Et comment faire quand c'est pas le programme compilé qui génére des erreurs mais quand c'est l'exe ,généré a partir d'un code source , qui génère des erreurs. |
C'est la même chose.
Marsh Posté le 27-04-2007 à 10:52:27
1/ Quand un programme plante, même quand on est programmeur, on évite de le réparer soit-même : on contacte l'auteur. La plupart du temps, il connait déjà leproblème, l'a déjà résolu, ou offre la possibilité de le corriger.*
2/ La programmation, ça ne s'improvise pas, et le débug encore moins : pour résoudre un problème, il ne s'agit pas seulement de trouver où ça plante, mais surtout de trouver pourquoi, trouver comment corriger, et vérifier que ça ne fait pas tout péter ailleurs : ta voiture n'avance pas, tu peux mettre de la nytro dans le moteur, mais là elle va plus rouler longtemps : ben là c'est pareil, si c'est remplacer un problème par un autre, ça sert à rien.
3/ La compilation "soit-même" d'un programme peut effectivement poser des problèmes, simplement parcequ'on n'utilise pas le bon compilo, parcequ'il manque des libs non obligatoires, etc. Le mieux dans ce cas, c'est à nouveau de contacter l'auteur afin de lui demander s'il peut fournir une version prête à l'emploi plutôt que les sources.
* Pas plus tard qu'il y a 5 minutes :
Citation : |
=> Si je devais débuguer à la main des exe de plus de 10 Mo à chaque fois qu'on un a bug, je serais déjà mort
Marsh Posté le 27-04-2007 à 11:20:50
MagicBuzz a écrit : 1/ Quand un programme plante, même quand on est programmeur, on évite de le réparer soit-même : on contacte l'auteur. La plupart du temps, il connait déjà leproblème, l'a déjà résolu, ou offre la possibilité de le corriger.*
|
Merci Magicbuzz de prendre le temps de répondre à mes questions
J'ai deja les exe du serveur qui tournent, mais moi , je ne dois pas utiliser le serveur , mais ajouter de nouvelles fonctionnalités à ce serveur , c'est la raison pour laquelle je dois taper dans le code et que je parte des codes sources . Donc je dois d'abord avoir un code source qui ne me genere pas d'erreurs et ensuite ajouter mon propre code. Voila , c'est pour ca que je m'acharne à debugger toutes les erreurs qui apparaissent.
Marsh Posté le 27-04-2007 à 11:21:38
avoir un coup de main de développeur de l'appli te sera alors sans nul doute d'une grande aide.
Marsh Posté le 25-04-2007 à 15:30:24
Bonjour tout le monde.
Je dois compiler et utiliser Darwin streaming server d'apple. Tout cela s'inscrit das le cadre de quelque chose de plus grand que je vous préciserai plus tard , si nécessaire. Pour ce qui est de la compilation, il n'y a pas de probleme, j'obtiens les executables. Par contre, lorsque j'ouvre l'interface de Darwin Streaming Server ( DSS ) c'est a dire une page html avec comme url : http://localhost:1220/ , que je met un .mp4 dans la playlist et que j'appuie sur Play , je recois un message d'erreur .
L'erreur es la suivante:
the exception breakpoint
a breakpoint has been reached
(0x80000003) occured in the application at location
0x7c901230
Et quand je lance visual c++ pour connaitre d'ou vient le probleme, il me dis qe ca vient de playbroadcaster.exe
avec les erruers suivantes:
'PlaylistBroadcaster.exe': Loaded 'C:\Program Files\Darwin Streaming Server\PlaylistBroadcaster.exe', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\user32.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\mswsock.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\hnetcfg.dll', No symbols loaded.
'PlaylistBroadcaster.exe': Loaded 'C:\WINDOWS\system32\wshtcpip.dll', No symbols loaded.
The thread 'Win32 Thread' (0x94c) has exited with code 0 (0x0).
Unhandled exception at 0x7c901230 in PlaylistBroadcaster.exe: User breakpoint.
The program '[3836] PlaylistBroadcaster.exe: Native' has exited with code 0 (0x0).
Voila ! Au fait , je suis sous windows xp pro et je compile avec Visual studio .net 2003.
Je remercie toute personne qui apportera sa pierre à l'ouvrage. Toute information , piste ou autre est la bienvenue.