This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Break at address on darwin


On Tue, Aug 2, 2011 at 1:31 PM, Jonas Maebe <jonas.maebe@elis.ugent.be> wrote:
>
> On 02 Aug 2011, at 21:19, Ben L. Titzer wrote:
>
>> On Tue, Aug 2, 2011 at 12:00 PM, Jeffrey Walton <noloader@gmail.com> wrote:
>>> Are you certain you are setting a breakpoint on an address (eg, b
>>> 0x40000000)? Or is it a symbolic name (b main)?
>
> Just to make sure: to put a breakpoint on an address, it's "b *0x40000000" (i.e., with an extra "*"; but you'd notice if you used the wrong syntax, since gdb would complain that it can't find a symbol with that name).

Yes, I am using the correct syntax and gdb will list the breakpoints I
have added.

>
>> It's an address. I ænow for sure it's being executed because it's the
>> first instruction in the binary.
>
> Actually, I've noticed on many platforms that breakpoints on the very first instruction don't work. Did you also try other instructions?
>

Doesn't matter, no breakpoints work.

I've attached a sample binary and gdb session.

-------------------
% gdb /tmp/add01
GNU gdb 6.3.50-20050815 (Apple version gdb-1515) (Sat Jan 15 08:33:48 UTC 2011)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...
(gdb) break *0x1114
Breakpoint 1 at 0x1114
(gdb) run
Starting program: /private/tmp/add01

Program exited with code 04.
(gdb) disass 0x1114 0x1140
Dump of assembler code from 0x1114 to 0x1140:
0x00001114:	mov    (%esp),%ebx
0x00001117:	mov    $0x0,%eax
0x0000111c:	mov    0x1121(,%ebx,4),%edx
0x00001123:	jmp    0x1129
0x00001125:	add    %al,(%eax)
0x00001127:	add    %al,(%eax)
0x00001129:	call   0x1148
0x0000112e:	push   %eax
0x0000112f:	mov    %esp,%ebx
0x00001131:	push   $0x4
0x00001133:	push   %ebx
0x00001134:	push   $0x1
0x00001136:	push   $0x0
0x00001138:	mov    $0x4,%eax
0x0000113d:	int    $0x80
0x0000113f:	push   %eax
End of assembler dump.
(gdb) break 01148
No symbol table is loaded.  Use the "file" command.
(gdb) break *0x1148
Breakpoint 2 at 0x1148
(gdb) run
Starting program: /private/tmp/add01

Program exited with code 04.
(gdb) info breakpoints
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x00001114
2   breakpoint     keep y   0x00001148
(gdb)

Attachment: add01
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]