Hi JoshyFun,
in this context, maybe have a look at:
http://bugs.freepascal.org/view.php?id=10665
I don't know if it overlaps with your plans, or is unrelated...
Best Regards
Martin
JoshyFun wrote:
Hello Lazarus-List,
I'm trying to improve some debug parts up to where my skills let me
and I had found some things that I was unable to understand:
1) I was unable to find how TIDEWatch is connected with GDBMIDebugger,
in special the "GetValue" property getter. As I understand GetValue
will return the "default value representation" so to add override
representation, in example "memory dump", a new function should be
added like "GetValue(FormatSet)".
2) The IDE hints are always draw using DT_CENTER which ruins any
multiline representation. Is possible to remove this DT_CENTER from
"procedure THintWindow.Paint" ?
3) In the case of class debug I had added to the result the data
returned from evaluating de dereference, something like inspecting
"Class" and "Class^" which offers more information. Are this kind of
improvements of some interest ?
4) gdb class information looks very strange to me, in example a
TMemoryStream dumps:
~"type = TMEMORYSTREAM = class : public TCUSTOMMEMORYSTREAM \n"
~" private\n"
~" FCAPACITY : LONGINT;\n"
~"\n"
~" public\n"
~" procedure SETCAPACITY (TMEMORYSTREAM, ONGINT, );\n"
~" function REALLOC (TMEMORYSTREAM, ONGINT, ) : POINTER; virtual;\n"
~" destructor ~DESTROY (TMEMORYSTREAM, OINTER); virtual;\n"
~" procedure CLEAR (TMEMORYSTREAM);\n"
~" procedure LOADFROMSTREAM (TMEMORYSTREAM, STREAM, );\n"
~" procedure LOADFROMFILE (TMEMORYSTREAM, ANSISTRING);\n"
~" procedure SETSIZE (TMEMORYSTREAM, ONGINT, ); virtual;\n"
~" function WRITE (TMEMORYSTREAM, onst7, ) : LONGINT; virtual;\n"
~"end\n"
Note the missing "L" in second parameter when LONGINT was expected, or
missing "T" in LOADFROMSTREAM, but the most strange to me is the
"onst7". What's "const7" ? Does anybody know why those letters are
missing ?
5) When an exception is raised and "stop" button is pressed usually
the assembler window pops up instead the line where the exception
happends, or the nearest line with debug information. I had changed my
code to show the assembler window only if no line with debug
information is found in the backtrace. But I do not exactly know how
that procedure works and maybe I missed something important, or maybe
that's the expected behavior :-?
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus