すべてのCコードを実行した後にセグメントエラーが発生しています。 0バイトのメモリリークでrquired出力を生成します。その後、 "segmentation fault"が表示されます。次に、gdb
の出力を示します。コード全体の実行後に "セグメンテーションフォールト"が発生する
Program received signal SIGSEGV, Segmentation fault.
0x08060f90 in _GLOBAL_OFFSET_TABLE_()
(gdb) bt
#0 0x08060f90 in _GLOBAL_OFFSET_TABLE_()
#1 0xffbecd18 in ??()
#2 0x15048815 in ??()
#3 0xcd0fbecd in ??()
#4 0x0610ffbe in ??()
#5 0xffbecd08 in ??()
#6 0xf7f79ff4 in ??() from /lib/tls/libc.so.6
#7 0x00000000 in ??()
(gdb)
EDIT
char **Connections,**Doors,**Zones;
char *s1,*s2;
char con[] = "c_";
char zon[] = "z_";
char dor[] = "d_";
for (i=0; i<nc ; i++){
s1 = con;
s2 = string_IntToString(i);
Connections[i]= string_Conc(s1,s2);
string_StringFree(s2);
}
EDIT
char* string_Conc(const char* s1, const char* s2)
{
char* dst;
dst = memory_Malloc(strlen(s1) + strlen(s2) + 1);
strcpy(dst, s1);
return strcat(dst,s2);
}
おそらく破損しているスタックトレースを調べることで何も言い難いです。実際のエラーはどこでもかまいません。おそらくバッファオーバーフローなどです。コードを慎重に見て、コードのさまざまな部分をコメントアウトして、そのあとでエラーがまだ発生していないかどうかを確認する以外は何もお勧めしません。 –
GDBにアクセスできない場合は、いくつかのブレークポイントを入れてデバッグしようとしません。コアが生成されましたか? – Vaibhav
デバッグシンボルを有効にしてプログラムをコンパイルしましたか? '-g' GCCオプションを使って?あなたのバックトレースは本当に役に立ちませんが、たぶん壊れている可能性があります。 – thkala