2010-06-14 35 views
1

J'ai besoin de "lumière" pour obtenir une solution. Probablement, il y a des tonnes de choses qui causent ce problème, mais peut-être que quelqu'un pourrait m'aider.Erreur d'application: adresse de panne 0x00012afb (Expert)

Scénario: un serveur Windows exécutant 24/7 une base de données PostgreSQL et d'autres applications serveur (pour traiter des tâches sur une base de données, etc ...). Il existe différents scénarios de serveurs (~ 30), avec des versions matérielles et Windows différentes (XP SP3/WinServer, etc ... tous basés sur NT). Toutes les applications ont été écrites en Delphi7 et lient les DLL (en D7 également).

Après quelques jours (parfois une semaine, parfois quelques mois), Windows commence à agir bizarrement, comme ne pas ouvrir le menu Démarrer, certains boutons manquent dans les boîtes de dialogue. Et bientôt certaines applications ne pas ouvrir, soulever un événement sur EventViewer:

Faulting application x, version y, faulting module kernel32.dll, version 5.1.2600.5781, fault address 0x00012afb 

En attendant, d'autres applications ouvertes fines, comme le bloc-notes, iexplore, etc ... mais certains de mes applications ne sont pas, avec seulement journal des événements décrit ci-dessus. Mais si nous ne redémarrons pas le système, dans quelques jours, même cmd.exe s'arrête, (et toutes les autres applications) avec la même erreur sur eventlog.

J'ai essayé de trouver «quoi» peut causer cela, mais sans succès. Donc, et tous les conseils seront les bienvenus.

Merci d'avance.

+0

Cela ne va pas aider, mais 0x00012afb semble être au point d'entrée 666 (fonction RaiseException) dans kerner32.dll. – Humberto

+0

Cela peut aider, certains programmeurs ont le mauvais habbit de ne pas attraper les exceptions par référence. Si le thread manque de mémoire, l'exception peut provoquer l'exitus du processus entier car l'exception elle-même ne peut pas continuer et l'exécution C++ est impossible à récupérer. Peut-être un indice sur la mauvaise gestion des exceptions. http://www.goingware.com/tips/parameters/exceptions.html – jdehaan

+0

En ajoutant à mon commentaire précédent, ce journal d'erreurs est insuffisant - si le journal contient la pile entière au moment de la faute, c'est mieux. Tel qu'il est, l'événement dit simplement: "Application x, version y a jeté une erreur". – Humberto

Répondre

2

Je pense que vous n'avez plus de poignées de ressources (poignées de fenêtre). Vous pouvez vérifier cela en regardant les propriétés du système dans Sysinternals Process Explorer (un meilleur gestionnaire de tâches). Je pense que même le gestionnaire de tâches par défaut peut aider à afficher un nombre de handles. Ensuite, vous pouvez identifier quelle application cause le problème. Une fois que vous connaissez l'application qui fuit et que c'est la vôtre, vous pouvez utiliser Rational purify ou Boundschecker pour explorer le problème. Si vous n'avez pas d'argent pour ces outils, vous devrez réduire le problème manuellement en désactivant certaines fonctionnalités par exemple et voir si le nombre de handles augmente encore ...

Vous ne savez pas si c'est le problème que vous rencontrez Peut-être que c'est complètement indépendant. Mais facile à vérifier. La piste est que certaines applications volent des ressources globales que vous rencontrez des problèmes avec d'autres applications. Les applications comme le bloc-notes n'utilisent pas beaucoup de ressources et semblent fonctionner correctement, les applications lourdes sont plus susceptibles de montrer le problème.

Espérons que ça aide.