xref: /llvm-project/lldb/test/API/functionalities/breakpoint/debugbreak/main.c (revision 99451b4453688a94c6014cac233d371ab4cc342d)
1*99451b44SJordan Rupprecht #ifdef _MSC_VER
2*99451b44SJordan Rupprecht #include <intrin.h>
3*99451b44SJordan Rupprecht #define BREAKPOINT_INTRINSIC()    __debugbreak()
4*99451b44SJordan Rupprecht #else
5*99451b44SJordan Rupprecht #define BREAKPOINT_INTRINSIC()    __asm__ __volatile__ ("int3")
6*99451b44SJordan Rupprecht #endif
7*99451b44SJordan Rupprecht 
8*99451b44SJordan Rupprecht int
bar(int const * foo)9*99451b44SJordan Rupprecht bar(int const *foo)
10*99451b44SJordan Rupprecht {
11*99451b44SJordan Rupprecht     int count = 0, i = 0;
12*99451b44SJordan Rupprecht     for (; i < 10; ++i)
13*99451b44SJordan Rupprecht     {
14*99451b44SJordan Rupprecht         count += 1;
15*99451b44SJordan Rupprecht         BREAKPOINT_INTRINSIC();
16*99451b44SJordan Rupprecht         count += 1;
17*99451b44SJordan Rupprecht     }
18*99451b44SJordan Rupprecht     return *foo;
19*99451b44SJordan Rupprecht }
20*99451b44SJordan Rupprecht 
21*99451b44SJordan Rupprecht int
main(int argc,char ** argv)22*99451b44SJordan Rupprecht main(int argc, char **argv)
23*99451b44SJordan Rupprecht {
24*99451b44SJordan Rupprecht     int foo = 42;
25*99451b44SJordan Rupprecht     bar(&foo);
26*99451b44SJordan Rupprecht     return 0;
27*99451b44SJordan Rupprecht }
28*99451b44SJordan Rupprecht 
29*99451b44SJordan Rupprecht 
30