を戻しながら:これはmain
から呼び出されたときにコアダンプエラー私は機能を持っている機能から
void function(const string param1, string *p2param, string *retparam)
、実行はこの関数の最後の行まで行き、その後
Bus Error(coredump)
で失敗します関数は文字列へのポインタを使って何らかの文字列操作を行い、最後の値は*retparam
に渡されます。このaa.cが
string *f1;//global
string f2= "abc";//global
function_2()
{
stringstream aa;
*f1 += aa<<"test";
//similar concatenation
}
function(param1, *p2param, *retparam)
{
/* assign back the values*/
f1 =&f2;
//call to a function from bb.c
// from bb.c function_2() is in called
retparam = f1
}
を持っているようなコードが行く
私が得ることができる唯一の情報は次のとおりです。このエラーの原因となっている
pstack core
$ pstack core
core 'core' of 4517: aa_test -t 745
ffffffff7c67109c __1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2T5B6M_v_ (ffffffff7fffce98, 1002805fc, 10010cc90, 0, ffffffff7c8c3bd8, ffffffff7fffce98) + 14
0000000100004498 main (10010b000, 100000, ffffffff7fffce98, ffffffff7fffcf00, ffffffff7fffd288, ffffffff7fffd0b8) + 818
0000000100003a7c _start (0, 0, 0, 0, 0, 0) + 17c
何?
最終的に私の問題を整理した貴重な入力をありがとう。問題は、文字列変数 コードスニペット
void function(const string param1, string *p2param, string *retparam) {
//function to call from bb.c has prototype
//fun2(const char **str,stubfunc)
const char *l_str = param1.c_str();
fun2((const char **) &l_str,coverage_hook);
}
//this was ealier called as
//fun2((const char**) ¶m1,coverage_hook); hence was causing the core dump
//why?? still dont know :)
あなたのコードは」doesnのコンパイルして、それを動作させる方法がわかりません。あなたが持っている問題を示す完全な例を提供すれば、はるかに役立ちます。 –