1

sqlcxt() がセグメンテーション違反を引き起こす可能性がある条件を述べましょう。私は Unix で、Oracle データベースへのデータベース接続に ProC を使用しています。

プログラムがクラッシュし、コア ファイルがクラッシュの原因が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);**
4

3 に答える 3

1

発生している問題が、C コードのポインタ エラーまたはメモリ割り当てエラーである可能性は十分にあります。これらのものは決して簡単に見つけることができません。あなたが試すかもしれないいくつかのこと:

  1. プログラムのセクションをコメントアウト (または #ifdef) できるかどうか、および問題が解消されるかどうかを確認してください。もしそうなら、あなたは悪いセクションに近づくことができます
  2. デバッガーでプログラムを実行します。
  3. 他の誰かと一緒にコード レビューを行います。これにより、複数の問題が見つかることがよくあります (通常、私のコードでは機能します)。

これが役立つことを願っています。詳細を追加してください。この質問を再度確認し、お手伝いできるかどうかを確認します。

于 2009-12-04T13:32:29.533 に答える