# /*
#  * Copyright (C) 2020, KylinSoft Co., Ltd.
#  *
#  * This program is free software: you can redistribute it and/or modify
#  * it under the terms of the GNU General Public License as published by
#  * the Free Software Foundation, either version 3 of the License, or
#  * (at your option) any later version.
#  *
#  * This program is distributed in the hope that it will be useful,
#  * but WITHOUT ANY WARRANTY; without even the implied warranty of
#  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  * GNU General Public License for more details.
#  *
#  * You should have received a copy of the GNU General Public License
#  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
#  */

import os
import logging
from datetime import datetime

def dump_proc_maps(output_file: str):
    pid = os.getpid()
    maps_file = f"/proc/{pid}/maps"

    try:
        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

        with open(maps_file, "r") as src, open(output_file, "w") as dst:
            dst.write(f"==== Dump Time: {timestamp} ====\n")
            dst.write(f"==== PID: {pid} ====\n\n")
            dst.write(src.read())
    except Exception as e:
        logging.error(f"Failed to dump /proc/{pid}/maps: {e}")