GDB находит исходный путь в локальной Ubuntu, но не в облаке ⇐ Linux
-
Anonymous
GDB находит исходный путь в локальной Ubuntu, но не в облаке
У меня есть программа, которую я запускаю на своем локальном Ubuntu 20.04, и сейчас я запускаю ее на временной дроплете в Digital Ocean под управлением Ubuntu 22.04. Я запускаю программу из следующего скрипта:
#!/bin/bash эхо «Компилировать NASM» компакт-диск /opt/P01_SH/Calc_XYZ sudo nasm -f elf64 -g -F карлик Calc_XYZ.asm sudo ld -shared Calc_XYZ.o /opt/P01_SH/_Debug_Wrappers_in_C/Create_Threads_in_C- Calc_XYZ.o /opt/P01_SH/_Library/Sprintf_in_C.o /opt/P01_SH/_Library/POSIX_Shared_Memory.o /opt/P01_SH/_Library/Virt ual_Memory.o/ opt/P01_SH/_Library/Available_Memory.o /opt/P01_SH/_Library/Memory_Map_File.o -ldl -lrt -lpthread -o Calc_XYZ.so эхо «Запустить GDB» компакт-диск /opt/P01_SH/_Debug_Wrappers_in_C gdb Call_Create_Threads_in_C-Calc_XYZ.exe Этот сценарий запускается из _Debug_Wrappers_in_C, и копия исходного файла находится в этом каталоге. Когда я запускаю его локально в Ubuntu, GDB находит исходный файл и отображает информацию о строке во время отладки:
(gdb) источник информации Текущий исходный файл: Calc_XYZ.asm. Расположен в /opt/P01_SH/_Debug_Wrappers_in_C/Calc_XYZ.asm. Содержит 1122 строки. Исходный язык — asm. Производитель НАСМ 2.14.02. Скомпилировано в формате отладки DWARF 2. Не включает информацию о макросе препроцессора. Но на моем новом временном дроплете в Digital Ocean я получаю:
(gdb) источник информации Нет текущего исходного файла. Я попробовал «установить путь замены /opt/P01_SH/Calc_XYZ /opt/P01_SH/_Include_Utilities», но строки исходного кода по-прежнему не отображаются.
Почему мне нужно получить исходный файл локально в Ubuntu 20.04, а не в облаке (это 22.04, но это не должно иметь значения). Локально NASM имеет версию 2.14,02, а в облаке — 2.15.05. Я запускал эту же настройку локально и на других облачных серверах в течение нескольких лет без проблем. Почему сейчас?
Спасибо за любые идеи.
У меня есть программа, которую я запускаю на своем локальном Ubuntu 20.04, и сейчас я запускаю ее на временной дроплете в Digital Ocean под управлением Ubuntu 22.04. Я запускаю программу из следующего скрипта:
#!/bin/bash эхо «Компилировать NASM» компакт-диск /opt/P01_SH/Calc_XYZ sudo nasm -f elf64 -g -F карлик Calc_XYZ.asm sudo ld -shared Calc_XYZ.o /opt/P01_SH/_Debug_Wrappers_in_C/Create_Threads_in_C- Calc_XYZ.o /opt/P01_SH/_Library/Sprintf_in_C.o /opt/P01_SH/_Library/POSIX_Shared_Memory.o /opt/P01_SH/_Library/Virt ual_Memory.o/ opt/P01_SH/_Library/Available_Memory.o /opt/P01_SH/_Library/Memory_Map_File.o -ldl -lrt -lpthread -o Calc_XYZ.so эхо «Запустить GDB» компакт-диск /opt/P01_SH/_Debug_Wrappers_in_C gdb Call_Create_Threads_in_C-Calc_XYZ.exe Этот сценарий запускается из _Debug_Wrappers_in_C, и копия исходного файла находится в этом каталоге. Когда я запускаю его локально в Ubuntu, GDB находит исходный файл и отображает информацию о строке во время отладки:
(gdb) источник информации Текущий исходный файл: Calc_XYZ.asm. Расположен в /opt/P01_SH/_Debug_Wrappers_in_C/Calc_XYZ.asm. Содержит 1122 строки. Исходный язык — asm. Производитель НАСМ 2.14.02. Скомпилировано в формате отладки DWARF 2. Не включает информацию о макросе препроцессора. Но на моем новом временном дроплете в Digital Ocean я получаю:
(gdb) источник информации Нет текущего исходного файла. Я попробовал «установить путь замены /opt/P01_SH/Calc_XYZ /opt/P01_SH/_Include_Utilities», но строки исходного кода по-прежнему не отображаются.
Почему мне нужно получить исходный файл локально в Ubuntu 20.04, а не в облаке (это 22.04, но это не должно иметь значения). Локально NASM имеет версию 2.14,02, а в облаке — 2.15.05. Я запускал эту же настройку локально и на других облачных серверах в течение нескольких лет без проблем. Почему сейчас?
Спасибо за любые идеи.
Мобильная версия