나는 이 매우 이상하다. 문제가 있으며 코드를 전송할 수 없으므로 설명하려고 노력할 것이다.절대로 실행되지 않는 코드의 작은 변화가 어떻게 달라질 수 있습니까?
이것은 더 철학적 인 문제와 비슷합니다. 누군가가 이것을 생각할 시간/지식이 있기를 바랍니다.
1) 나는 project.cpp과 같이 정확하게 찾고있다 :
#include <pthread.h>
#include <unistd.h>
pthread_t pplayer_thread;
void *play(void*);
int main(int argc, char **argv) {
pthread_create(&pplayer_thread, NULL, play_cb, NULL);
usleep(5000000);
return 0;
}
이 같은
2) pplayer.cpp보고 뭔가 : 가 _from_main.cpp 뭔가를 찾고 not_executed
...
void *play_cb(void *arg) {
// this starts movie using gstreamer and exits thread
}
...
3) like :
...
extern MyClass *myObj; // this is included from .h file
...
MyClass *myObj = NULL;
...
some_function() {
...
myObj = MyClass::createNew(args);
...
}
...
이것은 모두 linke입니다. 여러 가지 다른 도서관과 쓰레기 톤과 함께,하지만 이것은 기본적으로 중요한 것입니다.
->문제 :
내가 이것을 실행하면, 나는 창 5 초 동안 gstreamer를을 사용하여 동영상 재생 볼 수 ->하지만 난 단지 소리를들을!
->이상한 일이 : 나는 줄 언급 할 때
는 :
myObj = MyClass::createNew(args);
및 다시 실행을 -> 나는 또한 gstreamer를 창이 표시 (모든 것이 괜찮습니다)
->참고 :
이것은 뭔가있을 수 있습니다. 함께 할 수있는 :
- 연결 과정 및 MyClass에의 성격과 혼합 부모 클래스 (내 추측)
- "정적"키워드
- "외부"키워드
- C 및 C++의
은 ->나는 한 번 더 물어 :
결코 실행되지 않는 코드의 작은 변화가 어떻게 달라질 수 있습니까?
(도와주세요)
예상되는 메모리 문제, valgrind로 확인 – academicRobot
valgrind에서 프로그램을 실행하고 stackoverflows/memory leaks/double frees/가 있는지 확인하십시오. –
orlp
차이가 없어야합니다. 그러나 당신의'not_executed_from_main.cpp'가 당신이 알지 못하는 차이를 만들고있는 것 같습니다. 이 .cpp 및 .h 파일을 더 많이 보여줄 수 있습니까? –