xref: /llvm-project/lldb/test/API/functionalities/step-avoids-no-debug/with-debug.c (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #include <stdio.h>
2*99451b44SJordan Rupprecht 
3*99451b44SJordan Rupprecht typedef int (*debug_callee) (int);
4*99451b44SJordan Rupprecht 
5*99451b44SJordan Rupprecht extern int no_debug_caller (int, debug_callee);
6*99451b44SJordan Rupprecht 
7*99451b44SJordan Rupprecht int
called_from_nodebug_actual(int some_value)8*99451b44SJordan Rupprecht called_from_nodebug_actual(int some_value)
9*99451b44SJordan Rupprecht {
10*99451b44SJordan Rupprecht   int return_value = 0;
11*99451b44SJordan Rupprecht   return_value  = printf ("Length: %d.\n", some_value);
12*99451b44SJordan Rupprecht   return return_value; // Stop here and step out of me
13*99451b44SJordan Rupprecht }
14*99451b44SJordan Rupprecht 
15*99451b44SJordan Rupprecht int
called_from_nodebug(int some_value)16*99451b44SJordan Rupprecht called_from_nodebug(int some_value)
17*99451b44SJordan Rupprecht {
18*99451b44SJordan Rupprecht   int intermediate_return_value = 0;
19*99451b44SJordan Rupprecht   intermediate_return_value = called_from_nodebug_actual(some_value);
20*99451b44SJordan Rupprecht   return intermediate_return_value;
21*99451b44SJordan Rupprecht }
22*99451b44SJordan Rupprecht 
23*99451b44SJordan Rupprecht int
main()24*99451b44SJordan Rupprecht main()
25*99451b44SJordan Rupprecht {
26*99451b44SJordan Rupprecht   int return_value = no_debug_caller(5, called_from_nodebug);
27*99451b44SJordan Rupprecht   printf ("I got: %d.\n", return_value);
28*99451b44SJordan Rupprecht   return 0;
29*99451b44SJordan Rupprecht }
30