CppUnitを実行時にセグメンテーション違反が発生する

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
napa
記事: 2
登録日時: 13年前

CppUnitを実行時にセグメンテーション違反が発生する

#1

投稿記事 by napa » 13年前

初めまして、初投稿です。
現在CppUnitを使ってユニットテストを行っています。OSはCentOS(64bit)でg++でコンパイルしています。
ですが、あるプログラムだけ実行時にSIGSEGVシグナルが発生し、プログラムが終了してしまいます。
スタックトレースを見ると、

[0]0x00000001
[1]0x7aefbdef
[2]0x00000000

[1]のアドレスはうろ覚えですが、0x01のアドレスで終了してしまっています。
CPPUNIT_MAINに入る前に落ちてしまうので、何が原因なのか全く分かりません。

gdbでデバッグをかけても何が原因で落ちてしまうのか分からず、困っています。
もしこの問題の解決につながるような情報があれば教えていただけないでしょうか。調査方法などでも構いません。
よろしくお願いします。

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: CppUnitを実行時にセグメンテーション違反が発生する

#2

投稿記事 by beatle » 13年前

「CPPUNIT_MAIN」はただのマクロ名だと思うのですが。
ただのマクロ名だとすると「CPPUNIT_MAINに入る前」が意味不明です。

さて、僕はCppUnitに詳しいわけではないので随分と憶測ですが、
グローバル変数のコンストラクタ内でメモリ関連のエラーが発生しているとかですかね。
エラーが発生する最小限のソースコードを貼り付けていただくと、何か分かるかもしれませんね。

napa
記事: 2
登録日時: 13年前

Re: CppUnitを実行時にセグメンテーション違反が発生する

#3

投稿記事 by napa » 13年前

beatleさん

グローバル変数のコンストラクタですか、憶測でも十分ありがたいです。
ソースは手元に無いため残念ながら貼り付けることが出来ませんでした。情報不足で申し訳ないです。

少し調べてみて、共有ライブラリの読込が怪しいというところまで分かりました。
根拠としては、ライブラリを静的リンクした場合はセグメンテーション違反が発生せず、普通に動いたためです。
理由は不明ですが、現時点で動作はするので解決にしておきます。

閉鎖

“C言語何でも質問掲示板” へ戻る