A: Your window pane is either too small or the item has scrolled out of view. Press Home and then use the cursor keys to scroll the window contents until you find the item you are looking for.
A: See the answer to the previous question.
A: Unlike the command shell, Xcdb loads your program without searching the $PATH
environment variable. You've probably got a program by the same name somewhere in your $PATH
. Try explicitly qualifying the program name when you type it on the command line. For example, type:
./test a b c # run program in current directory \end{verbatim}
test a b c # oops, this probably invokes /bin/test \end{verbatim}
system()
function in my program.A: This is normal. Just click the Signal item on the command pane to continue, or reinvoke Xcdb with "-i 0."
A: There are bugs in /lib/cpp
, the preprocessor used by cfront
to perform macro expansion. Try another macro preprocessor; some people have had luck with
/usr/lpp/X11/Xamples/util/cpp/cpp
. Point to it with the CC
's "cppC" environment variable, and then recompile.
There are also bugs in cfront
related to generation of #line
directives for templates and include files. Try setting Include files: Ignore in the Preferences menu and see if this helps.
A: Try setting Include files: Ignore in the Preferences menu and see if this helps.
A: Make sure you have set Include files: Respect on the Preferences menu. Another possibility is that the source file contains more than 65,534 lines. Due to an AIX symbol table design feature, line information for such files is stored incorrectly. The only workaround is to split the source file into smaller pieces.
A: This is due to a compiler bug. Try the Variables: Unscoped option on the Preferences menu.
A: You probably compiled your program with both -g
and -O
. The resulting compiler optimizations confuse the debugger. Recompile your program with either -g
or -O
, but not both.
#include
files.
A: You need a newer version of xlC
(such as version 01.02.0000.0000, or later).
A: You probably tried to set a breakpoint on an instruction that was one of several "instantiations" generated from the same #include
file.
If you are debugging template code generated by the xlC
compiler, make sure you've set the Language: C++ option on the Preferences menu.
Otherwise, if you are debugging nontemplate code, or code generated by compilers other than xlC
, there is no mechanism by which Xcdb can infer the instruction instantiation to which you refer, so it is not possible to set a breakpoint on the specified line.
A: This is a deficiency in Xcdb that is being addressed.
a
.A: This has something to do with shared libraries. If you can reproduce this problem with a small program, please send a defect report to the Taligent Tools Team, via Taligent DTS.
A: Display update performance during stepping operations can be improved by iconifying the NonLocals window pane if it is not needed. The debugger is then saved the expense of reading and formatting (potentially large) amounts of global data from the program's execution image. Also, choosing the -n
command-line option will help, by reducing the number of symbols that Xcdb must search. Reducing the size of the main window or using a larger font will also help, because these procedures reduces the amount of window drawing that takes place. Also, enabling xcdb.SaveUnder
in your .Xdefaults
file may improve performance of pop-up menus (see "Customizing Xcdb" on page 136).
A: Try using the Save and Recall selections on the Formats menu to propagate the formatting information from one object to all the others.
A: Try this:
A: Try something like this:
main() { foo(); } foo() { bar(); } bar() { trouble(); } trouble() { extern char **p_xargv; // undocumented variable char cmd[100]; sprintf(cmd, "xcdb -a %d %s", getpid(), p_xargv[0]); if (fork() == 0) system(cmd); // runs Xcdb else pause(); // waits until Xcdb issues "Run", "Line Step", etc. }
A: As a safety feature, Xcdb displays at most 1,000 elements per array. Use -e
or xcdb.ArrayLimits
in your .Xdefaults
file to change this setting.
A: Try this (it's a bit of a kludge, but it works):
char
pointer in your program and set its value to the address you wish to inspect (using Edit).
A: Type xcdb
(no arguments) to find out.
A: Obtain XCDB6000 PACKAGE from your nearest AIXTOOLS service machine.
A: Please read the XCDB6000 NEWS file that is shipped with each XCDB6000 PACKAGE.
A: Please report any problems you discover (or wish list items) to the Taligent Tools Team, via Taligent DTS.