why breakpoint in `Project.application` function of `mix.exs` is useless?

Viewed 32

In mix.exs file of vscode, I set breakpoint in line of mod: {KV.Application, []}, # breakpoint here.

When starting debugging, it has been ignored. Why?

defmodule KV.MixProject do
  use Mix.Project
  #use Application

  def project do
    [
      app: :kv,
      version: "0.1.0",
      elixir: "~> 1.13",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do

    [
      # mod:{KV,[]},
      # mod: {KV, []},
      mod: {KV.Application, []},  # breakpoint here
      extra_applications: [:logger]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    [
      # {:dep_from_hexpm, "~> 0.3.0"},
      # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"}
    ]
  end
end
1 Answers

mix.exs is a build configuration script, which is parsed by mix during compile time.

Breakpoints in VSCode are UI to IEx.Pry which is the runtime beast.

That said, breakpoints make sense during the runtime only, in compiled sources, while mix.exs is a compile-time configuration script, which has nothing to do with runtime.

Related