Danke
fliegermichl, für deine Mühe.
Falls du eine GUI haben möchest für gdb, habe ich folgendes gefunden:
https://github.com/cs01/gdbgui
Im Verzeichnis
downloads\windows die EXE runterladen und den Pfad der gdb.exe von Lazarus (bspw. "
C:\lazarus\mingw\x86_64-win64\bin") in der
systemweiten Umgebungsvariable PATH einfügen. Dann die gdbgui-EXE starten und los geht's!
Nicht vergessen, diesen Befehl einzugeben, weil sonst standardgemäß die C ausgewählt ist. Vielleicht weißt du das aber auch schon.
Ich habe auch ein wenig rumprobiert, aber werde einfach nicht schlau daraus. Unter bestimmten Bedingungen kann man die C-Funktion
strcmp() nutzen. Teilweise gibt es "
segment faults", wenn ich Vergleichs-Funktionen, wie
UTF8CompareText() oder
strcmp(), aufrufe; teilweise sogar in Windows-DLLs, was wohl daran liegt, dass eben Funktionen aus diesen DLLs genutzt werden, aber warum die Fehler auftreten - Keine Ahnung. "
Adress out of bounds" habe ich auch gehabt, wenn ich String-Literale zum Vergleich nutzen wollte, bspw. in
UTF8CompareStr().
Also würde ich schlussfolgern, dass das Problem mit den String-Literalen zu tun hat. Die haben scheinbar keine gültige Adresse, falls die überhaupt eine Adresse haben sollten. Jedenfalls wird, wenn man das Fenster der Lazarus-IDE "
Liste überwachter Ausrücke" verwendet, keine Adresse angezeigt, weil:
Code: Alles auswählen
Can't take adress of \<beliebiger Konstanten-Bezeichner> which isn't an lvalue.
Wohl ein paar Schreibfehler drin. Vergleiche mit einem einzelnen Zeichen scheinen zu funktionieren (s = 'a'), aber nicht immer, weil dann "
Adress out of bounds" kommt. Vielleicht werde ich noch im Verlaufe des Tages weiteres zu posten.
-- Dee