[fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Entwicklung
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

[fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von GetAway »

Streaminfo2 kann aktuell nicht für Armboxen genutzt werden, evtl auch nicht für andere. Es baut ohne Fehler, bis auf
die deprecated Sachen, wenn man neueren FFMPEG nutzt. Neutrino Segfaultet schon zu 90% im übergeordneten Menü,
sehr seltsam. GDB spuckt die unterschiedlichsten Sachen aus, ist also nicht zu gebrauchen. Ganz selten startet Streaminfo2,
segfaulted dann aber beim schließen.

Gebaut wird mit gcc-6.3.1, FFMepg 3.3.8, 3.4.5, 4.0.3 , aber auch flk's Yocto Buildsystem bringt den Fehler.

Vielleicht kümmert sich mal jemand darum der es voll drauf hat, wäre ganz toll.

Danke
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Beitrag von seife »

in Neutrino-MP tritt das nicht auf, bei mir funktioniert das ;-)

Klingt nach Speicherkorruption / Heap overrun. Ich würde Valgrind drauf ansetzen, der Fehler ist evtl. viel Früher und ganz wo anders.

Passiert es auf dem PC auch? Da läßt sich Valgrind meist komfortabler einsetzen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Beitrag von GetAway »

Welche Armbox hast du? Und baut das bei dir ohne Probleme, denn in deiner
info_menue.cpp steht
#include <gui/streaminfo1.h>
//#include <gui/streaminfo2.h>

Valgrind für den PC muss ich erstmal bauen.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Beitrag von seife »

HD1, ich hab aber schon ewig nix mehr gebaut. Das streaminfo1 war ja glaub nur ein umbenanntes streaminfo2, weil die Vandalen beim reinwürgen des 4k-codes alles kaputtgemacht hatten, wenn ich mich recht erinnere, ich habe ja dann vermieden da noch irgendwas von zu mergen...

Jedenfalls stürzt im Neutrino-MP da nix ab ;-)
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault und malloc Fehler: Streaminfo2 für ARM

Beitrag von GetAway »

Dann baut bei dir streaminfo1, weil du kein BOXTYPE_ARMBOX hast und kannst traurigerweise garnicht helfen.
Die Coolis laufen unter BOXTYPE_COOL (acinclude.m4) und damit baut streaminfo1.
Leider baut ja auf dem PC auch nur streaminfo1 ;)

Ich ändere mal den Titel
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von seife »

Aber dann müsste es ja trotzdem möglich sein, streaminfo2 auch für PC zu bauen und dort zu testen?

Wenn nicht => frage dich, was die "Erfinder" da wohl falsch gemacht haben ;-)
satbaby
Beiträge: 1
Registriert: Montag 12. November 2018, 19:46

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von satbaby »

Neutrino Segfaultet schon zu 90% im übergeordneten Menü,
Das kommt von falschen includes in code wenn man streaminfo2 baut:

Code: Alles auswählen

diff --git a/src/gui/info_menue.cpp b/src/gui/info_menue.cpp
index d92fd74a0..cb5f2eacc 100644
--- a/src/gui/info_menue.cpp
+++ b/src/gui/info_menue.cpp
@@ -37,8 +37,8 @@
 #include <gui/info_menue.h>
 #include <gui/imageinfo.h>
 #include <gui/dboxinfo.h>
-#include <gui/streaminfo1.h>
-//#include <gui/streaminfo2.h>
+//#include <gui/streaminfo1.h>
+#include <gui/streaminfo2.h>
 
 #if 0
 #include <gui/buildinfo.h>
diff --git a/src/gui/user_menue.cpp b/src/gui/user_menue.cpp
index 50e72bcca..596cd70fe 100644
--- a/src/gui/user_menue.cpp
+++ b/src/gui/user_menue.cpp
@@ -49,8 +49,8 @@
 #include "subchannel_select.h"
 #include "favorites.h"
 #include "audio_select.h"
-#include "streaminfo1.h"
-//#include "streaminfo2.h"
+// #include "streaminfo1.h"
+#include "streaminfo2.h"
 #include "epgplus.h"
 #include "epgview.h"
 #include "eventlist.h"
Sonst segaultet streaminfo2 auf PC hier niecht.

gruß

//edit
und das fehlt in movieplayer:

Code: Alles auswählen

diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp
index b08d75e9f..6e255c438 100644
--- a/src/gui/movieplayer.cpp
+++ b/src/gui/movieplayer.cpp
@@ -3258,3 +3258,21 @@ size_t CMoviePlayerGui::GetReadCount()
 //printf("GetReadCount: %lld\n", res);
        return (size_t) res;
 }
+
+unsigned int CMoviePlayerGui::getAPID(void)
+{
+       for (unsigned int i = 0; i < numpida; i++)
+               if (apids[i] == currentapid)
+                       return i;
+       return -1;
+}
+
+std::string CMoviePlayerGui::getAPIDDesc(unsigned int i)
+{
+       std::string apidtitle;
+       if (i < numpida)
+               getAudioName(apids[i], apidtitle);
+       if (apidtitle == "")
+               apidtitle = "Stream " + to_string(i);
+       return apidtitle;
+}
Zuletzt geändert von satbaby am Montag 12. November 2018, 20:03, insgesamt 1-mal geändert.
svenhoefer
Interessierter
Interessierter
Beiträge: 42
Registriert: Donnerstag 25. Oktober 2012, 15:22

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von svenhoefer »

Wenn ich ehrlich sein soll, weiß ich den Grund gar nicht mehr, weswegen ich die "alte" Streaminfo nach streaminfo1 kopiert habe. Irgendwas ging glaub auf den CST-Boxen mit streaminfo2 nicht.

Und das mit dem Vandalismus weise ich entschieden zurück. ^^
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von GetAway »

Satbaby hat Recht mit den includes. Es läuft nach der zusätzlichen Anpassung der Makefile.am

Code: Alles auswählen

--- a/src/gui/Makefile.am
+++ b/src/gui/Makefile.am
@@ -112,13 +112,13 @@ libneutrino_gui_a_SOURCES = \
 	xmltv_setup.cpp \
 	zapit_setup.cpp
 
-#if BOXTYPE_ARMBOX
-#libneutrino_gui_a_SOURCES += \
-#	streaminfo2.cpp
-#else
+if BOXTYPE_ARMBOX
+libneutrino_gui_a_SOURCES += \
+	streaminfo2.cpp
+else
 libneutrino_gui_a_SOURCES += \
 	streaminfo1.cpp
-#endif
+endif
 
 if ENABLE_EXTUPDATE
 libneutrino_gui_a_SOURCES += \
Jetzt brauchen wir mal nen ordentlichen Patch Satbaby
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von GetAway »

Und Danke an alle. Immer schön wenn alle an einem Strang ziehen. :up:
Janus
Einsteiger
Einsteiger
Beiträge: 232
Registriert: Montag 30. Juli 2001, 00:00

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von Janus »

Mit bbs und aktuellem Git-Stand in einer Stretch-VM gibt's Fehler-Meldung beim Bau für HD51:

Code: Alles auswählen

   CXX      streaminfo2.o
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp: In member function 'void CStreamInfo2::paint_techinfo(int, int)':
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp:1097:59: error: 'box_width2' was not declared in this scope
   g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, box_width2, t.description().c_str(), COL_MENUCONTENT_TEXT);
                                                           ^~~~~~~~~~
/home/janus/development/bbs/source/gui-neutrino/src/gui/streaminfo2.cpp:1097:71: error: 't' was not declared in this scope
   g_Font[font_info]->RenderString(xpos+spaceoffset, ypos, box_width2, t.description().c_str(), COL_MENUCONTENT_TEXT);
                                                                       ^
Makefile:703: die Regel für Ziel „streaminfo2.o“ scheiterte
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von GetAway »

Trotz make Clean ?
Janus
Einsteiger
Einsteiger
Beiträge: 232
Registriert: Montag 30. Juli 2001, 00:00

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von Janus »

Klar, make rebuild-clean!
Aber ich fürchte fast, es liegt an meinen eigenen Änderungen, die per 'git rebase' seit langer Zeit in meinem lokalen Repo sind.
Ein make system-pkgs mit dem master-Branch ist nämlich gerade durchgelaufen!

Sorry. Ich muss das wohl erstmal im mine-Branch selber fixen...
(Der allerdings am Wochenende noch ohne Stress durchgebaut hat)

edit Nachtrag:
Zwei Variablen wurden erst im else-zweig eines if-Konstrukts (if mp) definiert:
box_width2 (ohne int-Deklaration)
und
transponder t

Die Transponderdeklaration und ~belegung habe ich vor die If-Anweisung geschoben
und box_width2 in streaminfo2.h gemeinsam mit box_width deklariert.
Hat dann durchgebaut...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [fixed]Segfault + malloc Fehler: Streaminfo2 für BOXTYPE_ARMBOX

Beitrag von GetAway »

@Janus

box_width2 gibts nur in streaminfo1.cpp, wenn du jetzt für hd51 baust, baust du streaminfo2.cpp :-?