私はTotalviewを使っていくつかのコードをデバッグしていますが、これはバスエラーで停止しています。fopen()のバスエラー?
これは何ですか、どうすれば修正できますか?ここでは、コードスニップは私のメインで
です:
char *infilename = "/home/dcole/Images/lena1024s.jpg";
/* Try opening a jpeg*/
if(read_jpeg_file(infilename) > 0)
{
//do some stuff
}
機能:
int read_jpeg_file(const char *filename)
{
/* these are standard libjpeg structures for reading(decompression) */
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
/* libjpeg data structure for storing one row, that is, scanline of an image */
JSAMPROW row_pointer[1];
FILE *infile = fopen(filename, "rb"); //this line is where the debugger stops with a Bus Error
unsigned long location = 0;
int i = 0;
if (!infile)
{
printf("Error opening jpeg file %s\n!", filename);
return -1;
}
return 1;
}
私は存在しないに渡していたファイル。私はそれがデバッガの完全なパスに右の刺すように表示されることがわかります。
デバッガを使用しましたか?どのラインでエラーが出ますか?また、read_jpeg_fileの呼び出しとfilenameパラメータの初期化/割り当てを表示できますか? – Joe
あなたはそれを実行しようとしましたか?メモリ破損をチェックするvalgrind? – user786653
確かに - そして、私はTotalviewでそれを突き抜けました。それはメモリチェッカーを内蔵しています – Derek