Download Latest Version bashdb-5.2-1.2.0.tar.bz2 (603.7 kB)
Email in envelope

Get an email when there's a new version of bash debugger

Home / remake / 4.2+dbg-1.5
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2020-03-15 3.1 kB
remake-4.2.1+dbg-1.5.tar.bz2 2020-03-15 1.6 MB
remake-4.2.1+dbg-1.5.tar.gz 2020-03-15 2.3 MB
Totals: 3 Items   3.8 MB 0

Build Status

Packaging status

Patched GNU Make 4.2.1 sources to add improved error reporting, tracing, target listing, graph visualization, and profiling. It also contains debugger. See branches remake-4-1 and remake-3-82 for patched GNU Make 4.1 and 3.82 respectively

Tracing and Debugging

Although there's a full debugger here, most of the time I can get by using no options since normal output is a little more verbose and detailed. When that isn't enough, I use the --trace or -x option, e.g:

$ remake -x # ... add other make options

But if you want the full debugger, use --debugger or -X:

$ remake -X # ... add other make options

If you want to get into the debugger only after an error is encountered use --post-mortem:

$ remake --post-mortem # ... add other make options

To enter the debugger from inside a Makefile, use the built-in function $(debugger). For example here is a Makefile:

    all:
        $(debugger 'arg not used')
        echo Nothing here, move along
````

When GNU Make is inside the *all* target, it will make a call to the
debugger. The string after *debugger* is not used, but seems to be
needed to get parsing right.

Getting Makefile Information
----------------------------

If there is project that you want a list of "interesting" Makefile
targets, try:

```console
$ remake --tasks

If the project has commented its Makefile using remake-friendly comments you may get output like this:

ChangeLog   # create ChangeLog fom git log via git2cl
build   # Do what it takes to build software locally
check   # Run all tests
clean   # Remove OS- and platform-specific derived files.
dist    # Create source and binary distribution
distclean   # Remove all derived files. Like "clean" on steroids.
install # Install package
test    # Same as check

To get a list of all targets, interesting or not, use --targets instead of --tasks.

To build from a tarball:

$ ./configure && make && make check && sudo make install

To build from git, run first:

$ $SHELL ./autogen.sh

Profiling and Visualization

To profile and get a graph of targets encountered use the --profile option. For example:

$ remake --profile # target...

remake outputs callgrind profile format data which can be used with kcachegrind or other tools that work with this format.

See also

See also https://github.com/rocky/remake/wiki where there are a couple of demos listed and https://github.com/rocky/remake/blob/master/profile/README.md for infomation on how to profile a "make" run.

Source: README.md, updated 2020-03-15