[Up] [Contents] [Index] [Summary]

5.9.2 Debugging Foreign Code

Statically linked foreign code or embedded systems can be debugged normally. Most modern environments provide debugging tools for dynamically loaded shared objects or dynamic load libraries. The following example traces the code of lowercase using gdb(1) in a Unix environment.

% gcc -I/usr/local/lib/pl-2.2.0/include -fpic -c -g lowercase.c % gcc -shared -o lowercase.so lowercase.o % gdb pl (gdb) r Welcome to SWI-Prolog (Version \plversion) Copyright (c) 1993-1996 University of Amsterdam. All rights reserved. For help, use ?- help(Topic). or ?- apropos(Word). ?- load_foreign_library(lowercase). <type Control-C> (gdb) shared % loads symbols for shared objects (gdb) break pl_lowercase (gdb) continue ?- lowercase('HELLO', X).