boost unit_testでのエラー

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
chibago

boost unit_testでのエラー

#1

投稿記事 by chibago » 14年前

皆様、お世話になっております。
boost unit test(C++全般の問題かもしれませんが)の実行で原因不明のエラーに悩まされています。

エラーは以下のようなものです。
Running 1 test case...
unknown location(0): fatal error in "mytest": memory access violation at address: 0x01995890: invalid permissions

おそらく、配列(私はvectorなどのSTLコンテナを使っておりますが)の範囲外の参照
などのエラーかと思いますが、実は、このプログラム自体は実行時にエラーを吐き出す
ときと吐き出さないときがあります。(同じ実行ファイルで、外部の入力等に依存しません。)

問題のあるプログラムに関しては、複雑な継承等を行っているため、問題部分の特定も処理の概要
の抽出もできないことから、示すことはできませんがアドバイスをいただければたすかります。

どのようなアプローチでデバッグすればよいか、この様な事象を引き起こす考えうる原因
などを教えていただければ助かります。

漠然としていて大変申し訳ありませんが、
ご意見をお寄せ下さい。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: boost unit_testでのエラー

#2

投稿記事 by softya(ソフト屋) » 14年前

環境を明示してもらわないと皆さん答えづらいと思いますよ。
それとデバッガを使ってaccess violationで止めれないのですか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

chibago

Re: boost unit_testでのエラー

#3

投稿記事 by chibago » 14年前

softyaさん、
ご意見ありがとうございます。
ご指摘ごもっともです。

環境はfedora15 , gcc4.6 boost1.46です。

デバッガは使ったことが無いので勉強したい
と思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: boost unit_testでのエラー

#4

投稿記事 by softya(ソフト屋) » 14年前

基本はGDBを使うのですがコマンドだと使いづらいのでemacsから使うか、フロントエンドのDDDなどを使います。

「プログラムのデバッグ」
http://www.cse.kyoto-su.ac.jp/~oomoto/l ... dex-j.html

gcc/g++でC++&boostの組み合わせでデバッグしたことがないので、-gオプション以外に必要なものが有るかどうか不明です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

chibago

Re: boost unit_testでのエラー

#5

投稿記事 by chibago » 14年前

softyaさん
アドバイスありがとうございます。
GDBで頑張って見ようと思います。

自分でもネットで調べましたが、
mudflapというのが便利そうでしたので試してみましたが
以下のようなエラーが出ました。
terminate called after throwing an instance of 'St9bad_alloc'
what(): std::bad_alloc

プログラムのどこが悪いのか指摘してくれると期待していたのですが、
それ以前の問題のようです。

GDBを使って見ようと思います。

chibago

Re: boost unit_testでのエラー

#6

投稿記事 by chibago » 14年前

dddを起動しようと思ったのですがXがハングしてしまいました。

そのため、他のPCでやってみたのですが、今度は全く
エラーが出ないと言う状態になりました。

解決と言っていいものではないのですが、
一応、解決ということに致したいと思います。

PC間の環境の違いとしては64-32bit機(問題が発生したのは64)
ぐらいです。

アドバイスありがとうございました。

閉鎖

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