To add to that. *nixes are using ptrace() function and PTRACE_SINGLESTEP request. I do believe that setting EFlag (FLAG_TRACE_BIT for x86 machines) would work for *nix systems (didn't try myself), but respecting defined API is always a better approach.
thanks, Dmitry On Mon, Mar 31, 2014 at 9:58 PM, Dmitry Boyarintsev < skalogryz.li...@gmail.com> wrote: > http://en.wikipedia.org/wiki/FLAGS_register > > It's a trap (single-step) flag. to stop after each instruction. (IIRC with > some exceptions). > I'd think it should be AMD64 compatible. > > thanks, > Dmitry > > > On Mon, Mar 31, 2014 at 6:17 PM, Martin Frb <laza...@mfriebe.de> wrote: > >> C:\FPC\SVN\fpc_2.6.4\rtl\win\wininc\defines.inc >> >> line 5669 (in 3.6.4) >> { our own invention } >> FLAG_TRACE_BIT = $100; >> >> This is only there for 32 bit and wince, but not for win64. >> >> But the problem is finding out what it actually means. All googling has >> not brought any definition to it. >> >> From usage in old code in fpdebug, it is given as flag to >> >> Context^.EFlags := Context^.EFlags or FLAG_TRACE_BIT; >> if not SetThreadContext(Handle, Context^) >> >> >> An ideas? >> >> _______________________________________________ >> fpc-devel maillist - fpc-devel@lists.freepascal.org >> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel >> > >
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel