Martin wrote:
On 31/08/2011 09:51, Mark Morgan Lloyd wrote:
Should this work from the assembler window? The buttons appear to step to the next source line and manually setting a breakpoint by typing in an address appears to work on some architectures (PPC) but not others (SPARC).


Yes the button should do single step (whatever gdb belives a single instruction step to be), if supported by gdb. You can also assign keys (like alt-f8 alt-f7); or make the default f7/f8 focus sensitive (so they single-inst-step if the asm win has focus).

If it does not work for you, please open the "Debug output" window from "view" / "debug windows" and check what command is sent to gdb.

I've been looking at this on various platforms. I can't easily test Windows due to an apparent build problem, but on Linux and Solaris:

x86 (gtk2 and Qt): "Step into" (-> -exec-step-instruction) OK. "Step Over" (-> -exec-next-instruction") OK. Intel-format assembler, formatted OK.

ARM (gtk2, emulated by Qemu, not susceptible to alignment errors): Debugger access is erratic, works best if debug windows displayed before program run. "Step into" (-> -exec-step-instruction) OK. "Step Over" (-> -exec-next-instruction") OK. Assembler window shows tabs as \t.

PPC (gtk2): "Step into" (-> -exec-step-instruction) OK. "Step Over" (-> -exec-next-instruction") runs to termination or until it finds an explicit breakpoint. Assembler formatted OK.

SPARC (gtk2): "Step into" (-> -exec-step-instruction) appears to step over the next instruction if it's a call, however this appears to be an artifact of the way calls work (i.e. with a mandatory nop appended). "Step Over" (-> -exec-next-instruction") OK provided that the above is taken into consideration. Assembler window shows tabs as \t.

SPARC Solaris: as above.


Reliability in some cases might be improved by restarting Lazarus after a debugging session, particularly if the target program hasn't run to completion.

I think that the PPC problem is real, but if so it might be a gdb rather than a Lazarus issue. Single-stepping SPARC assembler requires a good understanding of the way calls work.

All 0.9.30.1 built with bigide using 2.4.4; Linux (Debian "Lenny" or "Squeeze") using X over SSH.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to