[c++, gdb, cygwin] как изменить пути к исходникам в pdb ?
а если заменить с: на c_?
надо отыскать бинари едитор, но у меня нет уверенности что все пройдет гладко вдруг там хеши\црс прописаны и файл станет corrupted.
А как так получается, что в результате сборки "цигвином под виндой" у тебя пути виндовые? Ты уверен, что у тебя там не затесался где-нибудь какой-нибудь виндовый линкер (от вижуалстудии, например) вместо линкера под цигвин?
если выполнить команду в винде:
gcc.exe -g C:\cygwin\opt\crosstool\i686-unknown-linux-gnu\gcc-4.2.3-glibc-2.7\bin\tmp.cpp
и открыть на просмотр полученный a.out, то там можно увидеть C:\cygwin\...
если выполнить команду в винде:Это логично, gcc же не будет специально пути переписывать.
gcc.exe -g C:\cygwin\opt\crosstool\i686-unknown-linux-gnu\gcc-4.2.3-glibc-2.7\bin\tmp.cpp
и открыть на просмотр полученный a.out, то там можно увидеть C:\cygwin\...
А неужели в цигвине нет unix-like дерева каталогов, чтобы можно было писать а-ля gcc[.exe] -g /opt/crosstool/.../tmp.cpp?
Кто мешает написать с прямыми слешами? Только там не C:/blablabla будет (точнее, так тоже будет работать, потому что винда понимает прямые слеши, но твою проблему это не решит а /cygdrive/c/blablabla, если я правильно помню.
Вообще почему ты это всё не из цигвиновского баша же делаешь? Там ты можешь в точности такое дерево сделать, какое будет на дебагаемой машине, прям симлинками из-под его /, и не париться вообще.
у меня есть лишь возможность приписать ключи к компилятору gcc.
в общем, опять всех понесло не в том направлении =\
Это действительно самый правильный вариант.
в моей мейк системе невозможно сделать такой реплейс (там еще виндовый драйвер участвует для поиска депендов и спец ехешник, который натравливает gcc на исходники)
в моей мейк системе невозможно сделать такой реплейстак сделай туда инсёрт!
гдб не хавает больше символыне понял фразы, но предложу заменить общий префикс на путь к какому-нить симлинку. напрмер, в корне. так, чтобы буков было ровно столько же.
если заменить "C:" на "C2", то гдб уже не грузит такие символы
если заменить "C:" на "C2", то гдб уже не грузит такие символыпочему ит?..
все папочки-мамочки есть?
Оставить комментарий
Maurog
Имеется следующая проблема: есть большой проект, который собирается только цигвином под виндой. бинарники копируются на юникс-систему и там запускаются.Требуется сделать получающийся бинарник debug-friendly.
Использую kubuntu 7.10 для дебуга + ddd\kdevelop.
Основная проблема сейчас с путями к исходным файлам - они виндовозные: c:/mydir/main.cpp и тд.
Пытался сделать сделать аналогичную структуру каталогов на юникс-системе (сделал каталог "C:" и тд но gdb спотыкается на двоеточии и говорит Cannot load source C.
Хотелось бы подхачить выходную дебуг-информацию, чтобы пути стали более адекватными.
Копал в сторону gcc:
но моя версия gcc не знает такого ключика (и я не уверен, что он поможет).
Смотрел ключики от gdb, objdump, objcopy тоже ничего умного не нашел.
Писать свою тулзу с использованием BFD, которая будет наподобие objcopy - это я могу не осилить.
Еще можно было бы все папки из проекта добавить в dirs у gdb (их несколько сотен будет но имена файлов не уникальны, думаю, тут gdb споткнется и будет некорректно отображать файлы.
В общем, жду здравых идей и _конкретных_ предложений.
Претензии, что "так никто не делает" прошу оставить при себе.