Облако Google - отчеты об отладке Stackdriver Файл не найден в исполняемом файле для войны GCE Jetty

Я пытался следовать Настройка отладчика Stackdriver для приложений Java в Google Compute Engine, но у меня возникли проблемы с отладкой Stackdriver.

Я создаю свой файл .war с отдельного сервера сборки, а затем развертываю его на своем сервере GCE. Я добавил агента в команду запуска через /etc/defaults, и мое приложение появилось в панели управления https://console.cloud.google.com/debug. Версия, которую я установил в команде запуска, соответствует версии, которая отображается в файлах исходного контекста(ов).json.

Однако, когда я нажимаю открыть приложение, я вижу сообщение о том, что

Развернутое приложение не предоставило информацию об исходной версии.

Я подключил репозиторий git приложения в качестве зеркального облачного репозитория и могу просматривать исходные файлы на боковой панели страницы отладки Stackdriver. Но если я перехожу к файлу и добавляю точку останова, я получаю сообщение об ошибке «Файл не найден в исполняемом файле».

Я запустил команду gcloud preview app gen-repo-info-file, которая создала два основных файла json, в которых хранится мой репозиторий git и ревизия. Он должен делать что-то еще?

Я пробовал запускать причал, используя как обычный, так и извлеченный режимы. Если я сначала извлек военный файл, я увижу файлы source-context.json в каталоге WEB-INF/classes.

Что мне не хватает?


person Andy Miller    schedule 06.07.2016    source источник


Ответы (2)


https://github.com/GoogleCloudPlatform/cloud-debug-java#extra-classpath упоминает

вы можете обновить agentPath, показывающий ваш каталог WEB-INF/class.

-agentpath:/opt/cdbg/cdbg_java_agent.so=--cdbg_extra_class_path=/opt/tomcat/webapps/myapp/WEB-INF/classes

Для нескольких путей классов:

-agentpath:/opt/cdbg/cdbg_java_agent.so=--cdbg_extra_class_path=/opt/tomcat/webapps/myapp/WEB-INF/classes:/another/path/with/classes
person manntsheth    schedule 25.10.2018

Здесь происходит несколько вещей.

Во-первых, похоже, что вы делаете правильную вещь с gen-repo-info-file. Агент отладчика должен получить файлы json из каталога WEB-INF/classes.

Отладчик использует нечеткое сопоставление для поиска исходных файлов, поэтому, если имя файла .java совпадает с именем файла в вашем исполняемом файле, вы не должны получить эту ошибку.

Наиболее вероятный сценарий, учитывая информацию в вашем вопросе, заключается в том, что вы подключаете отладчик к процессу запуска, а не к своему фактическому приложению. Однако без дополнительных подробностей я не могу полностью подтвердить это.

Если вы отправите нам более подробную информацию по адресу [email protected], мы сможем более внимательно изучить ваш случай, чтобы увидеть, сможем ли мы точно понять, что происходит, и, возможно, улучшить нашу документацию, поскольку похоже, что вы внимательно следили за документацией.

person Brad Daniels    schedule 07.07.2016