this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Create proper signatures for dtrace

+117 -55
+113 -55
src/CoreSymbolication/include/CoreSymbolication/CoreSymbolication.h
··· 1 1 /* 2 - This file is part of Darling. 2 + This file is part of Darling. 3 + 4 + Copyright (C) 2017 Lubos Dolezel 5 + 6 + Darling is free software: you can redistribute it and/or modify 7 + it under the terms of the GNU General Public License as published by 8 + the Free Software Foundation, either version 3 of the License, or 9 + (at your option) any later version. 10 + 11 + Darling is distributed in the hope that it will be useful, 12 + but WITHOUT ANY WARRANTY; without even the implied warranty of 13 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 + GNU General Public License for more details. 15 + 16 + You should have received a copy of the GNU General Public License 17 + along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 + */ 3 19 4 - Copyright (C) 2017 Lubos Dolezel 20 + #ifndef __CORESYMBOLICATION_CORESYMBOLICATION_H__ 21 + #define __CORESYMBOLICATION_CORESYMBOLICATION_H__ 5 22 6 - Darling is free software: you can redistribute it and/or modify 7 - it under the terms of the GNU General Public License as published by 8 - the Free Software Foundation, either version 3 of the License, or 9 - (at your option) any later version. 23 + #include <CoreFoundation/CoreFoundation.h> 24 + #include <mach/i386/vm_types.h> 25 + #include <mach/mach_types.h> 26 + #include <sys/types.h> 10 27 11 - Darling is distributed in the hope that it will be useful, 12 - but WITHOUT ANY WARRANTY; without even the implied warranty of 13 - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 - GNU General Public License for more details. 28 + typedef CFRange CSRange; 15 29 16 - You should have received a copy of the GNU General Public License 17 - along with Darling. If not, see <http://www.gnu.org/licenses/>. 18 - */ 30 + typedef void* CSSymbolRef; 31 + typedef void* CSSymbolicatorRef; 32 + typedef void* CSSymbolOwnerRef; 33 + //typedef void (CSSymbolIterator)(CSSymbolRef); 34 + typedef void (^CSSymbolIterator)(CSSymbolRef); 35 + typedef void* CSRegionRef; 36 + 37 + typedef struct { 38 + int value; 39 + } CSPing; 40 + 41 + typedef struct { 42 + char *symbolOwner; 43 + } CSDyldLoad; 44 + 45 + typedef struct { 46 + CSPing ping; 47 + CSDyldLoad dyldLoad; 48 + } CSUnknown; 49 + 50 + typedef struct { 51 + CSSymbolicatorRef symbolicator; 52 + CSUnknown u; 53 + } CSNotificationData; 54 + 55 + #define kCSNotificationTaskMain 1 << 0 56 + #define kCSNotificationPing 1 << 1 57 + #define kCSNotificationInitialized 1 << 2 58 + #define kCSNotificationDyldLoad 1 << 3 59 + #define kCSNotificationDyldUnload 1 << 4 60 + #define kCSNotificationTimeout 1 << 5 61 + #define kCSNotificationTaskExit 1 << 6 62 + #define kCSNotificationFini 1 << 7 63 + 64 + #define kCSNow 0xFFFFFFFF 65 + #define kCSNull NULL 66 + 67 + #define kCSSymbolicatorUseSlidKernelAddresses 1 << 0 68 + #define kCSSymbolicatorDisallowDsymData 1 << 1 69 + #define kCSSymbolicatorTrackDyldActivity 1 << 2 70 + 71 + #define kCSSymbolicatorDefaultCreateFlags 0 72 + 73 + #define kCSSymbolOwnerDataFoundDsym 1 << 0 74 + #define kCSSymbolOwnerDataEmpty 1 << 1 75 + #define kCSSymbolOwnerIsAOut 1 << 2 19 76 20 77 void* CSAddressSetAdd(void); 21 78 void* CSAddressSetCreate(void); ··· 24 81 void* CSArchitectureGetFamily(void); 25 82 void* CSArchitectureGetFamilyName(void); 26 83 void* CSArchitectureIs32Bit(void); 27 - void* CSArchitectureIs64Bit(void); 84 + int CSArchitectureIs64Bit(int architecture); 28 85 void* CSArchitectureIsArm(void); 29 86 void* CSArchitectureIsArm64(void); 30 87 void* CSArchitectureIsBigEndian(void); ··· 37 94 void* CSEqual(void); 38 95 void* CSExceptionSafeThreadRunBlock(void); 39 96 void* CSGetRetainCount(void); 40 - void* CSIsNull(void); 97 + void* CSIsNull(void* arg0); 41 98 void* CSMMapArchiveCacheCopyMMapArchive(void); 42 99 void* CSMMapArchiveCacheReleaseMMapArchive(void); 43 100 void* CSMMapArchiveCacheSetShouldStoreToDaemon(void); ··· 45 102 void* CSRangeIntersectsRange(void); 46 103 void* CSRegionCopyDescriptionWithIndent(void); 47 104 void* CSRegionForeachSourceInfo(void); 48 - void* CSRegionForeachSymbol(void); 105 + void CSRegionForeachSymbol(CSRegionRef region, void (^handler)(CSSymbolRef)); 49 106 void* CSRegionGetName(void); 50 107 void* CSRegionGetRange(void); 51 108 void* CSRegionGetSymbolOwner(void); 52 109 void* CSRegionGetSymbolicator(void); 53 - void* CSRelease(void); 110 + void CSRelease(CSSymbolicatorRef symbolicator); 54 111 void* CSRetain(void); 55 112 void* CSSectionGetSegment(void); 56 113 void* CSSegmentForeachSection(void); ··· 75 132 void* CSSymbolForeachSourceInfo(void); 76 133 void* CSSymbolGetFlags(void); 77 134 void* CSSymbolGetInstructionData(void); 78 - void* CSSymbolGetMangledName(void); 79 - void* CSSymbolGetName(void); 80 - void* CSSymbolGetRange(void); 135 + char* CSSymbolGetMangledName(CSSymbolRef symbol); 136 + char* CSSymbolGetName(CSSymbolRef symbol); 137 + CFRange CSSymbolGetRange(CSSymbolRef symbol); 81 138 void* CSSymbolGetRegion(void); 82 139 void* CSSymbolGetSection(void); 83 140 void* CSSymbolGetSegment(void); 84 - void* CSSymbolGetSymbolOwner(void); 141 + CSSymbolOwnerRef CSSymbolGetSymbolOwner(CSSymbolRef symbol); 85 142 void* CSSymbolGetSymbolicator(void); 86 143 void* CSSymbolIsArm(void); 87 144 void* CSSymbolIsDebugMap(void); 88 145 void* CSSymbolIsDwarf(void); 89 - void* CSSymbolIsDyldStub(void); 90 - void* CSSymbolIsExternal(void); 91 - void* CSSymbolIsFunction(void); 146 + int CSSymbolIsDyldStub(CSSymbolRef symbol); 147 + int CSSymbolIsExternal(CSSymbolRef symbol); 148 + int CSSymbolIsFunction(CSSymbolRef symbol); 92 149 void* CSSymbolIsFunctionStarts(void); 93 150 void* CSSymbolIsKnownLength(void); 94 151 void* CSSymbolIsMangledNameSourceDwarf(void); ··· 99 156 void* CSSymbolIsNameSourceDwarf(void); 100 157 void* CSSymbolIsNameSourceDwarfMIPSLinkage(void); 101 158 void* CSSymbolIsNameSourceNList(void); 102 - void* CSSymbolIsObjcMethod(void); 159 + int CSSymbolIsObjcMethod(CSSymbolRef symbol); 103 160 void* CSSymbolIsOmitFramePointer(void); 104 161 void* CSSymbolIsPrivateExternal(void); 105 162 void* CSSymbolIsThumb(void); 106 - void* CSSymbolIsUnnamed(void); 163 + int CSSymbolIsUnnamed(CSSymbolRef symbol); 107 164 void* CSSymbolOwnerAddInContext(void); 108 165 void* CSSymbolOwnerCacheFlush(void); 109 166 void* CSSymbolOwnerCacheGetEntryCount(void); ··· 125 182 void* CSSymbolOwnerForeachSection(void); 126 183 void* CSSymbolOwnerForeachSegment(void); 127 184 void* CSSymbolOwnerForeachSourceInfo(void); 128 - void* CSSymbolOwnerForeachSymbol(void); 129 - void* CSSymbolOwnerForeachSymbolWithMangledName(void); 130 - void* CSSymbolOwnerForeachSymbolWithName(void); 131 - void* CSSymbolOwnerGetArchitecture(void); 132 - void* CSSymbolOwnerGetBaseAddress(void); 185 + void CSSymbolOwnerForeachSymbol(CSSymbolOwnerRef owner, void (^symbol)(CSSymbolRef)); 186 + void CSSymbolOwnerForeachSymbolWithMangledName(CSSymbolOwnerRef owner, const char* name, void (^handler)(CSSymbolRef)); 187 + void CSSymbolOwnerForeachSymbolWithName(CSSymbolOwnerRef owner, const char* name, void (^handler)(CSSymbolRef)); 188 + int CSSymbolOwnerGetArchitecture(CSSymbolOwnerRef owner); 189 + uintptr_t CSSymbolOwnerGetBaseAddress(CSSymbolOwnerRef owner); 133 190 void* CSSymbolOwnerGetCFUUIDBytes(void); 134 191 void* CSSymbolOwnerGetCompatibilityVersion(void); 135 192 void* CSSymbolOwnerGetCurrentVersion(void); 136 - void* CSSymbolOwnerGetDataFlags(void); 193 + int CSSymbolOwnerGetDataFlags(CSSymbolOwnerRef owner); 137 194 void* CSSymbolOwnerGetDataTypeID(void); 138 195 void* CSSymbolOwnerGetDsymPath(void); 139 196 void* CSSymbolOwnerGetDsymVersion(void); 140 197 void* CSSymbolOwnerGetFlags(void); 141 198 void* CSSymbolOwnerGetLastModifiedTimestamp(void); 142 199 void* CSSymbolOwnerGetLoadTimestamp(void); 143 - void* CSSymbolOwnerGetName(void); 144 - void* CSSymbolOwnerGetPath(void); 200 + char* CSSymbolOwnerGetName(CSSymbolOwnerRef owner); 201 + char* CSSymbolOwnerGetPath(int arg0); 145 202 void* CSSymbolOwnerGetPathForSymbolication(void); 146 203 void* CSSymbolOwnerGetRegionCount(void); 147 204 void* CSSymbolOwnerGetRegionWithAddress(void); 148 - void* CSSymbolOwnerGetRegionWithName(void); 205 + CSRegionRef CSSymbolOwnerGetRegionWithName(CSSymbolOwnerRef owner, char* name); 149 206 void* CSSymbolOwnerGetSectionWithAddress(void); 150 207 void* CSSymbolOwnerGetSectionWithName(void); 151 208 void* CSSymbolOwnerGetSegmentWithAddress(void); 152 209 void* CSSymbolOwnerGetSourceInfoCount(void); 153 210 void* CSSymbolOwnerGetSourceInfoWithAddress(void); 154 211 void* CSSymbolOwnerGetSymbolCount(void); 155 - void* CSSymbolOwnerGetSymbolWithAddress(void); 212 + CSSymbolOwnerRef CSSymbolOwnerGetSymbolWithAddress(CSSymbolOwnerRef owner, mach_vm_address_t address); 156 213 void* CSSymbolOwnerGetSymbolWithMangledName(void); 157 214 void* CSSymbolOwnerGetSymbolWithName(void); 158 215 void* CSSymbolOwnerGetSymbolicator(void); 159 - void* CSSymbolOwnerGetTransientUserData(void); 216 + uintptr_t CSSymbolOwnerGetTransientUserData(CSSymbolOwnerRef owner); 160 217 void* CSSymbolOwnerGetUUID(void); 161 218 void* CSSymbolOwnerGetUnloadTimestamp(void); 162 219 void* CSSymbolOwnerGetVersion(void); ··· 173 230 void* CSSymbolOwnerIsMutable(void); 174 231 void* CSSymbolOwnerIsObjCGCSupported(void); 175 232 void* CSSymbolOwnerIsObjCRetainReleaseSupported(void); 176 - void* CSSymbolOwnerIsObject(void); 233 + void* CSSymbolOwnerIsObject(CSSymbolOwnerRef owner); 177 234 void* CSSymbolOwnerIsObsolete(void); 178 235 void* CSSymbolOwnerIsPIE(void); 179 236 void* CSSymbolOwnerIsProtected(void); ··· 187 244 void* CSSymbolOwnerSetPath(void); 188 245 void* CSSymbolOwnerSetPathForSymbolication(void); 189 246 void* CSSymbolOwnerSetRelocationCount(void); 190 - void* CSSymbolOwnerSetTransientUserData(void); 247 + void CSSymbolOwnerSetTransientUserData(CSSymbolOwnerRef owner, uint32_t generation); 191 248 void* CSSymbolOwnerSetUnloadTimestamp(void); 192 249 void* CSSymbolicatorAddSymbolOwner(void); 193 250 void* CSSymbolicatorApplyMutableContextBlock(void); ··· 196 253 void* CSSymbolicatorCreateWithBinaryImageList(void); 197 254 void* CSSymbolicatorCreateWithBinaryImageListCountPidFlagsAndNotification(void); 198 255 void* CSSymbolicatorCreateWithMachKernel(void); 199 - void* CSSymbolicatorCreateWithMachKernelFlagsAndNotification(void); 256 + void* CSSymbolicatorCreateWithMachKernelFlagsAndNotification(int arg0, void* arg1); 200 257 void* CSSymbolicatorCreateWithPathAndArchitecture(void); 201 258 void* CSSymbolicatorCreateWithPathArchitectureFlagsAndNotification(void); 202 259 void* CSSymbolicatorCreateWithPid(void); ··· 205 262 void* CSSymbolicatorCreateWithSignatureAndNotification(void); 206 263 void* CSSymbolicatorCreateWithSignatureFlagsAndNotification(void); 207 264 void* CSSymbolicatorCreateWithTask(void); 208 - void* CSSymbolicatorCreateWithTaskFlagsAndNotification(void); 265 + CSSymbolicatorRef CSSymbolicatorCreateWithTaskFlagsAndNotification(task_t task, uint32_t flags, void (^handler)(uint32_t notification_type, CSNotificationData data)); 209 266 void* CSSymbolicatorCreateWithTaskPidFlagsAndNotification(void); 210 267 void* CSSymbolicatorCreateWithURLAndArchitecture(void); 211 268 void* CSSymbolicatorCreateWithURLArchitectureFlagsAndNotification(void); ··· 219 276 void* CSSymbolicatorForeachSharedCacheSymbolicatorWithFlagsAndNotification(void); 220 277 void* CSSymbolicatorForeachSourceInfoAtTime(void); 221 278 void* CSSymbolicatorForeachSymbolAtTime(void); 222 - void* CSSymbolicatorForeachSymbolOwnerAtTime(void); 279 + int CSSymbolicatorForeachSymbolOwnerAtTime(CSSymbolicatorRef symbolicator, int time, void (^handler)(CSSymbolOwnerRef t)); 223 280 void* CSSymbolicatorForeachSymbolOwnerWithCFUUIDBytesAtTime(void); 224 - void* CSSymbolicatorForeachSymbolOwnerWithFlagsAtTime(void); 225 - void* CSSymbolicatorForeachSymbolOwnerWithNameAtTime(void); 226 - void* CSSymbolicatorForeachSymbolOwnerWithPathAtTime(void); 281 + int CSSymbolicatorForeachSymbolOwnerWithFlagsAtTime(CSSymbolicatorRef symbolicator, int flags, int time, void (^handler)(CSSymbolOwnerRef t)); 282 + int CSSymbolicatorForeachSymbolOwnerWithNameAtTime(CSSymbolicatorRef symbolicator, const char* name, int time, void (^handler)(CSSymbolOwnerRef t)); 283 + int CSSymbolicatorForeachSymbolOwnerWithPathAtTime(CSSymbolicatorRef symbolicator, const char* path, int time, void (^handler)(CSSymbolOwnerRef t)); 227 284 void* CSSymbolicatorForeachSymbolOwnerWithUUIDAtTime(void); 228 - void* CSSymbolicatorForeachSymbolWithMangledNameAtTime(void); 229 - void* CSSymbolicatorForeachSymbolWithNameAtTime(void); 285 + void CSSymbolicatorForeachSymbolWithMangledNameAtTime(CSSymbolicatorRef symbolicator, const char* name, int time, void (^handler)(CSSymbolRef t)); 286 + void CSSymbolicatorForeachSymbolWithNameAtTime(CSSymbolicatorRef symbolicator, const char* name, int time, void (^handler)(CSSymbolRef t)); 230 287 void* CSSymbolicatorForeachSymbolicatorWithPath(void); 231 288 void* CSSymbolicatorForeachSymbolicatorWithPathFlagsAndNotification(void); 232 289 void* CSSymbolicatorForeachSymbolicatorWithURL(void); 233 290 void* CSSymbolicatorForeachSymbolicatorWithURLFlagsAndNotification(void); 234 - void* CSSymbolicatorGetAOutSymbolOwner(void); 235 - void* CSSymbolicatorGetArchitecture(void); 291 + void* CSSymbolicatorGetAOutSymbolOwner(int arg0); 292 + int CSSymbolicatorGetArchitecture(CSSymbolicatorRef symbolicator); 236 293 void* CSSymbolicatorGetFlagsForDebugMapOnlyData(void); 237 294 void* CSSymbolicatorGetFlagsForDsymOnlyData(void); 238 295 void* CSSymbolicatorGetFlagsForDwarfOnlyData(void); 239 296 void* CSSymbolicatorGetFlagsForFunctionStartsOnlyData(void); 240 297 void* CSSymbolicatorGetFlagsForNListOnlyData(void); 241 298 void* CSSymbolicatorGetFlagsForNoSymbolOrSourceInfoData(void); 242 - void* CSSymbolicatorGetPid(void); 299 + pid_t CSSymbolicatorGetPid(CSSymbolicatorRef symbolicator); 243 300 void* CSSymbolicatorGetRegionCountAtTime(void); 244 301 void* CSSymbolicatorGetRegionWithAddressAtTime(void); 245 302 void* CSSymbolicatorGetRegionWithNameAtTime(void); ··· 252 309 void* CSSymbolicatorGetSymbolCountAtTime(void); 253 310 void* CSSymbolicatorGetSymbolOwner(void); 254 311 void* CSSymbolicatorGetSymbolOwnerCountAtTime(void); 255 - void* CSSymbolicatorGetSymbolOwnerWithAddressAtTime(void); 312 + CSSymbolOwnerRef CSSymbolicatorGetSymbolOwnerWithAddressAtTime(CSSymbolicatorRef symbolicator, mach_vm_address_t address, int time); 256 313 void* CSSymbolicatorGetSymbolOwnerWithCFUUIDBytesAtTime(void); 257 314 void* CSSymbolicatorGetSymbolOwnerWithNameAtTime(void); 258 - void* CSSymbolicatorGetSymbolOwnerWithUUIDAtTime(void); 259 - void* CSSymbolicatorGetSymbolWithAddressAtTime(void); 315 + CSSymbolOwnerRef CSSymbolicatorGetSymbolOwnerWithUUIDAtTime(CSSymbolicatorRef symbolicator, CFUUIDRef uuid, int time); 316 + CSSymbolRef CSSymbolicatorGetSymbolWithAddressAtTime(CSSymbolicatorRef symbolicator, mach_vm_address_t addr, time_t time); 260 317 void* CSSymbolicatorGetSymbolWithMangledNameAtTime(void); 261 318 void* CSSymbolicatorGetSymbolWithMangledNameFromSymbolOwnerWithNameAtTime(void); 262 319 void* CSSymbolicatorGetSymbolWithNameAtTime(void); 263 320 void* CSSymbolicatorGetSymbolWithNameFromSymbolOwnerWithNameAtTime(void); 264 - void* CSSymbolicatorGetTask(void); 321 + task_t CSSymbolicatorGetTask(CSSymbolicatorRef symbolicator); 265 322 void* CSSymbolicatorIsKernelSymbolicator(void); 266 323 void* CSSymbolicatorIsTaskTranslated(void); 267 324 void* CSSymbolicatorIsTaskValid(void); ··· 269 326 void* CSSymbolicatorResymbolicateFail(void); 270 327 void* CSSymbolicatorResymbolicateFromDebugSymbolsInfo(void); 271 328 void* CSSymbolicatorSetForceGlobalSafeMachVMReads(void); 272 - void* CSSymbolicatorSubscribeToTaskMainNotification(void); 329 + void CSSymbolicatorSubscribeToTaskMainNotification(CSSymbolicatorRef symbolicator); 273 330 void* CSTotalBytesMapped(void); 274 331 void* CSUUIDCFUUIDBytesToPath(void); 275 332 void* CSUUIDCFUUIDBytesToString(void); ··· 295 352 void* task_is_64bit(void); 296 353 void* thread_name_for_thread_port(void); 297 354 355 + #endif
+4
src/CoreSymbolication/include/CoreSymbolication/CoreSymbolicationPrivate.h
··· 1 + #ifndef __CORESYMBOLICATION_CORESYMBOLICATION_PRIVATE_H__ 2 + #define __CORESYMBOLICATION_CORESYMBOLICATION_PRIVATE_H__ 3 + 4 + #endif
src/CoreSymbolication/src/functions.c