@dimitarvp, Thanks for your reply!
- Elixir / Erlang do have several syscall builtin functions with configurable parameters
I haven’t found these, could you please give me a pointer to the documentation?
Why do you want to be able to call any possible syscall? Some of them might as well break the BEAM VM.
Why not? They might break the VM, but that is fine to me. Given that this is a low-level package, it is not aimed at the general public. Chances that if you are interested in this package (or a method of invoking system calls) then you know what you are doing and are also aware of the risks.
Why would you implement something like
gdb in Elixir at all? Doing
:observer.start() from an
iex shell will give you tons of info in a neat GUI. And you can inspect remote nodes – including production apps – with it as well.
As a proof of concept and a learning project for me. In particular, the debugger I envision is not targeting Elixir programs but mostly C programs. I wrote basic debuggers before and I find Elixir a language that could give some interesting potential benefits.
It partially looks like you are trying to invent an Elixir way to write C to me.
This is true for the lowest level parts, but the higher level parts of the debugger will be in “original” Elixir style.
Surely there is performance overhead to crossing the BEAM<->native boundary, of which I’m aware but as I mention above people who are interested in this library are going to be aware of this and hopefully, they are aware of alternative solutions. The goal of the library is to avoid every single project in Elixir that just needs one system call invoked to be writing their own NIFs/Ports and instead just grab this from Hex and call the system call. Are there projects like that or will there be projects like that? Well, I don’t know