2017-03-07 1 views
0

Je suis à la recherche d'une solution pour sauver les données de la RAM. Mon programme s'est terminé avec une erreur et les données doivent toujours être dans la mémoire. Puis-je y accéder pour le sauvegarder d'une manière ou d'une autre?Comment faire pour sauver des données de la RAM?

Je travaille avec python et un Raspberry Pi 3. Mon programme récupère les données du web et les stocke dans un fichier csv. Toutes les données sont effacées, mais avant de l'écrire, le programme s'est écrasé. L'exécution du programme à nouveau n'est pas une option.

Je courais le programm en l'appelant à partir de la console, une erreur est apparue et la console est en attente pour mon entrée suivante:

[email protected]: python3 program.py 
"Error-message" 
[email protected]: 

intérieur program.py mes données ont été stockées dans une liste « data_list ».

Comment puis-je récupérer cette liste?

Montage:

l'exécution du programme n'est pas une option à nouveau, parce qu'il a fallu environ 12h pour terminer. Les données grattées seraient utilisées pour faire une estimation éclairée de l'exécution d'un second programme. Au moment où le grattage aurait fini cette supposition est sans importance.

+0

Le système d'exploitation a-t-il effectué une sauvegarde de base à la fin de votre programme? – paddy

+0

vous ne pouvez pas le faire réellement, pas de Python au moins. Un supposer que les données seraient encore en mémoire suppose trop. – Netwave

+2

Vous ne serez probablement pas en mesure de faire cela ... Pourquoi est-ce que le script est à nouveau exécuté (après l'avoir corrigé) "pas une option"? – Chris

Répondre

0

En théorie, vous pouvez commencer à lire les adresses mémoire jusqu'à ce que vous voyiez enfin quelque chose qui ressemble à une chaîne CSV. Mais ces données seraient très probablement fragmentées.

Vous ne pouviez pas faire cela en python, vous auriez besoin de C ou C++ et cela prendrait du temps pour écrire.

En pratique, au moment où je poste cette réponse, il y a de fortes chances que les pages de votre programme aient été remplacées par autre chose. En raison de l'isolation des processus, vous ne pourrez peut-être même pas lire toute la mémoire.