This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

FAQ

1. Why Nemiver is slow to step through?

This problem can be noticed when stepping into a function (usually a function defined in an external library), and gdb would grind away for several tens of seconds at 100% cpu before it finally arrived at the next instruction. Such problem seems to appear only on debian-based system (like Ubuntu).

Installing libc6-dbg solves this problem.

2. Some variables of your program are not displayed by nemiver

This problem usually happens because you compiled the program you are debugging with optimisations on. If the program you are compiling is using the autotools for instance, great chances are that typing

make

will compile your program with optimisation options like -O2 turned on.

To solve this please recompile the program WITHOUT optimization, by typing

make CFLAGS=-g clean all
make install

Please do note that this will compile your program with the -g option on, AND WITHOUT optimisations. Another nice side effect of switching optimisation off during development is that compilation is then faster.

3. Nemiver doesn't work, '&"Cannot create process: Permission denied\n"' error is printed on the Target Terminal

This means that SELinux boolean deny_ptrace is enabled, which prevents all processes on the system from ptrace'ing other processes on the system, including user processes. The ptrace and sys_ptrace access allows one process to read the memory of another process, which is exactly what debuggers need. For more information about SELinux deny_ptrace boolean, read this LWN article.

To turn off this protection, execute:

sudo setsebool deny_ptrace=0

4. How to make Nemiver use a GDB that I have compiled

Once you've compiled your version of version of GDB and installed it to /path/to/your/gdb, you can make Nemiver use it by setting a gconf key:

gconftool-2 --set --type string  /apps/nemiver/dbgperspective/gdb-binary /path/to/your/gdb

5. Why isn't there a UI to make Nemiver use the GDB that I have compiled

Because nobody had the time to write that UI yet. Well. That code has been written now but it hasn't been released yet. Try nemiver from the master git repository to enjoy it.

6. Is there an easy way to compile Nemiver on my distro?

The most difficult part is to get all the dependencies installed. On Fedora and Debian based distributions though, that part is easy:

yum-builddep nemiver

apt-get build-dep nemiver

Now you just need to checkout the source code, configure it, compile it, and install it:

git checkout git://git.gnome.org/git/nemiver nemiver.git
cd nemiver.git
./autogen.sh
make
sudo make install.

Then, to debug <your-program>, type:

nemiver <your-program>

2024-10-23 10:58