2013-02-05 3 views
0

gcc4.0을 사용하여 32 비트 대상에서 OK를 빌드하고 이제는 64 비트 대상에서 실패한 응용 프로그램에서 fftw가 segfaulting 인 이유를 찾아야합니다. gcc4.6.디버그 기호가있는 FFTW 빌드 - 64 비트 대상 포트 문제

FFTW 구성 옵션 :

  • --enable-디버그
  • --enable-디버그 malloc에 ​​

만 추가 표시

  • --enable-디버그 정렬 내부 디버그, 나는 segfault의 원인을 추적하려고 할 수 있도록 gdb 디버그 기호를 켜서 어딘가에 도착하기를 바랬다. 어떻게 든 놓친 gdb 디버그 옵션이 있습니까?

    또는 fftw에서 segfault를 추적해야하는 다른 방법이 있습니까?

  • +0

    configure에 의해 생성 된 Makefile은 CFLAGS에 -g가 포함되어 있습니다. 이제는 -ggdb로 변경되었으므로 이제 gdb에 대한 디버그 정보를 얻습니다. null 계획이 반환되므로 검색 범위가 좁혀집니다. – rolinger

    +0

    플래닝 플래그는 모두 1로 설정되어 있으므로 FFTW_WISDOM_ONLY가 설정되어 있다고 생각하므로 fftwf_mkapiplan에서 null을 반환하며로드 된 지혜가 없습니다. – rolinger

    +0

    그리고 FFTW_FORWARD는 FFTW 라이브러리 포함 파일에서 -1로 정의 되었기 때문에 항상 그렇습니다. 왜 갑자기 새 빌드에서 문제가 발생했는지 명확하지 않지만 복잡한 변환에서 실제와 같이 암시 된 것처럼 지금은 필요하지 않습니다. – rolinger

    답변

    0

    위의 저의 코멘트에서 언급했듯이, fftw3의 configure에 의해 생성 된 Makefile을 편집하여 -ggdb를 CFLAGS에 추가했습니다.