//////////////////////////////////////////////////////
void listimages(void)
{
    uint32_t i;
    uint32_t ic = _dyld_image_count();
    
    printf("总数:%d\n", ic);
    
    for (i = 0; i < ic; i++) {
        printf("%d: %p\t%s\t(slide: %p)\n",
               i,
               _dyld_get_image_header(i),
               _dyld_get_image_name(i),
               _dyld_get_image_vmaddr_slide(i));
    }
}

void add_callback(const struct mach_header *mh, intptr_t vmaddr_slide)
{
    Dl_info info;
    dladdr(mh, &info);
    printf("Callback invoked for image: %p %s (slide: %p)\n",
           mh, info.dli_fname, vmaddr_slide);
}

void listImagesTest()
{
    // 方法1
    listimages();
    
    // 方法2
    _dyld_register_func_for_add_image(add_callback);
    
}
//////////////////////////////////////////////////////


你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。