Fpm-gdb plugin for fpm available

The fpm plugin fpm-gdb for GNU-Linux users is available as a beta release.

It launches the gdb(1) GNU debugger in vim(1) terminal mode in an fpm(1)
repository on POSIX platforms, primarily GNU-Linux.

Suggestions and comments are welcome (preferably, using Issues entries
in the github repository). Pending feedback it will be released as a
v1.0.0 package shortly.

It’s purpose is to hide the details required to launch gdb(1) in terminal mode
when working with fpm(1) application packages.

See it at fpm plugins

If there is sufficient interest, a companion timing plugin using gprof(1) and a coverage plugin using gcov(1) are planned to simplify using GNU developer tools from fpm(1).

9 Likes

Oooh, yes please! :upside_down_face: Especially gprof can be quite cumbersome to use with fpm right now: since you have to run before launching gprof, and since different runs (of different versions of the code you want to profile or even different programs… imagine launching fpm test, with no target specified) overwrite the gmon.out file is rather easy to mess up the profiling. Namely you could easily get silently wrong reports, if you are not carefully enough (I currently just use gprof as a runner, in fpm speech, i.e. --runner gprof in a custom @profile option defined in a response file, so I need to make sure myself I run before an appropriate fpm @preprofile command, with same compilation flags and no runner). I think a well thought plug-in, hiding all the details and making it safe to just invoking gprof on a given target, would be extremely useful!

Regarding gcov I have less experience, but I think it would be very comfy for automated CIs, if it hides all the setup details, currently my github actions yamls are quite obscure in this regard (they are shamelessly copy-pasted from somewhere :sweat_smile:).

1 Like

Just out of curiosity, is this only going to work on vim, or also neovim will work with this fpm plugin?

I would love that! Right now I do coverage with a bash script, but a simple command would be awesome (also good for new projects)

1 Like