code: def test_next_breakpoint():
      """next should stop if it encounters a breakpoint.
      If the normal end point happens to be a breakpoint,
      then it should be reported as normal stepping."""
      t = make_tester()
      t.write(
          "test.jam",
          """\
          rule f ( recurse ? )
          {
              if $(recurse) { f ; }
              a = 1 ;
          }
          rule g ( )
          {
              b = 2 ;
          }
          f true ;
          g ;
      """,
      )
      run(
          t,
          """\
  (b2db) break f
  Breakpoint 1 set at f
  (b2db) break g
  Breakpoint 2 set at g
  (b2db) break test.jam:4
  Breakpoint 3 set at test.jam:4
  (b2db) run -ftest.jam
  Starting program: {{bjam}} -ftest.jam
  Breakpoint 1, f ( true ) at test.jam:3
  3	            if $(recurse) { f ; }
  (b2db) next
  Breakpoint 1, f ( ) at test.jam:3
  3	            if $(recurse) { f ; }
  (b2db) next
  4	            a = 1 ;
  (b2db) next
  4	            a = 1 ;
  (b2db) next
  11	        g ;
  (b2db) next
  Breakpoint 2, g ( ) at test.jam:8
  8	            b = 2 ;
  (b2db) quit
  """,
      )
      t.cleanup()
  
imports: import BoostBuild
  import TestCmd
  import re
label_desc: Use image node_id 8 for calling a global function with example usage: test_next_breakpoint() without return types