Packages
nerves
1.13.0
1.15.0
1.14.3
1.14.2
1.14.1
1.14.0
1.13.2
1.13.1
1.13.0
1.12.0
1.11.3
1.11.2
1.11.1
1.11.0
1.10.5
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.3
1.9.2
retired
1.9.1
1.9.0
1.8.0
1.7.17
1.7.16
1.7.15
1.7.14
retired
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
retired
1.7.1
retired
1.7.0
retired
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.1
1.2.0
1.1.1
1.1.0
1.0.1
1.0.0
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.11.0
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.4.0-rc.0
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
Craft and deploy bulletproof embedded software
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/firmware.gen.gdb.ex
# SPDX-FileCopyrightText: 2021 Connor Rigby
# SPDX-FileCopyrightText: 2022 Frank Hunleth
# SPDX-FileCopyrightText: 2022 Jon Carstens
#
# SPDX-License-Identifier: Apache-2.0
#
defmodule Mix.Tasks.Firmware.Gen.Gdb do
@shortdoc "Generates a helper shell script for using gdb to analyze core dumps"
@moduledoc """
Generates a helper shell script for using gdb to analyze core dumps
This script may be used on its own or used as a base for more complicated debugging.
It saves the script to gdb.sh.
"""
use Mix.Task
import Mix.Nerves.Utils
alias Mix.Nerves.Preflight
@script_name "gdb.sh"
@impl Mix.Task
def run(_args) do
Preflight.check!()
system_path = check_nerves_system_is_set!()
_ = check_nerves_toolchain_is_set!()
gdb_script_contents =
Application.app_dir(:nerves, "priv/templates/script.run-gdb.sh.eex")
|> EEx.eval_file(assigns: [nerves_system: system_path])
if File.exists?(@script_name) do
Mix.shell().yes?("OK to overwrite #{@script_name}?") || Mix.raise("Aborted")
end
Mix.shell().info("""
Writing #{@script_name}...
""")
File.write!(@script_name, gdb_script_contents)
File.chmod!(@script_name, 0o755)
end
end