I try to read the value of x86_64 register rip. Here is what objdump shows.
4017ec: 48 8d 35 00 00 00 00 lea 0x0(%rip),%rsi
4017f3:
rip always hold the address of the next instruction while running the current instruction. If fact updating rip by the address of the next instruction, is part of the execution process of the current instruction.
Depends on the architecture %rip holds either the current executing instruction or the next instruction to be executed. Here you added a breakpoint before 0x4017ec which means the next instruction to be executed is 0x4017ec. But %rsi will be loaded only after executing the first instruction. By then %rip would have already updated to point to the next instruction.