ProC компилируется на 10g и работает на 11g

Я скомпилировал источник pro*c с oracle 10g и запустил приложение, в котором установлен 11g. Приложение дает дамп ядра. Я получаю следующую трассировку от отладки DBX:

(dbx) where
current thread: t@1
  [1] _smalloc(0x30, 0x0, 0x1dad44, 0xffffffff7b56350c, 0x0, 0xffffffff7b74eac0), at 0xffffffff7b563350
  [2] malloc(0x2c, 0x23e0, 0x1dac88, 0xffffffff7b5633d8, 0xffffffff7b73e000, 0x2000), at 0xffffffff7b5633c8
  [3] sqlalc(0xffffffff7e79dc20, 0x8, 0x1003bf920, 0x200, 0x0, 0x541c), at 0xffffffff7c2a23c8
  [4] sqlbrl(0xffffffff7e79dc20, 0x1003c0300, 0x1003c0328, 0x1003c02a0, 0xffffffff7fffeab0, 0x1), at 0xffffffff7c2ab1d4
  [5] sqlhvdsc(0x1003c0290, 0xffffffff7e79dc20, 0x8, 0xffffffff7ffff040, 0x122, 0xffffffff7e79dc20), at 0xffffffff7c2c5194
  [6] sqlshv(0xffffffff7e2fb350, 0x1, 0x1003c0290, 0xffffffff7fffec86, 0xa, 0x0), at 0xffffffff7c2c59cc
  [7] sqlatm(0xffffffff7e79df78, 0x100151022, 0x100354330, 0x1, 0x5, 0x1003813c0), at 0xffffffff7c2c72cc
  [8] sqlnst(0xffffffff7c2b5288, 0x85, 0x100150f18, 0x1, 0x0, 0xffffffff7ffff040), at 0xffffffff7c2b5618
  [9] sqlcmex(0x6, 0x1003813c0, 0x910, 0x1, 0x100150f18, 0x0), at 0xffffffff7c2a61ec
  [10] sqlcxt(0x0, 0x100150ec0, 0xffffffff7ffff040, 0x100152312, 0x4d, 0x0), at 0xffffffff7c2a6c44
=>[11] upd_prog_status(status = 30), line 476 in "CCFILT_x.pc"
  [12] main(argc = 3, argv = 0xffffffff7ffff918), line 3698 in "CCFILT_x.pc"

Мой вопрос: возможно ли скомпилировать исходный код с 10g и запустить его на 11g? Как насчет этой ошибки malloc. Я где-то читал, что вы должны дать определение malloc в своем коде в oracle 11g?

Спасибо и привет


person QMG    schedule 02.10.2012    source источник


Ответы (1)


Да, возможно, что приложение, скомпилированное с помощью Oracle 10G, также будет работать на Oracle 11G. А вот наоборот не получится.

Вышеупомянутая ошибка указывает на то, что в приложении есть утечка памяти, но трассировка не указывает точное место. Утечка давно ушла со следа.

person QMG    schedule 04.10.2012