diff --git a/lldb/www/lldb-gdb.html b/lldb/www/lldb-gdb.html index ccca2a065588..5641c9f9f02b 100755 --- a/lldb/www/lldb-gdb.html +++ b/lldb/www/lldb-gdb.html @@ -33,42 +33,35 @@ - + + - - + - + + - + - - + - + - +
LLDB GDBLLDB
Launch a process no arguments.
+ (gdb) run
+ (gdb) r +
(lldb) process launch
(lldb) run
(lldb) r
- (gdb) run
- (gdb) r -
Launch a process with arguments <args>.
- (lldb) process launch -- <args>
- (lldb) r <args> -
(gdb) run <args>
(gdb) r <args>
+ (lldb) process launch -- <args>
+ (lldb) r <args> +
Launch a process for with arguments a.out 1 2 3 without having to supply the args every time.
- % lldb -- a.out 1 2 3
- (lldb) run
- ...
- (lldb) run
- ...
-
% gdb --args a.out 1 2 3
(gdb) run
@@ -76,154 +69,163 @@ (gdb) run
...
+ % lldb -- a.out 1 2 3
+ (lldb) run
+ ...
+ (lldb) run
+ ...
+
Launch a process with arguments in new terminal window (Mac OS X only).
- (lldb) process launch --tty -- <args>
- (lldb) pro la -t -- <args>
+ (lldb) process launch --tty -- <args>
+ (lldb) pro la -t -- <args>
Launch a process with arguments in existing terminal /dev/ttys006 (Mac OS X only).
- (lldb) process launch --tty=/dev/ttys006 -- <args>
- (lldb) pro la -t/dev/ttys006 -- <args>
+ (lldb) process launch --tty=/dev/ttys006 -- <args>
+ (lldb) pro la -t/dev/ttys006 -- <args>
Attach to a process with process ID 123.
- (lldb) process attach --pid 123
- (lldb) attach -p 123 + (gdb) attach 123
- (gdb) attach 123 + (lldb) process attach --pid 123
+ (lldb) attach -p 123
Attach to a process named "a.out".
- (lldb) process attach --name a.out
- (lldb) pro at -n a.out + (gdb) attach a.out
- (gdb) attach a.out + (lldb) process attach --name a.out
+ (lldb) pro at -n a.out
Wait for a process named "a.out" to launch and attach.
- (lldb) process attach --name a.out --waitfor
- (lldb) pro at -n a.out -w + (gdb) attach -waitfor a.out
- (gdb) attach -waitfor a.out + (lldb) process attach --name a.out --waitfor
+ (lldb) pro at -n a.out -w
Attach to a remote gdb protocol server running on system "eorgadd", port 8000.
- (lldb) gdb-remote eorgadd:8000 + (gdb) target remote eorgadd:8000 - (gdb) target remote eorgadd:8000 + (lldb) gdb-remote eorgadd:8000
Attach to a remote gdb protocol server running on the local system, port 8000.
- (lldb) gdb-remote 8000 + (gdb) target remote localhost:8000 - (gdb) target remote localhost:8000 + (lldb) gdb-remote 8000
Attach to a Darwin kernel in kdp mode on system "eorgadd".
- (lldb) kdp-remote eorgadd + (gdb) kdp-reattach eorgadd - (gdb) kdp-reattach eorgadd + (lldb) kdp-remote eorgadd
Do a source level single step in the currently selected thread.
+ (gdb) step
+ (gdb) s +
(lldb) thread step-in
(lldb) step
(lldb) s
- (gdb) step
- (gdb) s -
Do a source level single step over in the currently selected thread.
+ (gdb) next
+ (gdb) n +
(lldb) thread step-over
(lldb) next
(lldb) n
- (gdb) next
- (gdb) n -
Do an instruction level single step in the currently selected thread.
- (lldb) thread step-inst
- (lldb) si
-
(gdb) stepi
(gdb) si
+ (lldb) thread step-inst
+ (lldb) si
+
Do an instruction level single step over in the currently selected thread.
- (lldb) thread step-inst-over
- (lldb) ni -
(gdb) nexti
(gdb) ni
+ (lldb) thread step-inst-over
+ (lldb) ni +
Step out of the currently selected frame.
- (lldb) thread step-out
- (lldb) finish
+ (gdb) finish
- (gdb) finish
+ (lldb) thread step-out
+ (lldb) finish
Backtrace and disassemble every time you stop.
+ + (lldb) target stop-hook add
Enter your stop hook command(s). Type 'DONE' to end.
> bt
@@ -245,88 +247,88 @@ - + + - + - - + - + @@ -342,36 +344,38 @@
LLDB GDBLLDB
Set a breakpoint at all functions named main.
+ (gdb) break main + (lldb) breakpoint set --name main
(lldb) br s -n main
(lldb) b main
- (gdb) break main -
Set a breakpoint in file test.c at line 12.
+ (gdb) break test.c:12 + (lldb) breakpoint set --file test.c --line 12
(lldb) br s -f test.c -l 12
(lldb) b test.c:12
- (gdb) break test.c:12 -
Set a breakpoint at all C++ methods whose basename is main.
- (lldb) breakpoint set --method main
- (lldb) br s -M main
-
(gdb) break main
(Hope that there are no C funtions named main).
+ (lldb) breakpoint set --method main
+ (lldb) br s -M main
+
Set a breakpoint at and object C function: -[NSString stringWithFormat:].
- (lldb) breakpoint set --name "-[NSString stringWithFormat:]"
- (lldb) b -[NSString stringWithFormat:]
+ (gdb) break -[NSString stringWithFormat:]
- (gdb) break -[NSString stringWithFormat:]
+ (lldb) breakpoint set --name "-[NSString stringWithFormat:]"
+ (lldb) b -[NSString stringWithFormat:]
Set a breakpoint at all Objective C methods whose selector is count.
- (lldb) breakpoint set --selector count
- (lldb) br s -S count
-
(gdb) break count
(Hope that there are no C or C++ funtions named count).
+ (lldb) breakpoint set --selector count
+ (lldb) br s -S count
+
List all breakpoints.
- (lldb) breakpoint list
- (lldb) br l
+ (gdb) info break
- (gdb) info break
+ (lldb) breakpoint list
+ (lldb) br l
Delete a breakpoint.
- (lldb) breakpoint delete 1
- (lldb) br del 1
+ (gdb) delete 1
- (gdb) delete 1
+ (lldb) breakpoint delete 1
+ (lldb) br del 1
- + + - - + @@ -418,95 +422,97 @@

LLDB GDBLLDB
Set a watchpoint on a variable when it is written to.
- (lldb) watchpoint set variable -w write global_var
- (lldb) watch set var -w write global_var
+ (gdb) watch global_var
- (gdb) watch global_var + (lldb) watchpoint set variable -w write global_var
+ (lldb) watch set var -w write global_var
Set a watchpoint on a memory location when it is written into. The size of the region to watch for defaults to the pointer size if no '-x byte_size' is specified. This command takes raw input, evaluated as an expression returning an unsigned integer pointing to the start of the region, after the '--' option terminator.
+ (gdb) watch -location g_char_ptr + (lldb) watchpoint set expression -w write -- my_ptr
(lldb) watch set exp -w write -- my_ptr
- (gdb) watch -location g_char_ptr -
Set a condition on a watchpoint.
+ + (lldb) watch set var -w write global
(lldb) watchpoint modify -c '(global==5)'
(lldb) c
@@ -389,22 +393,22 @@
List all watchpoints.
- (lldb) watchpoint list
- (lldb) watch l
+ (gdb) info break
- (gdb) info break
+ (lldb) watchpoint list
+ (lldb) watch l
Delete a watchpoint.
- (lldb) watchpoint delete 1
- (lldb) watch del 1
+ (gdb) delete 1
- (gdb) delete 1
+ (lldb) watchpoint delete 1
+ (lldb) watch del 1
- + - + + - + - - + @@ -514,7 +520,9 @@ - + @@ -532,49 +540,49 @@

LLDB GDBLLDB
Show the arguments and local variables for the current frame.
- (lldb) frame variable
-
(gdb) info args
and
(gdb) info locals
+ (lldb) frame variable
+
Show the local variables for the current frame.
- (lldb) frame variable --no-args
- (lldb) fr v -a
+ (gdb) info locals
- (gdb) info locals
+ (lldb) frame variable --no-args
+ (lldb) fr v -a
Show the contents of local variable "bar".
+ (gdb) p bar
+
(lldb) frame variable bar
(lldb) fr v bar
(lldb) p bar
- (gdb) p bar
-
Show the contents of local variable "bar" formatted as hex.
- (lldb) frame variable --format x bar
- (lldb) fr v -f x bar
+ (gdb) p/x bar
- (gdb) p/x bar
+ (lldb) frame variable --format x bar
+ (lldb) fr v -f x bar
Show the contents of global variable "baz".
- (lldb) target variable baz
- (lldb) ta v baz
+ (gdb) p baz
- (gdb) p baz
+ (lldb) target variable baz
+ (lldb) ta v baz
Show the global/static variables defined in the current source file.
- (lldb) target variable
- (lldb) ta v
+ n/a
- n/a
+ (lldb) target variable
+ (lldb) ta v
Display a the variable "argc" and "argv" every time you stop.
+ (gdb) display argc
+ (gdb) display argv
+
(lldb) target stop-hook add --one-liner "frame variable argc argv"
(lldb) ta st a -o "fr v argc argv"
(lldb) display argc
(lldb) display argv
- (gdb) display argc
- (gdb) display argv
-
Display a the variable "argc" and "argv" only when you stop in the function named main.
+ + (lldb) target stop-hook add --name main --one-liner "frame variable argc argv"
(lldb) ta st a -n main -o "fr v argc argv"
Display the variable "*this" only when you stop in c class named MyClass.
+ + (lldb) target stop-hook add --classname MyClass --one-liner "frame variable *this"
(lldb) ta st a -c MyClass -o "fr v *this"
- + - + + - + - @@ -587,77 +595,81 @@

LLDB GDBLLDB
Evaluating a generalized expression in the current frame.
- (lldb) expr (int) printf ("Print nine: %d.", 4 + 5)
- or using the print alias:
- (lldb) print (int) printf ("Print nine: %d.", 4 + 5)
-
(gdb) print (int) printf ("Print nine: %d.", 4 + 5)
or if you don't want to see void returns:
(gdb) call (int) printf ("Print nine: %d.", 4 + 5)
+ (lldb) expr (int) printf ("Print nine: %d.", 4 + 5)
+ or using the print alias:
+ (lldb) print (int) printf ("Print nine: %d.", 4 + 5)
+
Printing the ObjC "description" of an object.
+ (gdb) po [SomeClass returnAnObject]
+
(lldb) expr -o -- [SomeClass returnAnObject]
or using the po alias:
(lldb) po [SomeClass returnAnObject]
- (gdb) po [SomeClass returnAnObject]
-
Print the dynamic type of the result of an expression.
+ (gdb) set print object 1
+ (gdb) p someCPPObjectPtrOrReference
+ only works for C++ objects.
+
(lldb) expr -d 1 -- [SomeClass returnAnObject]
(lldb) expr -d 1 -- someCPPObjectPtrOrReference
or set dynamic type printing to be the default: (lldb) settings set target.prefer-dynamic run-target
- (gdb) set print object 1
- (gdb) p someCPPObjectPtrOrReference
- only works for C++ objects.
-
- + + - + - + - + - + - + - - + - + - - - @@ -876,34 +882,37 @@
LLDB GDBLLDB
Show the stack backtrace for the current thread.
- (lldb) thread backtrace
- (lldb) bt
+ (gdb) bt
- (gdb) bt
+ (lldb) thread backtrace
+ (lldb) bt
Show the stack backtraces for all threads.
- (lldb) thread backtrace all
- (lldb) bt all + (gdb) thread apply all bt
- (gdb) thread apply all bt + (lldb) thread backtrace all
+ (lldb) bt all
Select a different stack frame by index for the current thread.
- (lldb) frame select 12
+ (gdb) frame 12
- (gdb) frame 12 + (lldb) frame select 12
List information about the currently selected frame in the current thread.
- (lldb) frame info
+ (lldb) frame info
Select the stack frame that called the current stack frame.
- (lldb) up
- (lldb) frame select --relative=1
+ (gdb) up
- (gdb) up + (lldb) up
+ (lldb) frame select --relative=1
Select the stack frame that is called by the current stack frame.
+ (gdb) down + (lldb) down
(lldb) frame select --relative=-1
(lldb) fr s -r-1
- (gdb) down -
Select a different stack frame using a relative offset.
+ (gdb) up 2
+ (gdb) down 3
+
(lldb) frame select --relative 2
(lldb) fr s -r2
@@ -665,25 +677,23 @@ (lldb) frame select --relative -3
(lldb) fr s -r-3
- (gdb) up 2
- (gdb) down 3
-
Show the general purpose registers for the current thread.
- (lldb) register read
+ (gdb) info registers
- (gdb) info registers
+ (lldb) register read
Show the general purpose registers for the current thread formatted as signed decimal. LLDB tries to use the same format characters as printf(3) when possible. Type "help format" to see the full list of format specifiers.
+ (lldb) register read --format i
(lldb) re r -f i
@@ -691,33 +701,34 @@ LLDB now supports the GDB shorthand format syntax but there can't be space after the command:
(lldb) register read/d
-
Show all registers in all register sets for the current thread.
- (lldb) register read --all
- (lldb) re r -a
+ (gdb) info all-registers
- (gdb) info all-registers
+ (lldb) register read --all
+ (lldb) re r -a
Show the values for the registers named "rax", "rsp" and "rbp" in the current thread.
- (lldb) register read rax rsp rbp
+ (gdb) info all-registers rax rsp rbp
- (gdb) info all-registers rax rsp rbp
+ (lldb) register read rax rsp rbp
Show the values for the register named "rax" in the current thread formatted as binary.
+ (gdb) p/t $rax
+
(lldb) register read --format binary rax
(lldb) re r -f b rax
@@ -726,13 +737,13 @@ (lldb) register read/t rax
(lldb) p/t $rax
- (gdb) p/t $rax
-
Read memory from address 0xbffff3c0 and show 4 hex uint32_t values.
+ (gdb) x/4xw 0xbffff3c0
+
(lldb) memory read --size 4 --format x --count 4 0xbffff3c0
(lldb) me r -s4 -fx -c4 0xbffff3c0
@@ -743,124 +754,119 @@ (lldb) x/4xw 0xbffff3c0
(lldb) memory read --gdb-format 4xw 0xbffff3c0
- (gdb) x/4xw 0xbffff3c0
-
Read memory starting at the expression "argv[0]".
+ (gdb) x argv[0]
+
(lldb) memory read `argv[0]`
NOTE: any command can inline a scalar expression result (as long as the target is stopped) using backticks around any expression:
(lldb) memory read --size `sizeof(int)` `argv[0]`
- (gdb) x argv[0]
-
Read 512 bytes of memory from address 0xbffff3c0 and save results to a local file as text.
- (lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
- (lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
- (lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
-
(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
+ (lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
+ (lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
+ (lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
+
Save binary memory data starting at 0x1000 and ending at 0x2000 to a file.
+ + (gdb) dump memory /tmp/mem.bin 0x1000 0x2000 + (lldb) memory read --outfile /tmp/mem.bin --binary 0x1000 0x1200
(lldb) me r -o /tmp/mem.bin -b 0x1000 0x1200
- (gdb) dump memory /tmp/mem.bin 0x1000 0x2000 -
Disassemble the current function for the current frame.
- (lldb) disassemble --frame
- (lldb) di -f + (gdb) disassemble
- (gdb) disassemble + (lldb) disassemble --frame
+ (lldb) di -f
Disassemble any functions named main.
- (lldb) disassemble --name main
- (lldb) di -n main + (gdb) disassemble main
- (gdb) disassemble main + (lldb) disassemble --name main
+ (lldb) di -n main
Disassemble an address range.
- (lldb) disassemble --start-address 0x1eb8 --end-address 0x1ec3
- (lldb) di -s 0x1eb8 -e 0x1ec3
+ (gdb) disassemble 0x1eb8 0x1ec3
- (gdb) disassemble 0x1eb8 0x1ec3 + (lldb) disassemble --start-address 0x1eb8 --end-address 0x1ec3
+ (lldb) di -s 0x1eb8 -e 0x1ec3
Disassemble 20 instructions from a given address.
- (lldb) disassemble --start-address 0x1eb8 --count 20
- (lldb) di -s 0x1eb8 -c 20
+ (gdb) x/20i 0x1eb8
- (gdb) x/20i 0x1eb8 + (lldb) disassemble --start-address 0x1eb8 --count 20
+ (lldb) di -s 0x1eb8 -c 20
Show mixed source and disassembly for the current function for the current frame.
- (lldb) disassemble --frame --mixed
- (lldb) di -f -m + n/a
- n/a + (lldb) disassemble --frame --mixed
+ (lldb) di -f -m
Disassemble the current function for the current frame and show the opcode bytes.
- (lldb) disassemble --frame --bytes
- (lldb) di -f -b + n/a
- n/a + (lldb) disassemble --frame --bytes
+ (lldb) di -f -b
Disassemble the current source line for the current frame.
- (lldb) disassemble --line
- (lldb) di -l + n/a
- n/a + (lldb) disassemble --line
+ (lldb) di -l
- + + - @@ -983,17 +989,17 @@

LLDB GDBLLDB
List the main executable and all dependent shared libraries.
- (lldb) image list
+ (gdb) info shared
- (gdb) info shared
+ (lldb) image list
Lookup information for a raw address in the executable or any shared libraries.
- (lldb) image lookup --address 0x1ec4
- (lldb) im loo -a 0x1ec4
+ (gdb) info symbol 0x1ec4
- (gdb) info symbol 0x1ec4
+ (lldb) image lookup --address 0x1ec4
+ (lldb) im loo -a 0x1ec4
Lookup functions matching a regular expression in a binary.
+ (gdb) info function <FUNC_REGEX>
+
This one finds debug symbols:
(lldb) image lookup -r -n <FUNC_REGEX>

@@ -911,66 +920,63 @@ (lldb) image lookup -r -s <FUNC_REGEX>

Provide a list of binaries as arguments to limit the search.
- (gdb) info function <FUNC_REGEX>
-
Lookup information for an address in a.out only.
- (lldb) image lookup --address 0x1ec4 a.out
- (lldb) im loo -a 0x1ec4 a.out
+ (lldb) image lookup --address 0x1ec4 a.out
+ (lldb) im loo -a 0x1ec4 a.out
Lookup information for for a type Point by name.
- (lldb) image lookup --type Point
- (lldb) im loo -t Point
+ (lldb) ptype Point
- (lldb) ptype Point
+ (lldb) image lookup --type Point
+ (lldb) im loo -t Point
Dump all sections from the main executable and any shared libraries.
- (lldb) image dump sections
+ (gdb) maintenance info sections
- (gdb) maintenance info sections
+ (lldb) image dump sections
Dump all sections in the a.out module.
- (lldb) image dump sections a.out
+ (lldb) image dump sections a.out
Dump all symbols from the main executable and any shared libraries.
- (lldb) image dump symtab
+ (lldb) image dump symtab
Dump all symbols in a.out and liba.so.
- (lldb) image dump symtab a.out liba.so
+ (lldb) image dump symtab a.out liba.so
- +
LLDB GDBLLDB
Echo text to the screen.
- (lldb) script print "Here is some text"
+ (gdb) echo Here is some text\n
- (gdb) echo Here is some text\n
+ (lldb) script print "Here is some text"