Remote Debug VS22 Raspian



  • Hi,
    ich habe auf dem Raspberry ein Codeblocks -Projekt das neben einen Webserver auch einen Camara -(Streamer) enthält, incl. Hardwarecodec Benutzung. Das Projekt läuft wunderbar wenn ich das mit Codeblocks über den gcc kompiliere und in der Konsole ausführe.

    Jetzt habe ich über VS22 ein Projekt erstellt das nun als Remote Debug LINUX Raspian die selben Projektdaten öffnet, und alles lässt sich
    prima über remote von w10 aus kompilieren und ausführen.

    Aber..

    Wird jedoch auf dem Raspberry der Camera -Stream über html5 ausgelöst, erhalte ich immer vom Socket den Fehler "broken pipe" und der ganze Prozess stürzt ab.

    Das Kompilat das VS erzeugt ist über Konsole auf dem Pi gar nicht startbar, das scheint gar keine Executable zu sein Was ist das denn ?

    Was geht denn da schief ? Und warum funktioniert es über remote wenn die Transfergrößen pro send nicht 32Kb übersteigen ?

    Beispiel der Testserien : https://www.twitch.tv/videos/1605678089?t=02h13m53s

    Vielen Dank für Hinweise
    Vg K.



  • Ja Nachtrag, nach langer Suche stellt sich raus, das ein Browser der ein Video empfängt, dessen sendeparts über 1MB liegen, dieser dann auch die Verbindung trennt, während des transfers, kein problem aber nach dem Transfer soll noch ein terminate sequenz gesendet werden, dann aber ist der Socket schon ungültig und crash. Abhilfe also vor dem senden fragen ob der socket noch gültig sei :

    int error_code;
        socklen_t error_code_size(sizeof(error_code)); //after long pack send, it is possible client has disconnected befor send this,  test connection first!
    
        getsockopt(r->m_s->s_socket, SOL_SOCKET, SO_ERROR, &error_code, &error_code_size);
    

    Das ist ja dann recht unschön dies an den kritischen stellen anzuwenden.

    Gibt es da keine bessere Lösung ?

    Danke für Hinweise
    K aus B.



  • @KahnSoft sagte in Remote Debug VS22 Raspian:

    Das Kompilat das VS erzeugt ist über Konsole auf dem Pi gar nicht startbar, das scheint gar keine Executable zu sein Was ist das denn ?

    Hast du das File als executable markiert (+x)?

    Wird jedoch auf dem Raspberry der Camera -Stream über html5 ausgelöst, erhalte ich immer vom Socket den Fehler "broken pipe" und der ganze Prozess stürzt ab.

    Klingt jetzt nach SIGPIPE. Du könntest mal probieren das Ding explizit zu blocken/ignorieren.



  • @hustbaer sagte in Remote Debug VS22 Raspian:

    IGPIPE.

    Hi ,

    ja wurde markiert chmod -x naja mal sehen was da faul geht. Danke der Hinweise,
    die broken pipe kommt halt vom senden, obschon der Socket discon ist. Da laufen dann noch andere threads, die senden noch gerade bilder videos usw. konnte ich nun abfangen.

    Sehr gut mit vs den pi zu compilieren, das geht gut ab.

    Grüße
    K.


Anmelden zum Antworten