Depending on the compiler I've seen that for example the step-in command can do a column-step first before exiting out of the function:
* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x0000000100003d80 a.out`called_from_nodebug_actual(some_value=5) at with-debug.
c:10:10
2
3 typedef int (*debug_callee) (int);
4
5 extern int no_debug_caller (int, debug_callee);
6
7 int called_from_nodebug_actual(int some_value) {
8 int return_value = 0;
9 return_value = printf("Length: %d.\n", some_value);
-> 10 return return_value; // Stop here and step out of me
^
11 }
12
13 int called_from_nodebug(int some_value) {
14 int intermediate_return_value = 0;
15 intermediate_return_value = called_from_nodebug_actual(some_value);
16 return intermediate_return_value;
17 }
18
Process 58672 launched: '/Volumes/Data/llvm-project/_build.ninja.release/lldb-test-build.noindex/functionalities/step-avoids-no-debug/TestStepNoDebug.test_step_out_with_python_dsym/a.out' (arm64)
(lldb) s
Process 58672 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = step in
frame #0: 0x0000000100003d8c a.out`called_from_nodebug_actual(some_value=5) at with-debug.c:10:3
2
3 typedef int (*debug_callee) (int);
4
5 extern int no_debug_caller (int, debug_callee);
6
7 int called_from_nodebug_actual(int some_value) {
8 int return_value = 0;
9 return_value = printf("Length: %d.\n", some_value);
-> 10 return return_value; // Stop here and step out of me
^
11 }
12