morsik Napisano Maj 11, 2009 Zgłoszenie Share Napisano Maj 11, 2009 Witam, piszę (a właściwie przepisuję program) program z wykorzystaniem c++ i JACKa. Kod biorę ze starego programu który też napisałem. Przepisuję go głównie dlatego, że chciałem nauczyć się używać klas i poprawnie includować (wcześniej błędnie includowałem pliki .cpp zamiast .h). No ale nie o tym tem topic. Problem polega na tym, że cały kod przepisałem do nowego pliku z małymi zmianami, bo w nowym programie użyłem std::vector do tablic w kilku zmiennych aby nie marnować pamięci. I wszystko wydaje się działać, poza tym, że czasami zdarzają się programowi SEGFAULTy. Odpaliłem więc strace z tym programem i widzę dość dziwny komunikat przed wywaleniem się programu: ................................................................................ .................................. <unfinished ...> Kod tego kawałka na którym się wywala: void JACK::Run() { cout << "JACK::Run" << endl; while(1) { cout << "."; } cout << endl; } Konkretnie, to wywala się na tej pętli while, nie wiedzieć czemu. Strace jak widać, pokazuje tajemnicze <infinished ...>, które nie wiem właśnie co może oznaczać. Problemem jest także to, że praktycznie każde najprostsze polecenie w JACK::Run wywala cały program. Nie chcę tu umieszczać całego kodu, ale jeśli będzie potrzeba to dam. Ogólnie dziwna sprawa, JACK wydaje się kompilować poprawnie (są tylko 4 warningi o złej konwersji ze string do char* i o złym porównaniu int). Ale to we wcześniej wykonywanej funkcji. Ogólnie pytanie miało dotyczyć: co oznacza owo tajemnicze <unfinished ...> EDIT$ Ech, już sobie poradziłem. Zrobiłem sobie szybki kurs gdb i okazało się, że błąd był "z drugiej strony pliku". W innej funkcji odpowiedzialnej za pobieranie peak (nie wiem jak to za bardzo przetłumaczyć, bo wierzchołek raczej nie pasuje) z portu JACKa. Po poprawie tam kodu już wszystko działa. Ten temat raczej to usunięcia jest... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się