Next: Bug Reports, Previous: Supported Debuggers, Up: Installation
Nana has the following known features (or perhaps problems):
DI
or DL
should be on lines by themselves. If you
mix code and nana macros on the same line you will get errors, e.g:
main(){ int x; x = 5; x--; DI(x == 4); }
This doesn't work since breakpoints are set at line boundaries rather than statement ones. Of course anyone who writes code like this deserves whatever happens to them.
DI(x + 10 > 30);
A few backslashes may solve this particular problem.
The ‘configure’ script automatically detects the target operating system and architecture and then generates ‘nana-config.h’. If the options selected in ‘nana-config.h’ are incorrect they can be edited by hand and installed in the usual include directory. The easiest method is simply to delete all macros in ‘nana-config.h’ since the system defaults to more portable (and less efficient) implementations. If you wish to do this from the configure script you can try giving a unsupported machine type, e.g.
% ./configure pdp11-dec-ultrix
configure
script detecting vsnprintf
. If configure
doesn't find it
and it does exist then simply define it in ‘nana-config.h’ as per
the previous question.
If vsnprintf
really doesn't exist then get a new C library,
possibly the GNU libc.
vsprintf
opens a security hole since no
bounds checking is done by it. Nana attempts to use vsnprintf
which is safe when it exists but it will resort to vsprintf
if it can't find vsnprintf
. All careful people should make
sure that they have a library with vsnprintf
.
Qstl.h
doesn't work since the STL library has not
been installed along with C++. This can of course be fixed by installing
STL. See:
STL
header file errors due to nana.
The C++ STL
header files for version 3.0 at least must
be included before the Q.h
file.
The problem is caused by the STL files using S
as a template
argument. Of course Q.h
uses S
for summing a
series. As usual namespace pollution strikes again.
(Thanks to Han Holl for this particular problem).
DI.h
or DL.h
on code that has not
been compiled with -g
then misery follows.
(Thanks to Eugen Dedu for this one)