Du bist nicht angemeldet.

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

1

04.07.2013, 09:43

Coredumps ausführen

Hallo,
Mich treibt gerade die Frage, ob man auf Linux core dumps machen kann die man direkt wieder ausführen kann? Sollte komplett komplikationsfrei laufen, also auch für komplexere programme.
Mein konkreter Anwendungszweck ist eine methode zu finden wie man sich quasi eigene speicherpunkte in einem Spiel "basteln" kann, wenn das Spiel checkpointbasierte speicherpunkte hat.
So was in der Art von Snapshots in VMs nur halt auf einen lokalen prozess festgelegt.

Ich wollte halt ungern per Hand den ganzen RAM mit ptrace kopieren und dann wiederum rekonstruieren. Und da es Prozess-snapshots in Form von Coredumps schon gibt dachte ich das sein ein guter Anhaltspunkt.

EDIT:
Weiteres Lesen hat mich auf diesen Artikel gebracht:
http://blogs.msdn.com/b/oldnewthing/arch…/20/116749.aspx

Klingt logisch, außerdem scheint der coredump mechanismus doch nicht geeignet zu sein (wieso auch immer?)
http://stackoverflow.com/questions/56977…r-on-linux-unix
Gibt aber anscheinend nichts, was auf 64bit Linux läuft.

Im Endeffekt wäre es wohl einfacher das Spiel in Runtime zu hacken und den Speichermechanismus dort zu triggern.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »meschi« (04.07.2013, 10:06)


liro

Fortgeschrittener

Beiträge: 180

Danksagungen: 36

  • Private Nachricht senden

2

04.07.2013, 10:33

Aber werden die ganzen externen Ressourcen(file-handles, sockets, usw) nach dem Wiederherstellen nicht ungültig?

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

3

04.07.2013, 11:42

Das ist genau das Problem.
Dedizierte Tools wie CryoPID scheinen das aber in vielen Fällen (bis auf Sockets) gut hinzubekommen. Man kann anscheinend die Filedeskriptoren wiederherstellen.

cedi

Profi

Beiträge: 702

Danksagungen: 78

  • Private Nachricht senden

4

23.09.2013, 12:43

Unter Windows kann man Prozessabbilder übern Taskmanager machen.
Und soweit ich weiß, kann man mit WinDbg auch Komplette Speicherabbilder vom RAM machen mit allen geladenen DLLs, etc.
Ich weiß, das bringt unter Linux nicht all zu viel...

Aber wenn das sogar unter Windows möglich ist, sollte es auf nem Linux System alle mal möglich sein, Prozessabbilder bzw Dumps zu erstellen...

meschi

Fortgeschrittener

  • »meschi« ist der Autor dieses Themas

Beiträge: 263

Registrierungsdatum: 23.08.2011

Wohnort: /

Danksagungen: 40

  • Private Nachricht senden

5

24.09.2013, 05:02


Unter Windows kann man Prozessabbilder übern Taskmanager machen.

Die Funktionalität die du beschreibst existiert ja in Linux. Ich will diese Abbilder optimalerweise wieder in den speicher laden und einen prozess daraus kreieren, also das Programm 'temporär einfrieren'.
Optimalerweise müsste sich dass dann auch auf verschiedenen pcs wieder starten lassen, aber das ist eigentlich egal.
Dieses Einfrieren/Suspenden und Wiederauftauen von einzelnen Prozessen gibt es afaik auch auf Windows nicht.

cedi

Profi

Beiträge: 702

Danksagungen: 78

  • Private Nachricht senden

6

24.09.2013, 09:36

unter Windows kann man die Coredumps mit WinDBG wieder ausführen / rekonstruieren

Ähnliche Themen

Verwendete Tags

core, core dump, custom, dump, linux, speicherpunkt