[erledigt] Debuggen einer Bibliothek

Hallo zusammen!

In einer Bibliothek befindet sich ein Fehler, den ich erlegen möchte. Ich glaube, so etwas schon einmal damit angefangen zu haben, in einer Bibliothek Serial.print()-Befehle zu verwenden.

Diesmal klappt das blöderweise nicht. Habe ich eine lfasche Erinnerung?

Den Code könnte ich posten, wenn der Rechner eingeschaltet wäre, auf dem der Sketch liegt. Wenn das nötig sein sollte, hole ich das nach.

Gruß

Gregor

PS: Ich musste die Kiste eh einschalten. Hier ein Auszug des Codes:

// gAxis.cpp

#include "gAxis.h"
#include <stdint.h>
#include <Arduino.h>

...

void gAxis::action()
{
  steps--;

  Serial.print(steps);
  
  if(motorL->action())
    {
...

Hallo,

ich sehe grundlegend kein Problem für serielle Ausgaben in einer Lib. Wenn sie nun nicht gerade abgefahrene Dinge tut.
Eine Lib ist ja erstmal nichts weiter als ausgelagerter Code mit bestimmten Zugriffschutz.
Vielleicht verwendest du die falschen Variablen in der Lib.

Oder du erstellst noch public Variablen, machst intern eine Kopie (Wertübergabe) deiner zu debuggenden Variablen und rufst sie im Hauptprogramm auf.

Meine Glaskugel tippt darauf, dass Serial.print selbst nicht das Problem ist.

Nicht in Konstruktoren von globalen Objekten oder in ISR Funktionen, aber generell geht es schon.

Problematisch wird es evtl. , wenn du sowohl eine debug-Version wie die original Lib im Zugriff hast.

Die original-Bibliothek-Dateien umbenennen, bis sie nicht mehr gefunden werden, dann im gleichen Ordner wie dem Test-Sketch die debug-Version hinzufügen, möglichst mit “Neuer Tab”. Bis es wieder geht. Dann nach Geschmack Serial.print dazu.

#include "test.h" // statt <test.h> hilft evtl. auch.

Hallo nochmal!

Vielen Dank für Eure Antworten.

Schön, dass der Fehler anderswo liegt als in meiner Erinnerung. So habe ich zwar noch einen weiteren Fehler, den ich jagen muss, aber das bekomme ich schon noch hin. Und wenn das Ding fertig ist, mache ich wieder einen „Weekender“ daraus.

BTW: Weil ich in einer anderen Sache im Debianforum unterwegs war, ist mir aufgefallen, dass dort im Unterschied zu „früher“ die Threads nicht mehr standardmäßig „zugemacht“ werden (als erledigt gekennzeichnet). Hier ist es leider ebenfalls unüblich. Was das angeht, bin ich wohl ein Exot (bin ich als jemand, der kein Händi hat, sowieso).

Schöne Restwoche!

Gregor