// This file contains stubs matching the sybols previously exported by libobjc
// when i386 Mac was actually supported. These stubs allow us to tease apart the
// dependencies to prepare for removing i386 Mac libobjc entirely.
//
// This file is not built when building for any other arch/OS combination. When
// building for i386 Mac, no other source files are built, just this one. This
// is handled using the Included/Excluded Source File Names settings in Xcode,
// with arch/OS-specific overrides.
//
// rdar://problem/58541885
#pragma GCC visibility push(default)
const char ___ld_hide_os10_5__objc_class_name_NSObject __asm__("$ld$hide$os10.5$.objc_class_name_NSObject");
const char ___ld_hide_os10_6__objc_class_name_NSObject __asm__("$ld$hide$os10.6$.objc_class_name_NSObject");
const char ___ld_hide_os10_7__objc_class_name_NSObject __asm__("$ld$hide$os10.7$.objc_class_name_NSObject");
const char ___objc_class_name_List __asm__(".objc_class_name_List");
const char ___objc_class_name_NSObject __asm__(".objc_class_name_NSObject");
const char ___objc_class_name_Object __asm__(".objc_class_name_Object");
const char ___objc_class_name_Protocol __asm__(".objc_class_name_Protocol");
void NXCompareHashTables(void) {}
void NXCompareMapTables(void) {}
void NXCopyHashTable(void) {}
void NXCopyStringBuffer(void) {}
void NXCopyStringBufferFromZone(void) {}
void NXCountHashTable(void) {}
void NXCountMapTable(void) {}
void NXCreateHashTable(void) {}
void NXCreateHashTableFromZone(void) {}
void NXCreateMapTable(void) {}
void NXCreateMapTableFromZone(void) {}
void NXEmptyHashTable(void) {}
void NXFreeHashTable(void) {}
void NXFreeMapTable(void) {}
void NXHashGet(void) {}
void NXHashInsert(void) {}
void NXHashInsertIfAbsent(void) {}
void NXHashMember(void) {}
void NXHashRemove(void) {}
void NXInitHashState(void) {}
void NXInitMapState(void) {}
void NXMapGet(void) {}
void NXMapInsert(void) {}
void NXMapMember(void) {}
void NXMapRemove(void) {}
void NXNextHashState(void) {}
void NXNextMapState(void) {}
void NXNoEffectFree(void) {}
const char NXObjectMapPrototype;
void NXPtrHash(void) {}
void NXPtrIsEqual(void) {}
const char NXPtrPrototype;
const char NXPtrStructKeyPrototype;
const char NXPtrValueMapPrototype;
void NXReallyFree(void) {}
void NXResetHashTable(void) {}
void NXResetMapTable(void) {}
void NXStrHash(void) {}
void NXStrIsEqual(void) {}
const char NXStrPrototype;
const char NXStrStructKeyPrototype;
const char NXStrValueMapPrototype;
void NXUniqueString(void) {}
void NXUniqueStringNoCopy(void) {}
void NXUniqueStringWithLength(void) {}
char _alloc;
void _class_getIvarMemoryManagement(void) {}
void _class_isFutureClass(void) {}
void _class_isSwift(void) {}
char _copy;
char _dealloc;
char _error;
void _objcInit(void) {}
void _objc_addWillInitializeClassFunc(void) {}
void _objc_atfork_child(void) {}
void _objc_atfork_parent(void) {}
void _objc_atfork_prepare(void) {}
void _objc_autoreleasePoolPop(void) {}
void _objc_autoreleasePoolPrint(void) {}
void _objc_autoreleasePoolPush(void) {}
void _objc_deallocOnMainThreadHelper(void) {}
const char _objc_debug_class_hash;
const char _objc_empty_cache;
void _objc_error(void) {}
void _objc_flush_caches(void) {}
void _objc_getFreedObjectClass(void) {}
void _objc_init(void) {}
void _objc_msgForward(void) {}
void _objc_msgForward_stret(void) {}
void _objc_resolve_categories_for_class(void) {}
void _objc_rootAlloc(void) {}
void _objc_rootAllocWithZone(void) {}
void _objc_rootAutorelease(void) {}
void _objc_rootDealloc(void) {}
void _objc_rootFinalize(void) {}
void _objc_rootHash(void) {}
void _objc_rootInit(void) {}
void _objc_rootIsDeallocating(void) {}
void _objc_rootRelease(void) {}
void _objc_rootReleaseWasZero(void) {}
void _objc_rootRetain(void) {}
void _objc_rootRetainCount(void) {}
void _objc_rootTryRetain(void) {}
void _objc_rootZone(void) {}
void _objc_setBadAllocHandler(void) {}
void _objc_setClassLoader(void) {}
void _protocol_getMethodTypeEncoding(void) {}
char _realloc;
char _zoneAlloc;
char _zoneCopy;
char _zoneRealloc;
void class_addIvar(void) {}
void class_addMethod(void) {}
void class_addMethods(void) {}
void class_addProperty(void) {}
void class_addProtocol(void) {}
void class_conformsToProtocol(void) {}
void class_copyIvarList(void) {}
void class_copyMethodList(void) {}
void class_copyPropertyList(void) {}
void class_copyProtocolList(void) {}
void class_createInstance(void) {}
void class_createInstanceFromZone(void) {}
void class_createInstances(void) {}
void class_getClassMethod(void) {}
void class_getClassVariable(void) {}
void class_getImageName(void) {}
void class_getInstanceMethod(void) {}
void class_getInstanceSize(void) {}
void class_getInstanceVariable(void) {}
void class_getIvarLayout(void) {}
void class_getMethodImplementation(void) {}
void class_getMethodImplementation_stret(void) {}
void class_getName(void) {}
void class_getProperty(void) {}
void class_getSuperclass(void) {}
void class_getVersion(void) {}
void class_getWeakIvarLayout(void) {}
void class_isMetaClass(void) {}
void class_lookupMethod(void) {}
void class_nextMethodList(void) {}
void class_poseAs(void) {}
void class_removeMethods(void) {}
void class_replaceMethod(void) {}
void class_replaceProperty(void) {}
void class_respondsToMethod(void) {}
void class_respondsToSelector(void) {}
void class_setIvarLayout(void) {}
void class_setSuperclass(void) {}
void class_setVersion(void) {}
void class_setWeakIvarLayout(void) {}
void gdb_class_getClass(void) {}
void gdb_object_getClass(void) {}
void imp_getBlock(void) {}
void imp_implementationWithBlock(void) {}
void imp_removeBlock(void) {}
void instrumentObjcMessageSends(void) {}
void ivar_getName(void) {}
void ivar_getOffset(void) {}
void ivar_getTypeEncoding(void) {}
void method_copyArgumentType(void) {}
void method_copyReturnType(void) {}
void method_exchangeImplementations(void) {}
void method_getArgumentType(void) {}
void method_getDescription(void) {}
void method_getImplementation(void) {}
void method_getName(void) {}
void method_getNumberOfArguments(void) {}
void method_getReturnType(void) {}
void method_getSizeOfArguments(void) {}
void method_getTypeEncoding(void) {}
void method_invoke(void) {}
void method_invoke_stret(void) {}
void method_setImplementation(void) {}
void objc_addClass(void) {}
void objc_addLoadImageFunc(void) {}
void objc_alloc(void) {}
void objc_allocWithZone(void) {}
void objc_alloc_init(void) {}
void objc_allocateClassPair(void) {}
void objc_allocateProtocol(void) {}
void objc_allocate_object(void) {}
void objc_appRequiresGC(void) {}
void objc_assertRegisteredThreadWithCollector(void) {}
void objc_assign_global(void) {}
void objc_assign_ivar(void) {}
void objc_assign_strongCast(void) {}
void objc_assign_threadlocal(void) {}
void objc_assign_weak(void) {}
void objc_atomicCompareAndSwapGlobal(void) {}
void objc_atomicCompareAndSwapGlobalBarrier(void) {}
void objc_atomicCompareAndSwapInstanceVariable(void) {}
void objc_atomicCompareAndSwapInstanceVariableBarrier(void) {}
void objc_atomicCompareAndSwapPtr(void) {}
void objc_atomicCompareAndSwapPtrBarrier(void) {}
void objc_autorelease(void) {}
void objc_autoreleasePoolPop(void) {}
void objc_autoreleasePoolPush(void) {}
void objc_autoreleaseReturnValue(void) {}
void objc_clear_deallocating(void) {}
void objc_clear_stack(void) {}
void objc_collect(void) {}
void objc_collect_init(void) {}
void objc_collectableZone(void) {}
void objc_collectingEnabled(void) {}
void objc_collecting_enabled(void) {}
void objc_constructInstance(void) {}
void objc_copyClassList(void) {}
void objc_copyClassNamesForImage(void) {}
void objc_copyClassNamesForImageHeader(void) {}
void objc_copyCppObjectAtomic(void) {}
void objc_copyImageNames(void) {}
void objc_copyProtocolList(void) {}
void objc_copyStruct(void) {}
void objc_copyWeak(void) {}
const char objc_debug_autoreleasepoolpage_child_offset;
const char objc_debug_autoreleasepoolpage_depth_offset;
const char objc_debug_autoreleasepoolpage_hiwat_offset;
const char objc_debug_autoreleasepoolpage_ma
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
如果想真正了解ios底层原理,除了阅读源码,没有捷径可走,但是没有一个可编译调试的环境,进阶无从谈起,本资源包为想进阶ios底层的小伙伴提供了可编译版本,编译的版本为苹果开源版本objc4-objc4-841.13,M1的电脑的同学也无需担心,此编译版本也兼容M1电脑 通过苹果开放源码与汇编堆栈等方式可以分析ios底层原理 runtime msg block 线程 kvc kvo dispatch xcode clang编译脚本 swift编译脚本 符号问题处理 但前提是当前现有一个从0到1的初始化进程,除了可以方便调试objc源码外,想进阶底层原理的小伙伴多多少少还需要学习一些汇编的知识,不需要复杂,了解能大概看懂就成 调试过程中 需要经常下符号断点进行调试 在此过程中你会慢慢感受到内存偏移的妙处,了解类的设计 以及oc的消息查找机制 此资源作为一个初始梯子搭桥,具体底层探索之路漫漫其修远兮,需要持之以恒的耐心 资源为免费,不管你是intel的架构,还是M1的电脑,调试过程中遇到什么问题欢迎留言,有问必答 有可能的话可以附上一些深层的问题探讨思路 Be Careful
资源详情
资源评论
资源推荐
收起资源包目录
苹果objc开源项目配置mac M1可编译调试版本-841.13 (382个子文件)
objcdt.1 473B
ObjectiveC.apinotes 11KB
APPLE_LICENSE 19KB
version.bat 1KB
prebuild.bat 827B
dummy-library-mac-i386.c 13KB
objcrt.c 3KB
libraryPath.c 2KB
imports.c 1KB
definitions.c 1KB
includes.c 1KB
bool.c 912B
include-warnings.c 814B
defines.c 360B
headers.c 350B
includes-objc2.c 329B
unload3.c 307B
tbi.c 275B
markgc.cpp 21KB
objc-probes.d 105B
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.editorconfig 50B
preopt-caches.entitlements 356B
defines.expected 4KB
objc-runtime-new.h 78KB
runtime.h 70KB
objc-internal.h 45KB
llvm-DenseMap.h 42KB
objc-object.h 39KB
objc-private.h 36KB
objc-os.h 29KB
dyld_priv.h 27KB
lock_private.h 24KB
Block_private.h 18KB
objc-abi.h 16KB
test.h 16KB
llvm-MathExtras.h 15KB
reason.h 12KB
objc-auto.h 12KB
hashtable2.h 12KB
objc-runtime-old.h 12KB
objc-gdb.h 12KB
tsd_private.h 12KB
message.h 11KB
objc-api.h 10KB
pthread_machdep.h 10KB
objc-config.h 10KB
variant_private.h 10KB
llvm-DenseSet.h 10KB
linker_set.h 9KB
objc.h 8KB
llvm-type_traits.h 7KB
llvm-DenseMapInfo.h 7KB
objc-ptrauth.h 7KB
llvm-AlignOf.h 6KB
maptable.h 6KB
isa.h 6KB
tsd.h 6KB
objc-env.h 6KB
objc-shared-cache.h 6KB
PointerUnion.h 6KB
methodListSmall.h 5KB
objc-weak.h 5KB
NSObject-internal.h 5KB
_simple.h 5KB
arm64-asm.h 5KB
objc-exception.h 5KB
objc-lockdebug.h 4KB
objc-file.h 4KB
restartable.h 4KB
Object.h 4KB
List.h 4KB
NSObject.h 3KB
spinlock_private.h 3KB
objc-zalloc.h 3KB
DenseMapExtras.h 3KB
objc-locks.h 2KB
objc-block-trampolines.h 2KB
reason_private.h 2KB
NSObject-private.h 2KB
json.h 2KB
cpu_capabilities.h 2KB
objc-sync.h 2KB
objc-file-old.h 2KB
CrashReporterClient.h 2KB
objc-loadmethod.h 2KB
objc-cache-old.h 2KB
objc-locks-old.h 1KB
objc-sel-set.h 1KB
objc-locks-new.h 1KB
Protocol.h 1KB
objc-references.h 1KB
ivarSlide.h 1KB
objc-initialize.h 1KB
objc-load.h 1KB
associationForbidden.h 1KB
base_private.h 1KB
weak.h 1KB
共 382 条
- 1
- 2
- 3
- 4
i_erlich
- 粉丝: 207
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0