小编use*_*336的帖子

在最近的Linux内核上测试msync的使用有什么好方法?

我在Linux 2.6上的应用程序中使用msync来确保崩溃时的一致性.我需要彻底测试我对msync的使用,但实现似乎正在为我刷新所有相关页面.有没有办法阻止mmap的页面自动刷新到磁盘上,以暴露我的错误使用msync?

c linux kernel mmap

6
推荐指数
1
解决办法
1169
查看次数

错误,或valgrind/gcc bug?

在以下程序上运行valgrind时,断言失败:

#include <unistd.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdint.h>
#include <stdio.h>
#include <wchar.h>
#include <assert.h>
#include <signal.h>
#include <stdlib.h>
#include <ucontext.h>

static size_t pageSize = 4096;

uint8_t *bs;
static void sig(int num,
    siginfo_t *info, void *unused) {
    ucontext *p = (ucontext *)unused;
    uint8_t *addr = (uint8_t *)info->si_addr;
    wprintf(L"rax=%lx\n", p->uc_mcontext.gregs[REG_RAX]);
    wprintf(L"addr=%lx\n", addr);
    assert(mprotect(bs, pageSize*4,
        PROT_READ | PROT_WRITE) == 0);
}


bool setsig() {
    sigset_t mask;
    struct sigaction sa;

    if (sigemptyset(&mask))
        return false;

    sa.sa_sigaction = sig;
    sa.sa_mask = …
Run Code Online (Sandbox Code Playgroud)

c++ valgrind mmap

2
推荐指数
1
解决办法
475
查看次数

标签 统计

mmap ×2

c ×1

c++ ×1

kernel ×1

linux ×1

valgrind ×1