Having this:
0000000000001135 <f1>:
    1135:   55                      push   %rbp
    1136:   48 89 e5                mov    %rsp,%rbp
    1139:   c7 45 fc 01 00 00 00    movl   $0x1,-0x4(%rbp)
    1140:   c7 45 f8 02 00 00 00    movl   $0x2,-0x8(%rbp)
    1147:   c7 45 f4 03 00 00 00    movl   $0x3,-0xc(%rbp)
    114e:   90                      nop
    114f:   5d                      pop    %rbp
    1150:   c3                      retq  
    ....
I want to break at the beginning address (0x0000000000001135) with 
gdb:
Reading symbols from a.out...done.
(gdb) break *0x0000000000001135
+break *0x0000000000001135
Breakpoint 1 at 0x1135: file a.c, line 3.
(gdb) layout asm
+layout asm
(gdb) r
+r
Starting program: /home/shepherd/Desktop/bin/a.out 
[4]+  Stopped                 gdb -q -tui a.out
result: crash after spcifying the address explicitly.
however, being used symbol, no problem: Reading symbols from a.out...done.
(gdb) layout asm
+layout asm
(gdb) break *f1
+break *f1
Breakpoint 1 at 0x1135: file a.c, line 3.
(gdb) r
+r
Starting program: /home/shepherd/Desktop/bin/a.out 
Breakpoint 1, f1 () at a.c:3
(gdb) si
+si
(gdb) 
...
I have observered two addresses. Before break *f1 and after break *f1. The first one was 0x0000000000001135. after however was 
0x555555555135 <f1>. Why is gdb lying about addresses then? And how can I find out which what to use?
