In gdb, when debugging inside a function, we can use “finish” command to run to the end of a function. My question is: how does gdb know the ending position of a function, especially when there’s no debugging symbol to match source code “{}”? I guess gdb looks for either “leave” or “mov %rbp, %rsp,pop %rbp” under x86 in order