Hook了opendir后系统崩溃

hook函数opendir后,无法进入系统。恢复系统后,用同样的写法hook函数fopen,却没有问题,求指点

// hook opendir
DIR *(*old_opendir)(const char *path);
DIR *my_opendir(const char * path) {
return old_opendir(path);
}
%ctor {
MSHookFunction(&opendir, &my_opendir, &old_opendir);
}

// hook fopen
FILE *(*old_fopen)(const char *path, const char *mode);
FILE *my_fopen(const char *path, const char *mode) {
return old_fopen(path, mode);
}
%ctor {
MSHookFunction(&fopen, &my_fopen, &old_fopen);
}

可能是 opendir 函数体太短了, 你 lldb dis opendir看看