From GDB Python documentation:

— Function: Breakpoint.__init__ (spec [, type [, wp_class [,internal [,temporary]]]])

Defines internal as possible option, but in py-breakpoint.c this argument is ignored.
My patch adds a few lines to the py-breakpoint.c to consider "internal" arg also in
bppy_init. This allows python script to set internal breaks which are < 0 thus 
breakpoints set in stepo command will not increase breakpoints number which you by
default set via (gdb) break

Also there are 2 provided gdb_*.py which implement stepo for i386/x86_64 and arm.


Files have to be copied to:

/usr/share/gdb/python/ or /usr/local/share/gdb/python or wherever gdb was installed
during build/install time

In .gdbinit you may add:
python import gdb_stepo (i386/x86_64)
or
python import gdb_stepo_arm (for arm)