簡體   English   中英

sqlcxt()導致分段錯誤

[英]sqlcxt() causes segmentation fault

讓我們陳述一下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);**

您遇到的問題很有可能是C代碼中的某種指針錯誤/內存分配錯誤。 這些東西從來都不容易找到。 您可以嘗試以下操作:

  1. 查看是否可以注釋掉(或#ifdef)程序的各個部分,以及問題是否消失。 如果是這樣,那么您可以關閉不良區域
  2. 在調試器中運行程序。
  3. 與他人進行代碼審查-這通常會導致發現多個問題(通常在我的代碼中有效)。

我希望這個對你有用。 請添加更多詳細信息,我將再次檢查該問題,看看是否能為您提供幫助。

這可能是程序中的分配錯誤。 當我有這種行為時,總是我的錯。 我在Solaris / SPARC和Oracle 10g上進行開發。 一旦兩次釋放(即我兩次釋放了相同的指針),第二次我在程序的Oracle部分中擁有了一個核心,就是我釋放了一個不是分配的內存塊的指針。 如果您使用的是Solaris,則可以嘗試使用libumem分配庫(有關詳細信息,請訪問Google),以查看行為是否發生了變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM