Если файл ядра хорош, он должен содержать стек вызовов для сбоя. Вы указали, что авария произошла в модуле плагина и функции. Переходя «вверх» в стек, вы должны иметь возможность видеть точку срыва и содержащую функцию. В общем, вы должны иметь возможность посмотреть на локальные переменные, включая аргументы функции/method.
Короче говоря, просто отлаживайте его, как и любой другой файл ядра. Как только вызов dlopen завершится успешно, общая библиотека выглядит (почти) так же, как и другие, загруженные при запуске.
Если вы разделите bt, я могу дать некоторые более определенные указатели.
Как отметил русский сотрудник, локальные исполняемые и разделяемые библиотеки должны быть побитовыми так же, как ваши клиенты. Если локальная версия отличается, она сбрасывает отображение, которое выполняет gdb между ядром и исполняемым файлом. Это обычно приводит к мусору, но иногда приводит к тому, что стек выглядит смутно правильным. В результате программист проводит время, преследуя ложные выводы. Эта ситуация действительно усугубляется!
нанял-russion и @ matthew-fisher Я предполагаю, что программные двоичные файлы, должно быть, были немного разными. Я хочу, чтобы пользователь послал его. –