轉換期間的分段錯誤我寫了一個小的Pro * C/C++應用程序[多線程,守護進程]其中,我用Pro * c獲取一些數據庫記錄,然後調用C++函數生成XML文件,通過套接字發送給第三方。從C++轉換到Pro * C
問題是,當調用C++函數時,它正確地生成xml文件,但最終出現Sig 11錯誤,從C++轉換回到Pro * C。在這裏,我沒有任何返回參數,以及C++函數的所有參數都是常量參數。
問題隨機出現。在生成幾個xml之後[從相同的代碼生成]。錯誤不是恆定的。 在生成1或2個xml文件後,第一次運行時,在第二次運行時有5 xmls,有時在1 xml之後生成。
因此,不確定是否與任何代碼問題有關,因爲它正確地生成xml文件,而是堆棧展開/堆棧損壞問題。
在這方面的任何一點,將是很大的幫助。
另外,iam使用aC++編譯器在HP Itanium上工作。
下面是函數的聲明以及它是如何被稱爲:
/* ------------ Pro *C : ------ */
GenerateXML(Mic_Prov_Queue_List, Prov_Service_Params_Info, iThreadId);
/* Declaration : ----------- */
#ifdef __cplusplus extern "C" {
void GenerateXML(const Mic_Prov_List *Mic_Prov_Queue_List, const Mic_Prov_Service_Params_info_x_t * Prov_Service_Params_Info, int iThreadId);
#ifdef __cplusplus
問候 Roopesh Majeti的。
我們需要看到一些代碼 - 至少是C++函數的聲明以及如何調用它。 – 2009-07-24 09:29:27
這裏是: ------------ Pro * C: ------ GenerateXML(Mic_Prov_Queue_List,Prov_Service_Params_Info,iThreadId); 宣言: ----------- 的#ifdef __cplusplus 的extern 「C」 { 空隙GenerateXML(常量Mic_Prov_List * Mic_Prov_Queue_List,常量Mic_Prov_Service_Params_info_x_t * Prov_Service_Params_Info, INT iThreadId); #ifdef __cplusplus } – 2009-07-24 09:36:31
請在您的問題中編輯代碼,並對其進行適當格式化。 – 2009-07-24 09:49:33