sqlcxt () вызывает ошибку сегментации - PullRequest
1 голос
/ 04 декабря 2009

Позволяет указать условия, в которых sqlcxt () может вызвать ошибку сегментации, я проснулся на Unix, используя ProC для подключения базы данных к базе данных Oracle.

Моя программа дает сбой, и основной файл показывает, что сбой вызван функцией sqlcxt()

A loadobject was found with an unexpected checksum value.
See `help core mismatch' for details, and run `proc -map'
to see what checksum values were expected and found.

...

dbx: warning: Some symbolic information might be incorrect.

...

t@null (l@1) program terminated by signal SEGV

 (no mapping at the fault address)0xffffffffffffffff:     
<bad address 0xffffffffffffffff>
Current function is dbMatchConsortium
  442               **sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);**

Ответы [ 2 ]

0 голосов
/ 04 декабря 2009

Вероятно, это ошибка размещения в вашей программе. Когда я получал такое поведение, это всегда была моя вина. Я разрабатываю на Solaris / SPARC и Oracle 10g. Однажды это было двойное освобождение (то есть я дважды освободил один и тот же указатель), и во второй раз у меня было ядро ​​в части программы Oracle, когда я освободил указатель, который не был выделенным блоком памяти. Если вы используете Solaris, вы можете попробовать библиотеку размещения libumem (подробности в Google), чтобы увидеть, не изменилось ли поведение.

0 голосов
/ 04 декабря 2009

Существует большая вероятность того, что у вас возникла проблема с ошибкой указателя / ошибкой выделения памяти в вашем C-коде. Эти вещи никогда не легко найти. Некоторые вещи, которые вы могли бы попробуй:

  1. Посмотрите, можете ли вы закомментировать (или #ifdef) разделы вашей программы и проблема исчезнет. Если это так, то вы можете закрыть плохую секцию
  2. Запустите вашу программу в отладчике.
  3. Сделайте проверку кода с кем-то еще - это часто приводит к обнаружению нескольких проблем (обычно работает в моем коде).

Надеюсь, это поможет. Пожалуйста, добавьте больше деталей, и я проверю этот вопрос и посмотрю, смогу ли я вам помочь.

...