C++ A/libc:致命信号7(SIGBUS)

C++ A/libc:致命信号7(SIGBUS),c++,ffmpeg,android-ndk,android-ffmpeg,C++,Ffmpeg,Android Ndk,Android Ffmpeg,应用程序启动时应用程序崩溃。如何使用此故障地址0xb92df158在android studio内的.cpp文件中查找哪一行抛出此错误 而且这个错误并不是每次我从应用程序中选择视频(大小视频)时都会发生,只是有时会发生。因为在.cpp文件中有太多的空检查和错误处理,所以仍然需要调试.cpp文件中的行。我要做的是从java中选择视频,编辑.cpp文件中的视频,并使用 A/libc: Fatal signal 7 (SIGBUS), code 1, fault addr 0xb92df158 in

应用程序启动时应用程序崩溃。如何使用此故障地址0xb92df158在android studio内的.cpp文件中查找哪一行抛出此错误

而且这个错误并不是每次我从应用程序中选择视频(大小视频)时都会发生,只是有时会发生。因为在.cpp文件中有太多的空检查和错误处理,所以仍然需要调试.cpp文件中的行。我要做的是从java中选择视频,编辑.cpp文件中的视频,并使用

A/libc: Fatal signal 7 (SIGBUS), code 1, fault addr 0xb92df158 in tid 19864 
charbuf[1024];
snprintf(buf,sizeof(buf),“%s-%d”,“/storage/simulated/0/Download/frame.png”,av\u codec\u ctx->frame\u number);
pFile=fopen(buf,“wb”);
fprintf(pFile,“P5\n%d%d\n%d\n”,影音框->宽度,影音框->高度,255);
对于(y=0;y高度;y++)
fwrite(buf+y*av_frame->linesize[0],1,av_frame->width,pFile);
.因此,在解码或保存回.png时,我想我会遇到这种错误。

也许吧?但您提供的代码片段有一个词组,您正在使用写入文件名的缓冲区作为文件的输出,并且没有明显的受让人认为
buf+y*av_frame->linesize[0]
不在缓冲区之外。你错过了弗瑞德吗?你错过尺码检查了吗?
char buf[1024];
snprintf(buf, sizeof(buf), "%s-%d", "/storage/emulated/0/Download/frame.png", av_codec_ctx->frame_number);
pFile = fopen(buf, "wb");
fprintf(pFile, "P5\n%d %d\n%d\n", av_frame->width, av_frame->height, 255);
for (y = 0; y < av_frame->height; y++)
    fwrite(buf + y * av_frame->linesize[0], 1 , av_frame->width, pFile);