Cに次のようにしようとすると:これはなぜ起こるのでしょうg_string_truncate()のセグメンテーションフォルト?
Program received signal SIGSEGV, Segmentation fault.
0x00984809 in g_string_truncate() from /lib/libglib-2.0.so.0
(gdb)
:?
g_string_printf(qbuf,"INSERT INTO inbox (number, smsdate, text) VALUES ('%s','%04d-%02d-%02d %02d:%02d:%02d', '%s')",
xmx.remote.number,
xmx.smsc_time.year,
xmx.smsc_time.month,
xmx.smsc_time.day,
xmx.smsc_time.hour,
xmx.smsc_time.minute,
xmx.smsc_time.second,
xmx.user_data[0].u.text);
私は、次のクラッシュを参照してくださいg_string_printf()を呼び出す前に開始がありますか?
フレーム2から:
(gdb) frame 2
#2 0x08049ba8 in fetching_phone (unit=0x807cd80) at main.c:152
152 g_string_printf(qbuf,"INSERT INTO inbox (number, smsdate, text) VALUES ('%s','%04d-%02d-%02d %02d:%02d:%02d', '%s')",
(gdb) ptype xmx.remote.number
type = char [40]
(gdb) ptype xmx.smsc_time.year
type = int
(gdb) ptype xmx.smsc_time.month
type = int
(gdb) ptype xmx.smsc_time.day
type = int
(gdb) ptype xmx.smsc_time.hour
type = int
(gdb) ptype xmx.smsc_time.minute
type = int
(gdb) ptype xmx.smsc_time.second
type = int
(gdb) ptype xmx.user_data[0].u.text
type = unsigned char [1601]
(gdb)
しかし、問題がどこにあるか、私はまだ見つけることができません。
g_string_printfとは何ですか? id xmx.remote.number String? – bmargulies
@bmargulies:彼は 'glib'について話しています:http://developer.gimp.org/api/2.0/glib/glib-Strings.html –
' qbuf'と 'xmx'はどのように宣言/定義されていますか?どのように 'qbuf'を初期化していますか?私たちはおそらく、何かを助けるために、より多くの情報とコードが必要になるでしょう。 – Hasturkun