Packages
nerves
1.7.13
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
defmodule Mix.Tasks.Firmware.Gen.Gdb do
use Mix.Task
import Mix.Nerves.Utils
alias Mix.Nerves.Preflight
@script_name "gdb.sh"
@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 #{@script_name}.
"""
@spec run(keyword()) :: :ok
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