CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 29.08.24 22:13
Оценка:
Коллеги, доброго!

Вопрос такой. В Jni постоянно прилетает sigseg, и хотелось бы понять, почему. CLion/clang стек вызовов внутри libjvm.so не показывает. Крайне интересно увидеть хотя бы стек вызовов внутри jni. как?

libjvm.so по стандартному пути, /etc/lib/libjvm.so

Заранее спасибо
Отредактировано 29.08.2024 22:24 Molchalnik . Предыдущая версия .
Re: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: andrey.desman  
Дата: 30.08.24 12:02
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Вопрос такой. В Jni постоянно прилетает sigseg, и хотелось бы понять, почему. CLion/clang стек вызовов внутри libjvm.so не показывает. Крайне интересно увидеть хотя бы стек вызовов внутри jni. как?


Как обычно. Снимаешь корку и под gdb bt.
Re: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: σ  
Дата: 30.08.24 13:54
Оценка:
M>libjvm.so по стандартному пути, /etc/lib/libjvm.so

Это в какой JRE такой стандартный путь? 🤡

Ну и стандартный вопрос ­— дебаг-символы для libjvm.so установлены?
Отредактировано 30.08.2024 14:01 σ . Предыдущая версия . Еще …
Отредактировано 30.08.2024 13:55 σ . Предыдущая версия .
Re[2]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 02.09.24 09:13
Оценка:
Здравствуйте, σ, Вы писали:


σ>Ну и стандартный вопрос ­— дебаг-символы для libjvm.so установлены?


Не знаю, вероятно, нет

Я заранее прошу прощения за свою дремучесть в вопросе. Нет опыта работы с jni на чистом линуксе, а где опыт есть, там не было таких проблем. стек показывался всегда, и для этого не требовалось ничего устанавливать.

А откуда брать дебаг-символы на линухе для jvm?
Или откуда взять дебажную версию для libjvm вместе с дебажными символами? желательно без компиляции ручками — я не очень силён в компиляции проектов на линуксе.
Re[2]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 02.09.24 09:15
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Здравствуйте, Molchalnik, Вы писали:


M>>Вопрос такой. В Jni постоянно прилетает sigseg, и хотелось бы понять, почему. CLion/clang стек вызовов внутри libjvm.so не показывает. Крайне интересно увидеть хотя бы стек вызовов внутри jni. как?


AD>Как обычно. Снимаешь корку и под gdb bt.


Так тоже можно, но пока у меня есть пара дней в запасе, и хотелось бы найти путь без "каменного топора" в виде работы с корами и знаменитый своим отличным GUI gdb
Re[3]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: andrey.desman  
Дата: 02.09.24 09:57
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>А откуда брать дебаг-символы на линухе для jvm?


Зависит от дистра и jdk. Примерно как-то так:
https://www.javacodegeeks.com/2012/01/debugging-jvm.html
Там же написано как незаметно вкрячить gdb под эклипс если ты на нём работаешь

Что касается gdb и дебага кросс-языков штук, то тут хз. В C++ от gdb не уйдешь так или иначе. Возможно есть вариант настроить запуск приложения с джава хостом в силайоне, чтобы дебажить прям там с ide в качестве gdb фронтенда.
Re[2]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 02.09.24 22:18
Оценка:
Здравствуйте, σ, Вы писали:

M>>libjvm.so по стандартному пути, /etc/lib/libjvm.so


σ>Это в какой JRE такой стандартный путь? 🤡


readlink /usr/lib/libjvm.so
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so
Re[3]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: σ  
Дата: 04.09.24 03:21
Оценка:
M>А откуда брать дебаг-символы на линухе для jvm?

Скорее всего из пакета openjdk-8-dbg
Re[4]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 04.09.24 16:53
Оценка:
Здравствуйте, andrey.desman, Вы писали:

AD>Здравствуйте, Molchalnik, Вы писали:


M>>А откуда брать дебаг-символы на линухе для jvm?


Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?
Re[5]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: andrey.desman  
Дата: 04.09.24 18:21
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?


Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?

Вообще, раз падает у тебя, то на вершине стека будет твой код, и именно его надо собирать с дебагом. Продраться сквозь релизный libjvm.so может и не получиться, хотя должно по идее. Именно дебаг билда в пакетах нет, только дебаг символы для релиза.

Вообще,сложно что-то сказать, потому что нифига не понятно, что и как ты запускаешь и что получаешь. Скриншот-другой может прояснил бы ситуацию.
Re[6]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 04.09.24 21:17
Оценка: -1
M>>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?

AD>Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?


Список вызываемых функций
Re[7]: CLion не показывает стек libjvm.so (ubuntu 22.04)
От: Molchalnik  
Дата: 12.09.24 18:13
Оценка:
Здравствуйте, Molchalnik, Вы писали:

M>>>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?


AD>Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?


M>Список вызываемых функций


Если тебе удобнее пиджин вместо русского, то пусть будет бэктрейс
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.