AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fremden Prozess wegen Speicherleck debuggen
Thema durchsuchen
Ansicht
Themen-Optionen

Fremden Prozess wegen Speicherleck debuggen

Ein Thema von Dalai · begonnen am 28. Mai 2012 · letzter Beitrag vom 29. Mai 2012
Antwort Antwort
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#1

Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 14:47
Hey Leute,

ich habe seit geraumer Zeit (seit mehr als einem Jahr) das Problem, dass explorer.exe auf meinem Server mit der Zeit immer größer wird . In welcher Dimension das passiert, kann man im angehängten Bild ablesen (stammt von einem mit Excel erstellten Diagramm); das Bild ist etwas zurechtgestutzt und auf das vergangene halbe Jahr beschränkt. Man sieht außerdem, dass das Problem nicht immer auftritt, denn zwischen Dezember und Februar hielt sich die Speicherfresserei in engen Grenzen.

Bislang habe ich fast alle Shell Extensions, die nicht von MS stammen, deregistriert und Programme abgeschaltet, die sich an den Explorer hängen (TClockEx). Aber auch dadurch habe ich noch keine richtige Idee, wer dafür verantwortlich sein könnte.

Lange Rede, kurzer Sinn: ich möchte der Problemursache (oder mindestens dem Auslöser) näherkommen und daher dachte ich daran, den Explorer zu debuggen. Nun habe ich aber keinerlei Ahnung, wie man das bei fremden Prozessen angeht. Wie und womit würdet ihr vorgehen?

MfG Dalai
Miniaturansicht angehängter Grafiken
dp_speicherleck_explorer.png  
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 14:50
Kommt ganz drauf an. Wenn es sich um die 32 bit Version handelt, könntest du OllyDbg benutzen, an den Explorer attachen und dann z.b. mal Breakpoints auf VirtualAlloc() und Konsorten setzen. Dies dürfte allerdings enorm oft aufgerufen werden und wird wohl sehr schwierig zu debuggen sein.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#3

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 15:36
Wenn es sich um die 32 bit Version handelt
Jep, ist ein normales XP 32 Bit mit SP3.

Zitat:
könntest du OllyDbg benutzen, an den Explorer attachen
Hab mir mal die Version 2.00 geladen, gestartet und attached, aber wie mache ich dies:
Zitat:
und dann z.b. mal Breakpoints auf VirtualAlloc() und Konsorten setzen.
? Ich hab leider nicht wirklich Plan von dieser Materie, deshalb wäre ich dankbar, wenn man mir ein paar Eckpfeiler gibt, an denen ich mich orientieren kann.

MfG Dalai
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 15:50
Wenn du nicht gerade Zeit damit verbringen willst, etwas neues zu lernen, würde ich den PC einfach neu aufsetzen.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#5

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 16:08
Das Problem besteht seit Anfang an, also seit das XP im November 2010 installiert wurde, nur fiel das nicht sofort auf, weil das vorher benutzte System mit Win2k das Verhalten nicht zeigte. Übrigens hat mein Bruder auf seinem ebenfalls neu (im Februar 2011) aufgesetzten System (mit nochmals anderer Hardware) dasselbe Problem. Dazu kommt noch, dass das System ein Server ist, der muss also laufen und verfügbar sein; insofern kann ich den nicht "mal eben" neu aufsetzen.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 16:46
Debugging mit Olly ist sone Sache für sich. Wenn du noch nie sowas in der Art gemacht hast, würde ich Furtbichler hier zustimmen, dass es sich für dich wohl nicht lohnt sich da einzuarbeiten.

Neben dem Umgang mit Olly musst du dich für so eine umfangreiche Analyse noch extrem gut mit Assembler und den Betriebssystemfunktionen auskennen.

Als Workaround würde ich mir eventuell ein kleines Tool schreiben, was den Explorer beispielsweise jeden Monat oder besser noch jeden Tag mal restartet. Gegebenenfalls könntest du den Explorer Prozess auch dauerhaft terminieren. Der sollte auf einem Server System ja nicht wirklich benötigt werden.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#7

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 18:10
Mir ist egal, ob mich Debugging weiterbringt oder irgendetwas anderes. Ich bin nur eben interessiert daran, mindestens den Auslöser - wenn nicht gar die Ursache - zu finden. Wie das passiert, ist mir egal - nur überfordern sollte es mich nicht.

Ich hab auch schon mit Process Explorer rumgespielt und auch mit Process Monitor und in ersterem z.B. festgestellt, dass das Page Fault Delta relativ hoch ist und außerdem die CPU-Last durch den Explorer ebenfalls deutlich höher ist, wenn er auch Speicher frisst. "Deutlich" heißt in dem Fall ~5 Prozent mehr, was sich im - ebenfalls auf diesem Server laufenden - Munin relativ gut ablesen lässt.

Gegebenenfalls könntest du den Explorer Prozess auch dauerhaft terminieren. Der sollte auf einem Server System ja nicht wirklich benötigt werden.
Doch, wird er. Der Server bietet nicht nur die üblichen Headless-Funktionen (Fileserver, Jabber-Server, Patch-Server, FTP-Server) sondern wird auch zum Download z.B. von TV-Sendungen via FlashGet oder Torrent benutzt, braucht also in jedem Fall eine Oberfläche mit Taskleiste, Startmenü usw.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.346 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 28. Mai 2012, 23:08
Probleme dieser Art hat bei XP zum Beispiel der Vorschaugenerator bei unvollständigen oder beschädigten Videodateien gemacht. Diesen kannst du entweder in den Shell Extensions herausnehmen oder die shmedia.dll ganz mit
Code:
regsvr32 /u shmedia.dll
deinstallieren.

Windows XP ist aber auch nicht als Serverbetriebssystem für den 24h Betrieb gedacht...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#9

AW: Fremden Prozess wegen Speicherleck debuggen

  Alt 29. Mai 2012, 00:59
Probleme dieser Art hat bei XP zum Beispiel der Vorschaugenerator bei unvollständigen oder beschädigten Videodateien gemacht.
Das mag auf den Explorer, also den Teil, der als Dateibrowser (ich sage absichtlich nicht Dateimanager) dient, zutreffen. Aber so etwas wie dieses Spielzeug nutze ich nicht, ich arbeite mit Total Commander.

Insofern glaube ich nicht, dass dies etwas bringt
Zitat:
Diesen kannst du entweder in den Shell Extensions herausnehmen oder die shmedia.dll ganz mit
Code:
regsvr32 /u shmedia.dll
deinstallieren.
aber ich werde es dennoch mal ausprobieren, denn vielleicht nutzt irgendein Total Commander-Plugin (oder der TC selbst) Funktionen, die sich in shmedia.dll befinden.

Zitat:
Windows XP ist aber auch nicht als Serverbetriebssystem für den 24h Betrieb gedacht...
Das mag sein, spielt aber für den Umfang des offensichtlichen Speicherlecks keine Rolle. Davon abgesehen habe ich nie angenommen, der Fehler läge in einem Teil des OS sondern natürlich in der sonst installierten Software. Nur ist eben die Frage, wo genau. Außerdem wüsste ich nicht, für welche Funktionalität ich Hunderte Euro ausgeben sollte, nur um ein echtes Server OS zu haben, das durch Installation der problematischen Software dieselben Probleme zeigt. Insofern ist dieses Argument keines, was eine Rolle spielt. Ein Speicherleck dieses Ausmaßes darf nicht da sein, Punkt.

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz