I moved this from the "What are we missing?" thread.
I've been on vacation for the past 3 weeks and did some bit of a progress for duby.
It's not much to see, yet.
But I did successfully implemented expression valuation, like:
calc(a,b)+calc2(a,b)
where calc() and calc2() are functions in the debugged process, using different calling conventions. (the evaluation is made based on the debugging info available). Needless to say, the expression valuation is expecting pascal syntax.
The biggest challenge was/is actually to create Lazarus-IDE plugin.
The lack of documentation for that is being addressed though.
(please don't point me to GDB plugin... it's 12K lines of code...)
But at this point duby as Lazarus plugin is capable to run,pause and stop the debugged process. Stop at break points, stop and remove them.
Currently working on disassembling (providing some small notes for TCapstone project). And later adding expression valuation support for the plugin as well.
Lot more work to be ahead.
@skalogryz, is it possible you don't know about the current development of FPDebug and its related packages in Lazarus sources?
Well, I don't know much about them either but I really think the debugger effort should be focused into one project.
Joost and Martin have contributed there. Why did they not improve your Duby project directly? I don't know, I believe they have some reason.
@Martin, Joost, comments?
Another complication is that Graeme has another fork also named "FPDebug" but different from "FPDebug" in Lazarus sources. It is now dormant, too.
These are the packages under Lazarus components:
fpdebug 0.0:Author: Lazarus Team
Description / Abstract: A set of helperclasses for implementing a debugger.
Based on:
1) FPDebug by Marc Weustink
2) Duby by Dmitry Boyarintsev
Extended by Martin Friebe
License: All Files except those listed below: GPL
File(s) with other licenses (see also header in file(s):
* macho.pas
This file contains Original Code and/or Modifications of Original Code as defined in and that are subject to the Apple Public Source License Version 2.0 (the 'License'). You may not use this file except in compliance with the License. Please obtain a copy of the License at
http://www.opensource.apple.com/apsl/ and read it before using this file.
(Any modifications/translations of this file are from duby)
Filename: /usr/SW/lazarus_trunk/components/fpdebug/fpdebug.lpk
Current state: not installed, RunAndDesignTime
lazdebuggerfp 0.0:Author: Joost van der Sluis
Description / Abstract: This package adds a stand-alone debugger to the IDE. For now it is only a proof-of-concept. Evaluating data is not (yet) possible.
License: GPLv2
Filename: /usr/SW/lazarus_trunk/components/lazdebuggers/lazdebuggerfp/lazdebuggerfp.lpk
Current state: not installed, RunAndDesignTime
lazdebuggerfpdserver 0.1:Author: Joost van der Sluis
Description / Abstract: Use fpdserver to debug applications
Filename: /usr/SW/lazarus_trunk/components/lazdebuggers/lazdebuggerfpdserver/lazdebuggerfpdserver.lpk
Current state: not installed, DesignTime
lazdebuggerfpgdbmi 0.1:Author: Martin Friebe
Description / Abstract: Debugger for the Lazarus IDE
A debugger based on FPDebug and GDB
License: GPL
Filename: /usr/SW/lazarus_trunk/components/lazdebuggers/lazdebuggerfpgdbmi/lazdebuggerfpgdbmi.lpk
Current state: not installed, RunAndDesignTime