Поврежденная трассировка стека в Solaris - PullRequest
0 голосов
/ 14 июня 2011

Может ли кто-нибудь объяснить, почему может возникнуть следующая поврежденная трассировка стека?

Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libxnet.so.1...done.
Loaded symbols for /usr/lib/libxnet.so.1
Reading symbols from /usr/lib/libsocket.so.1...done.
Loaded symbols for /usr/lib/libsocket.so.1
Reading symbols from /usr/lib/libnsl.so.1...done.
Loaded symbols for /usr/lib/libnsl.so.1
Reading symbols from /usr/lib/libxml2.so.2...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /opt/csw/lib/libiconv.so.2...done.
Loaded symbols for /opt/csw/lib/libiconv.so.2
Reading symbols from /usr/lib/libcrypt_i.so.1...done.
Loaded symbols for /usr/lib/libcrypt_i.so.1
Reading symbols from /usr/lib/libpthread.so.1...
warning: Lowest section in /usr/lib/libpthread.so.1 is .dynamic at 00000074
done.
Loaded symbols for /usr/lib/libpthread.so.1
Reading symbols from /usr/lib/libm.so.2...done.
Loaded symbols for /usr/lib/libm.so.2
Reading symbols from /usr/lib/librt.so.1...done.
Loaded symbols for /usr/lib/librt.so.1
Reading symbols from /usr/lib/libc.so.1...done.

warning: rw_common (): unable to read at addr 0x0

warning: sol_thread_new_objfile: td_ta_new: Debugger service failed
Loaded symbols for /usr/lib/libc.so.1
Reading symbols from /usr/lib/libz.so.1...done.

warning: rw_common (): unable to read at addr 0x0

warning: sol_thread_new_objfile: td_ta_new: Debugger service failed
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /usr/lib/libgen.so.1...done.

warning: rw_common (): unable to read at addr 0x0

warning: sol_thread_new_objfile: td_ta_new: Debugger service failed
Loaded symbols for /usr/lib/libgen.so.1
Reading symbols from /usr/lib/libaio.so.1...done.

warning: rw_common (): unable to read at addr 0x0

warning: sol_thread_new_objfile: td_ta_new: Debugger service failed
Loaded symbols for /usr/lib/libaio.so.1
Reading symbols from /usr/lib/libmd.so.1...done.

warning: rw_common (): unable to read at addr 0x0

warning: sol_thread_new_objfile: td_ta_new: Debugger service failed
Loaded symbols for /usr/lib/libmd.so.1
#0  0xfeb3487a in _malloc_unlocked () from /usr/lib/libc.so.1
(gdb) bt
#0  0xfeb3487a in _malloc_unlocked () from /usr/lib/libc.so.1
#1  0x210b5a68 in ?? ()
#2  0xfec0e5d0 in signames () from /usr/lib/libc.so.1
#3  0xfec0d000 in _sys_cldlist () from /usr/lib/libc.so.1
#4  0x08046a28 in ?? ()
#5  0xfeb34704 in _malloc_unlocked () from /usr/lib/libc.so.1
#6  0x00002008 in ?? ()
#7  0x210b5a68 in ?? ()
#8  0x21151b70 in ?? ()
#9  0xfeeda3b0 in ?? () from /usr/lib/libxml2.so.2
#10 0x08046a3c in ?? ()
#11 0xfee03c42 in xmlBufferCreateSize () from /usr/lib/libxml2.so.2
Previous frame inner to this frame (corrupt stack?)

Ядро происходит из процесса, созданного на компьютере x86. Если обратная трассировка выполняется на машине, выполняющей процесс, обратная трассировка является совершенной, с полным информация о кадре. Однако, если я выполняю обратную трассировку с ядром на сборочной машине (другой машине), то трассировка выше.

Одной очевидной вещью, которую я рассмотрел, был другой уровень патчей в ОС Один имеет 5.10 Generic_138889-03 (исполняющая машина), а другой - 5.10 Generic_138889-02 (сборочная машина) Так что число оборотов отключено. Будет ли это причиной? Или что еще это может быть? Что я могу сделать, чтобы увидеть полную информацию о кадре, чтобы я мог более подробно изучить память ядра?

Буду признателен за любые мысли.

Спасибо.

1 Ответ

1 голос
/ 05 июля 2011

Убедитесь, что у вас на компьютере сборки полностью тот же набор общих библиотек, что и на компьютере, на котором выполняется процесс. Если это не так, скопируйте все общие библиотеки, которые используются вашим процессом, с рабочего компьютера в папку на компьютере сборки, задайте для этой папки LD_LIBRARY_PATH, запустите gdb и снова запустите bt.

Полный список соответствующих общих библиотек, которые можно получить с помощью команды info sharedlibraries в gdb на компьютере, на котором выполняется процесс.

...