Programm segfaulted

Verschiedenes zu Qt
Antworten
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Programm segfaulted

Beitrag von bueffel2 »

Hallo,

ich habe ein problem und zwar stuerzt mein Programm immer ab wenn ich einen slot mit einem signal verbinden will ueber connect.
Folgender Code:

Code: Alles auswählen

  connect(prc, SIGNAL(readyReadStdout() ), this, SLOT( checkFile_ready() ) );
  connect(prc, SIGNAL(processExited() ),   this, SLOT( checkFile_finished() ) ); 
Da will ich prc mit den entsprechenden signalen und slots verbinden.
prc sieht so aus:

Code: Alles auswählen

QProcess  *prc;
Es kommt einfach nur ein segmentation fault. gdb sagt es liegt am connect...

Ist vielleicht jemand von euch so nett und koennte mich korrigieren?

danke

buffalo
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Du erstellst einen Pointer zu einem QProcess, aber erstellst du die eigentliche Instanz auch (new QProcess)? Natürlich vor dem connect.
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Beitrag von bueffel2 »

Also in der Datei selber ist das Objekt erstellen nach dem connect.
Muss es vor den connect stehen?
Also rein von der Ordnung?

Hatte mir das selbe naemlich auch gedacht. Aber dachte QT waer so schlau, dass er das bemerkt.
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

So schlau kann Qt garnicht sein. Du willst ein nicht existierende Objekt verbinden.. Das kann natürlich nur schief gehen.

Dein Pointer ist zur Zeit des connect nicht initialisiert, also er zeigt _irgendwo_ im Speicher hin. Und später möchtest du das Objekt das an dieser Stelle im Speicher liegt verbinden, nur das Objekt exisiert garnicht -> segfault.
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Beitrag von bueffel2 »

okay. dann teste ich das gleich mal.
macht alles sinn was du gesagt hast.
Ich bedanke mich vielmals und entschuldige mich fuer eine vielleicht bloede Frage! :)

Vielleicht klappts ja dann
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Beitrag von bueffel2 »

Ist eohl noch nicht so ausgereift.
Nun bekomm ich naemlich mit:

Code: Alles auswählen

  connect(prc, SIGNAL( readyReadStandardOutput() ), this, SLOT( checkFile_ready() ) );
  connect(prc, SIGNAL( finished() ),   this, SLOT( checkFile_finished() ) );
Object::connect: No such signal QProcess::finished()

Weiss jemand was da passiert ist?
Folgendes ist mein Funktionskopf:

MyWindow::MyWindow( QMainWindow *parent,
Qt::WindowFlags flags) : QMainWindow(parent, flags) {
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Es gibt auch kein Signal finished() ...

Siehe http://doc.trolltech.com/4.3/qprocess.html#finished
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Beitrag von bueffel2 »

klappt
Zuletzt geändert von bueffel2 am 31. März 2008 14:07, insgesamt 1-mal geändert.
bueffel2
Beiträge: 37
Registriert: 17. November 2007 15:22

Beitrag von bueffel2 »

Hat sich erledigt! Klappt
Zuletzt geändert von bueffel2 am 31. März 2008 14:07, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was meinst Du?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten