Вопрос такой. В Jni постоянно прилетает sigseg, и хотелось бы понять, почему. CLion/clang стек вызовов внутри libjvm.so не показывает. Крайне интересно увидеть хотя бы стек вызовов внутри jni. как?
libjvm.so по стандартному пути, /etc/lib/libjvm.so
Здравствуйте, Molchalnik, Вы писали:
M>Вопрос такой. В Jni постоянно прилетает sigseg, и хотелось бы понять, почему. CLion/clang стек вызовов внутри libjvm.so не показывает. Крайне интересно увидеть хотя бы стек вызовов внутри jni. как?
Как обычно. Снимаешь корку и под gdb bt.
Re: CLion не показывает стек libjvm.so (ubuntu 22.04)
σ>Ну и стандартный вопрос — дебаг-символы для libjvm.so установлены?
Не знаю, вероятно, нет
Я заранее прошу прощения за свою дремучесть в вопросе. Нет опыта работы с jni на чистом линуксе, а где опыт есть, там не было таких проблем. стек показывался всегда, и для этого не требовалось ничего устанавливать.
А откуда брать дебаг-символы на линухе для jvm?
Или откуда взять дебажную версию для libjvm вместе с дебажными символами? желательно без компиляции ручками — я не очень силён в компиляции проектов на линуксе.
Re[2]: CLion не показывает стек libjvm.so (ubuntu 22.04)
Здравствуйте, 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)
Что касается gdb и дебага кросс-языков штук, то тут хз. В C++ от gdb не уйдешь так или иначе. Возможно есть вариант настроить запуск приложения с джава хостом в силайоне, чтобы дебажить прям там с ide в качестве gdb фронтенда.
Re[2]: CLion не показывает стек libjvm.so (ubuntu 22.04)
Здравствуйте, andrey.desman, Вы писали:
AD>Здравствуйте, Molchalnik, Вы писали:
M>>А откуда брать дебаг-символы на линухе для jvm?
Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?
Re[5]: CLion не показывает стек libjvm.so (ubuntu 22.04)
Здравствуйте, Molchalnik, Вы писали:
M>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?
Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?
Вообще, раз падает у тебя, то на вершине стека будет твой код, и именно его надо собирать с дебагом. Продраться сквозь релизный libjvm.so может и не получиться, хотя должно по идее. Именно дебаг билда в пакетах нет, только дебаг символы для релиза.
Вообще,сложно что-то сказать, потому что нифига не понятно, что и как ты запускаешь и что получаешь. Скриншот-другой может прояснил бы ситуацию.
Re[6]: CLion не показывает стек libjvm.so (ubuntu 22.04)
M>>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?
AD>Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?
Список вызываемых функций
Re[7]: CLion не показывает стек libjvm.so (ubuntu 22.04)
Здравствуйте, Molchalnik, Вы писали:
M>>>Это помогло, появился в дебаггере (иногда) вменяемый ассемблер с указанием функций. Но нужен ещё стек. Как я понимаю, без дебажного варианта libjvm.so его не получить. Где взять дебажный вариант или как иным способом получить стектрейс?
AD>Под стэком ты бэктрейс подразумеваешь? Или локальные переменные?
M>Список вызываемых функций
Если тебе удобнее пиджин вместо русского, то пусть будет бэктрейс