2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-22 01:51:51 +00:00
criu/coredump/coredump
समीर सिंह Sameer Singh da7f5b75f4 coredump: enable coredump generation on arm
Add relevant elf header constants and notes for the arm platform
to enable coredump generation.

Signed-off-by: समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
2025-03-03 13:58:50 +00:00

56 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python3
import platform
import argparse
import os
import sys
import criu_coredump
PLATFORMS = ["aarch64", "armv7l", "x86_64"]
def coredump(opts):
generator = criu_coredump.coredump_generator()
cores = generator(os.path.realpath(opts['in']))
for pid in cores:
if opts['pid'] and pid != opts['pid']:
continue
with open(os.path.realpath(opts['out']) + "/core." + str(pid), 'wb+') as f:
cores[pid].write(f)
def main():
desc = 'CRIU core dump'
parser = argparse.ArgumentParser(description=desc,
formatter_class=argparse.RawTextHelpFormatter)
parser.add_argument('-i',
'--in',
default='.',
help='directory where to get images from')
parser.add_argument('-p',
'--pid',
type=int,
help='generate coredump for specific pid(all pids py default)')
parser.add_argument('-o',
'--out',
default='.',
help='directory to write coredumps to')
opts = vars(parser.parse_args())
if platform.machine() not in PLATFORMS:
print("ERROR: %s is only supported on: %s" % (sys.argv[0], ', '.join(PLATFORMS)))
sys.exit(1)
try:
coredump(opts)
except SystemExit as error:
print('ERROR: %s' % error)
print('Exiting')
sys.exit(1)
if __name__ == '__main__':
main()