Я пытаюсь портировать довольно большой проект Windows на основе SDL и WxWidgets на Mac OS X.
Впервые на Mac я могу запустить свое приложение, но кажется, что отладчик не работает должным образом. При взломе моего приложения представление стека, кажется, имеет смысл, но когда я нажимаю на одно из имен функций, показанных в представлении стека отладчика, представление кода ниже показывает мне совершенно другой кусок кода.
Например, я нажимаю «main» в представлении стека, но окно кода ниже переходит к строке 100 stdexcept из Mac OS X SDK.
Я пытался использовать отладчик с проектом "hello world", и все работало, поэтому проблема должна быть связана с моим проектом. Я уже проверил следующие параметры в настройках проекта:
Создание символов отладки: 1 уровень
Символы отладки: все символы
Уровень оптимизации: Нет
Варианты сборки: отладка
Я также убедился, что в настройках отладчика «Загрузить символы Lazily» отключено.
Что может стать причиной неисправности отладчика?
Редактировать: Я уже исключил окончание файлов Windows, преобразовав все файлы .cpp и .h в окончания строк Unix, как предложено sqook.
Второе редактирование: поскольку проблема возникает только в этом конкретном проекте, я публикую здесь все настройки, которые я изменил по сравнению с настройками по умолчанию (кроме путей поиска в заголовке). Возможно, один из них мог быть виновником?
ARCHS = $(NATIVE_ARCH)
SDKROOT = macosx10.5
VALID_ARCHS = i386 x86_64
BUILD_VARIANTS = normal
MACOSX_DEPLOYMENT_TARGET = 10.4
COPY_PHASE_STRIP = NO
DEAD_CODE_STRIPPING = NO
OTHER_LDFLAGS = $(OTHER_LDFLAGS_LIBBOOST) $(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1) $(OTHER_LDFLAGS_QUOTED_FOR_PROJECT_2) $(OTHER_LDFLAGS_WXWIDGETS)
PREBINDING = NO
PRODUCT_NAME = Gemsweeper
FRAMEWORK_SEARCH_PATHS = $(HOME)/Library/Frameworks /Library/Frameworks $(FRAMEWORK_SEARCH_PATHS)
HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_7) $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_6) /usr/local/include $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_1) $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2) $(HOME)/Library/Frameworks/SDL.framework/Headers /Library/Frameworks/SDL.framework/Headers $(HEADER_SEARCH_PATHS) /opt/local/var/macports/software/boost/1.37.0_0+darwin_9/opt/local/include $(HOME)/Library/Frameworks/SDL.framework/Headers /Library/Frameworks/SDL.framework/Headers $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_3) $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_4) $(HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_5)
LIBRARY_SEARCH_PATHS = /usr/local/lib /opt/local/lib
GCC_DEBUGGING_SYMBOLS = full
GCC_OPTIMIZATION_LEVEL = 0
OTHER_CFLAGS = $(WX_CXX_FLAGS)
OTHER_CPLUSPLUSFLAGS = -I/usr/local/lib/wx/include/mac-ansi-debug-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -D__WXMAC__
GCC_PREPROCESSOR_DEFINITIONS = NO_BASS_SOUND _DEBUG XCODE __WXMAC__
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES
GCC_WARN_UNUSED_VARIABLE = YES
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_1 = '/Users/adriangrigore/Documents/Gemsweeper Mac'
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_2 = "/Users/adriangrigore/Documents/Gemsweeper Mac/Finity Engine VS 2003/WxNonogram"
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_3 = "/Users/adriangrigore/Documents/Gemsweeper Mac/Finity Engine VS 2003/Finity Engine VS 2003/myunits/resmanager"
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_4 = "/Users/adriangrigore/Documents/Gemsweeper Mac/Finity Engine VS 2003/Finity Engine VS 2003/myunits"
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_5 = "/Users/adriangrigore/Documents/Gemsweeper Mac/Finity Engine VS 2003/Finity Engine VS 2003"
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_6 = "/Users/adriangrigore/Documents/Gemsweeper Mac/Finity Engine VS 2003/Finity Engine VS 2003/myunits/compiler-dependent"
HEADER_SEARCH_PATHS_QUOTED_FOR_PROJECT_7 = '/Users/adriangrigore/Documents/Gemsweeper Mac/3rd party/AntiGrain/include'
OTHER_LDFLAGS_LIBBOOST = /opt/local/lib/libboost_program_options-mt.a /opt/local/lib/libboost_filesystem-mt.a /opt/local/lib/libboost_serialization-mt.a /opt/local/lib/libboost_system-mt.a /opt/local/lib/libboost_thread-mt.a
OTHER_LDFLAGS_QUOTED_FOR_PROJECT_1 = '/Users/adriangrigore/Documents/Gemsweeper Mac/3rd party/FreeImage/Dist/libfreeimage.a'
OTHER_LDFLAGS_QUOTED_FOR_PROJECT_2 = '/Users/adriangrigore/Documents/Gemsweeper Mac/3rd party/cpuinfo-1.0/libcpuinfo.a'
OTHER_LDFLAGS_WXWIDGETS = -L/usr/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macd_richtext-2.8 -lwx_macd_aui-2.8 -lwx_macd_xrc-2.8 -lwx_macd_qa-2.8 -lwx_macd_html-2.8 -lwx_macd_adv-2.8 -lwx_macd_core-2.8 -lwx_base_carbond_xml-2.8 -lwx_base_carbond_net-2.8 -lwx_base_carbond-2.8
Надеюсь, последнее редактирование: Я только что обнаружил, что проблема на самом деле не связана с отладчиком XCode, а связана с лежащим в основе GDB. Я вижу точно такую же проблему при отладке моей программы через командную строку. Поэтому я переместил этот вопрос в Трассировка стека отладчика GCC отображает неправильное имя файла и номер строки .