The Linux Application Debugger (LDB) is a Fortran/C/C++ source-level, symbolic debugger for Linux* applications running on the Intel® Pentium® or Intel® Itanium architecture families. LDB enables you to control execution of your application and view its state in run-time. It is a text-driven debugger with a command set similar to the GNU* debugger (GDB*). This document assumes familiarity with the GDB debugger command set. See http://www.gnu.org/manual/gdb for more information on GDB.
The debugger has the following features and benefits:
LDB does not support or supports with some restrictions the following features:
Feature | LDB Support Restrictions |
---|---|
multithread applications | Does not debug multithread applications. |
function evaluation | Supports only integral, logical, pointer, and void types of arguments and return values. |
aggregates | Does not support user-defined operators (arithmetic, relational, equality) or setting an aggregate value. |
convenience variables | Does not display fields of aggregate convenience variables and elements of array convenience variables. |
Fortran arrays | Does not support any operations with whole arrays and sections, except for their content displaying. |
command line editing | Supports editing the command line with BACKSPACE only, and does not support recalling and editing previous commands. |
command invocation |
Run the program to invoke the watch ,
disassemble , info float ,
x , and print /set variable commands.
|
128-bit floats | Does not support Fortran 128-bit floating point values. |
LDB is a command line interface for debugging Linux applications. LDB can be used with version 3.2 (or later) of the DDD GUI debugger interface application.
Start the debugger with the following command:
ldb [options] [program]
LDB takes the following options:
Option | Description |
---|---|
-batch |
Exit after processing options (do not read commands from standard input). |
-echo
|
Echo input commands to stdout. |
-f -fullname
|
Emacs and DDD set this options when they run debugger. |
-h -help
|
Provide all LDB options with short decsriptions. |
-load-so |
Load debug information from the shared objects. |
-q -quiet
|
Do not print the copyright message. |
-x file |
Execute commands from file file .
|
See a LDB sample session to understand how the LDB commands work.
If you use DDD, start the debugger with the command:
ddd --debugger ldb [program]
This section provides a comparative analysis of the LDB and GNU Debugger commands. The LDB commands are grouped by their functionality, similar to the way they are listed in GDB documentation, and divided into three color groups:
GDB commands supported by LDB |
GDB commands partially supported by LDB |
GDB commands not supported by LDB |
GDB Command | LDB Implementation |
---|---|
quit | supported |
shell | supported |
make | supported |
GDB Command | LDB Implementation |
---|---|
run | supported |
set args | supported |
show args | supported |
path | supported |
show paths | supported |
set environment | supported |
show environment | supported |
unset environment | not supported |
cd | supported |
pwd | supported |
info terminal | not supported |
tty | not supported |
attach | not supported |
detach | not supported |
kill | not supported |
info proc | not supported |
thread | not supported |
info threads | not supported |
thread apply | not supported |
set follow-fork-mode | not supported |
show follow-fork-mode | not supported |
GDB Command | LDB Implementation |
---|---|
[t][h]break [thread no] [if expression] |
h prefix not supported;thread clause not supported;if clause not supported (use condition
command instead)
|
rbreak | not supported |
xbreak | not supported |
[r][a]watch [if expression] |
if clause not supported
|
info breakpoints | supported |
info watchpoints | supported |
maintenance info breakpoints | not supported |
clear | supported |
delete breakpoints | supported |
disable breakpoints | supported |
enable breakpoints [once | delete] |
once and delete not supported
|
condition | supported |
ignore | not supported |
commands | not supported |
continue [expression] |
expression not supported
|
step [expression] |
expression not supported
|
next [expression] |
expression not supported
|
finish | function return value is displayed only for functions with integral, pointer, logical, or void types of return |
until | not supported |
stepi | supported |
nexti | supported |
info ( signals | handle ) | partially suppported |
set scheduler-locking | not supported |
show scheduler-locking | not supported |
GDB Command | LDB Implementation |
---|---|
frame | supported |
select-frame | not supported |
info frame | not supported |
info args | not supported |
info locals | supported |
backtrace [full] |
full not supported |
up | supported |
down | supported |
up-silently | not supported |
down-silently | not supported |
GDB Command | LDB Implementation |
---|---|
set listsize | not supported |
show listsize | not supported |
forward-search | not supported |
reverse-search | not supported |
directory | not supported |
show directories | not supported |
info line | supported |
disassemble | supported |
set disassembly-flavor | supported |
show disassembly-flavor | supported |
set architecture |
only i386 architecture supported
|
show architecture | supported |
GDB Command | LDB Implementation |
---|---|
print [/fmt] [expression] |
space before / is mandatory
|
x [/fmt] expression |
space before / is mandatory;s and i formats not supported
|
display [/fmt] [expression] |
space before / is mandatory;s and i formats not supported
|
undisplay | supported |
disable display | supported |
enable display | supported |
info display | supported |
set print | not supported |
show print | not supported |
show values | not supported |
show convenience | supported |
info registers | supported |
info all-registers | supported |
info float | supported |
info udot | supported |
GDB Command | LDB Implementation |
---|---|
set language | only Fortran and C++ languages supported |
show language | supported |
info source | partially supported |
info sources | partially supported |
info extensions | not supported |
set extension-language | not supported |
set check | not supported |
show check | not supported |
GDB Command | LDB Implementation |
---|---|
info address | not supported |
whatis | The name of type as an argument is not supported. |
ptype | The name of type as an argument is not supported. |
info types | not supported |
info functions | not supported |
info variables | not supported |
maintenance | not supported |
GDB Command | LDB Implementation |
---|---|
set [variable] expression | partially supported |
jump | not supported |
return | not supported |
call | not supported |
set write | not supported |
show write | not supported |
GDB Command | LDB Implementation |
---|---|
file | supported |
exec-file | not supported |
symbol-file | not supported |
core-file | not supported |
load | not supported |
add-symbol-file | not supported |
add-shared-symbol-file | not supported |
section | not supported |
info files | partially supported |
info share | not supported |
share | not supported |
GDB Command | LDB Implementation |
---|---|
set prompt | supported |
show prompt | supported |
set editing | not supported |
show editing | not supported |
set history filename | not supported |
show history filename | not supported |
set history save | not supported |
show history save | not supported |
set history size | not supported |
show history size | not supported |
set history expansion | not supported |
show history expansion | not supported |
show commands | not supported |
set height | supported but does not affect the output |
show height | supported |
set width | supported but does not affect the output |
show width | supported |
set input-radix | not supported |
show input-radix | not supported |
set output-radix | not supported |
show output-radix | not supported |
set verbose | not supported |
show verbose | not supported |
set complaints | not supported |
show complaints | not supported |
set confirm | not supported |
show confirm | not supported |
This is a sample of the code generated by the Linux Application Debugger during the debugging session. User input is emphasized in this font.
$ ldb maincall
Linux Application Debugger, Version 6.0 Beta, Build 20020108.
Copyright (c) 2001-2002 Intel Corporation. All Rights Reserved.
(ldb) break main
Breakpoint 1 at 0x8048113: file maincall.c, line 15.
(ldb) run
Starting program: maincall
Breakpoint 1: file maincall.c line 15.
15 {
(ldb) list
10 extern int inc7(int, int);
11 extern int inc8(int, int);
12 extern int inc9(int, int);
13
14 main( int argc, char *argv[])
15 {
16 /* Test the call stack */
17 int a;
18 int b;
19 int c;
20
(ldb) next
21 switch(argc)
(ldb) next
25 argv[0]);
(ldb) list
20
21 switch(argc)
22 {
23 case 1:
24 fprintf(stdout, "argv: %s\n",
25 argv[0]);
26 break;
27 case 2:
28 fprintf(stdout, "argv: %s %s\n",
29 argv[0],argv[1]);
30 break;
(ldb) break inc1
Breakpoint 2 at 0x80483a3: file inc1.c, line 4.
(ldb) continue
argv: maincall
Breakpoint 2: file inc1.c line 4.
4 {
(ldb) list
1 #include
2
3 inc1( int a, int b )
4 {
5 /* Test the call stack */
6 int c;
7 c = inc2( ++a, ++b);
8 fprintf(stdout, "Result: %d (inc1 original values a:%d b:%d)\n", c, a, b);
9 return(a+b);
(ldb) next
7 c = inc2( ++a, ++b);
(ldb) print a
$2 = 1
(ldb) print b
$3 = 1
(ldb) next
Result: 22 (inc9 original values a:10 b:10)
Result: 20 (inc8 original values a:9 b:9)
Result: 18 (inc7 original values a:8 b:8)
Result: 16 (inc6 original values a:7 b:7)
Result: 14 (inc5 original values a:6 b:6)
Result: 12 (inc4 original values a:5 b:5)
Result: 10 (inc3 original values a:4 b:4)
Result: 8 (inc2 original values a:3 b:3)
8 fprintf(stdout, "Result: %d (inc1 original values a:%d b:%d)\n", c, a, b);
(ldb) print c
$4 = 6
(ldb) continue
Result: 6 (inc1 original values a:2 b:2)
Result: 4 (inc0 original values a:1 b:1)
Result: 2 (original values a:0 b:0)
(ldb) quit
$
Copyright © 2001-2002 Intel Corporation. All rights reserved.
*Other names and brands may be claimed as the property of others.
Intel, Pentium, and Itanium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and in other countries.
Information in this online help is provided in connection with Intel® products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel® products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristic of any features or instructions marked "reserved" or "undefined" for processors. Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them.
The processors referred to in this online help may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.