转储内存使用memcpy发生错误

时间:2016-07-31 16:03:27

标签: android c memory memcpy

我想转储内存使用memcpy。 我想要十六进制转储存储器范围0x400b5000~0x400fd000

我从“cat / proc / [pid] / maps”

获得了这个记忆范围

enter image description here

但它发生了这样的错误,

SIGSEGV (signal SIGSEGV: invalid address (fault address: 0x11)) `

我的代码就像这样。

void dumpCode( char* start, char* end, char* subject  )
{
    FILE* fp;
    char fileName[100];

    void* s = (void*)0x400b5000;
    void* e = (void*)0x400fd000;

    char buf[4];

    sprintf( fileName, "/storage/emulated/0/test/%s-%s.txt", start,end );

    if ((fp = fopen( fileName, "w" )) == NULL)
        printf("Error: Could not open '%s'\n", fileName);

    while( s <= e ){
        memcpy( buf, s, sizeof(int) );
        fwrite( buf, sizeof(int), 1, fp );
        s++;
    }
    fclose(fp);
}

如何转储内存范围?

有人可以在我的情况下建议解决方案吗?或者一些适当的文件..?

感谢您阅读我的问题!

0 个答案:

没有答案