njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 1 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 2 | # Suppressions for Darwin 9.x / Mac OS X 10.5 Leopard |
njn | d4f90d2 | 2009-07-13 07:02:26 +0000 | [diff] [blame] | 3 | |
| 4 | ##----------------------------------------------------------------------## |
| 5 | # Memcheck |
| 6 | ##----------------------------------------------------------------------## |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 7 | |
| 8 | { |
| 9 | mach_msg_trap-1 |
| 10 | Memcheck:Param |
| 11 | mach_msg(msg.msgh_remote_port) |
| 12 | fun:mach_msg_trap |
| 13 | obj:/System/Library/Frameworks/CoreFoundation* |
| 14 | obj:/System/Library/Frameworks/ApplicationServices* |
| 15 | } |
| 16 | |
| 17 | { |
| 18 | mach_msg_trap-2 |
| 19 | Memcheck:Param |
| 20 | mach_msg(msg.msgh_remote_port) |
| 21 | fun:mach_msg_trap |
| 22 | obj:/System/Library/Frameworks/CoreFoundation* |
| 23 | obj:/System/Library/Frameworks/CoreServices* |
| 24 | } |
| 25 | |
| 26 | { |
| 27 | mach_msg_trap-3 |
| 28 | Memcheck:Param |
| 29 | mach_msg(msg.msgh_remote_port) |
| 30 | fun:mach_msg_trap |
| 31 | obj:/System/Library/Frameworks/CoreFoundation* |
| 32 | obj:/System/Library/Frameworks/Carbon* |
| 33 | } |
| 34 | |
| 35 | { |
| 36 | mach_msg_trap-4 |
| 37 | Memcheck:Param |
| 38 | mach_msg(msg.msgh_remote_port) |
| 39 | fun:mach_msg_trap |
| 40 | obj:/System/Library/Frameworks/CoreFoundation* |
| 41 | obj:/System/Library/Frameworks/CoreFoundation* |
| 42 | } |
| 43 | |
| 44 | { |
| 45 | mach_msg_trap-5 |
| 46 | Memcheck:Param |
| 47 | mach_msg(msg.msgh_remote_port) |
| 48 | fun:mach_msg_trap |
| 49 | obj:/System/Library/Frameworks/CoreFoundation* |
| 50 | obj:/System/Library/Frameworks/AppKit* |
| 51 | } |
| 52 | |
| 53 | { |
| 54 | macos-Cond-1 |
| 55 | Memcheck:Cond |
| 56 | fun:GetVariationInfoFromName |
| 57 | obj:/System/Library/Frameworks/ApplicationServices* |
| 58 | obj:/System/Library/Frameworks/ApplicationServices* |
| 59 | } |
| 60 | |
| 61 | { |
| 62 | macos-Cond-2 |
| 63 | Memcheck:Cond |
| 64 | fun:*PMMutex*Lock* |
| 65 | obj:/System/Library/Frameworks/ApplicationServices* |
| 66 | obj:/System/Library/Frameworks/ApplicationServices* |
| 67 | } |
| 68 | |
| 69 | { |
| 70 | macos-Cond-3 |
| 71 | Memcheck:Cond |
| 72 | fun:sseCGSBlendXXXX8888 |
| 73 | obj:/System/Library/Frameworks/ApplicationServices* |
| 74 | obj:/System/Library/Frameworks/ApplicationServices* |
| 75 | } |
| 76 | |
| 77 | { |
| 78 | macos-Cond-4 |
| 79 | Memcheck:Cond |
| 80 | fun:*CASettingsStorage*RefreshSettings* |
| 81 | obj:/System/Library/Frameworks/CoreAudio* |
| 82 | obj:/System/Library/Frameworks/CoreAudio* |
| 83 | } |
| 84 | |
| 85 | { |
| 86 | macos-Cond-5 |
| 87 | Memcheck:Cond |
| 88 | fun:gle* |
| 89 | obj:/System/Library/Frameworks/OpenGL* |
| 90 | obj:/System/Library/Frameworks/OpenGL* |
| 91 | } |
| 92 | |
| 93 | { |
njn | 1926053 | 2009-06-24 05:01:41 +0000 | [diff] [blame] | 94 | macos-Cond-6 |
| 95 | Memcheck:Cond |
| 96 | fun:pthread_rwlock_init$UNIX2003 |
| 97 | fun:main |
| 98 | } |
| 99 | |
sewardj | d6b722f | 2009-07-29 07:00:01 +0000 | [diff] [blame] | 100 | # afaict this is legit. Might be caused by setenv("VAR=") |
| 101 | # where the value string is empty (not sure) |
njn | 1926053 | 2009-06-24 05:01:41 +0000 | [diff] [blame] | 102 | { |
sewardj | d6b722f | 2009-07-29 07:00:01 +0000 | [diff] [blame] | 103 | macos-Cond-7 |
| 104 | Memcheck:Cond |
| 105 | fun:__setenv |
| 106 | fun:putenv |
| 107 | } |
| 108 | |
| 109 | { |
| 110 | macos-futimes-1 |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 111 | Memcheck:Param |
| 112 | futimes(tvp[1]) |
| 113 | fun:futimes |
| 114 | obj:/usr/lib/libSystem* |
| 115 | obj:/usr/lib/libSystem* |
| 116 | } |
| 117 | |
njn | d4f90d2 | 2009-07-13 07:02:26 +0000 | [diff] [blame] | 118 | { |
| 119 | macos-vsyslog-hole |
| 120 | Memcheck:Param |
| 121 | socketcall.sendto(msg) |
| 122 | fun:sendto$NOCANCEL$UNIX2003 |
| 123 | fun:vsyslog |
| 124 | } |
| 125 | |
njn | 386ae74 | 2009-06-09 00:10:20 +0000 | [diff] [blame] | 126 | # Still-reachable memory. |
| 127 | |
| 128 | # I chopped this one off at libSystem_initializer, there were more frames. |
| 129 | { |
| 130 | darwin-still-reachable-1 |
| 131 | Memcheck:Leak |
| 132 | fun:calloc |
| 133 | fun:dwarf2_unwind_dyld_add_image_hook |
| 134 | fun:_ZN4dyld19registerAddCallbackEPFvPK11mach_headerlE |
| 135 | fun:_dyld_register_func_for_add_image |
| 136 | fun:__keymgr_initializer |
| 137 | fun:libSystem_initializer |
| 138 | } |
| 139 | |
| 140 | # I chopped this one off at libSystem_initializer, there were more frames. |
| 141 | { |
| 142 | darwin-still-reachable-2 |
| 143 | Memcheck:Leak |
| 144 | fun:malloc |
| 145 | fun:get_or_create_key_element |
| 146 | fun:_keymgr_get_and_lock_processwide_ptr_2 |
| 147 | fun:dwarf2_unwind_dyld_add_image_hook |
| 148 | fun:_ZN4dyld19registerAddCallbackEPFvPK11mach_headerlE |
| 149 | fun:_dyld_register_func_for_add_image |
| 150 | fun:__keymgr_initializer |
| 151 | fun:libSystem_initializer |
| 152 | } |
| 153 | |
| 154 | { |
| 155 | darwin-still-reachable-3 |
| 156 | Memcheck:Leak |
| 157 | fun:malloc |
| 158 | fun:__smakebuf |
| 159 | fun:__swsetup |
| 160 | fun:__sfvwrite |
| 161 | fun:puts |
| 162 | } |
| 163 | |
njn | 8b14538 | 2009-06-26 07:00:00 +0000 | [diff] [blame] | 164 | # Genuine leaks. |
| 165 | # See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's |
| 166 | # unavoidable due to BSD setenv() semantics. |
| 167 | { |
sewardj | d6b722f | 2009-07-29 07:00:01 +0000 | [diff] [blame] | 168 | macos-__setenv-leak-see-our-bug-188572 |
njn | 8b14538 | 2009-06-26 07:00:00 +0000 | [diff] [blame] | 169 | Memcheck:Leak |
| 170 | fun:malloc_zone_malloc |
| 171 | fun:__setenv |
| 172 | fun:setenv$UNIX2003 |
njn | 8b14538 | 2009-06-26 07:00:00 +0000 | [diff] [blame] | 173 | } |
bart | 59381e5 | 2009-07-23 07:13:35 +0000 | [diff] [blame] | 174 | { |
sewardj | d6b722f | 2009-07-29 07:00:01 +0000 | [diff] [blame] | 175 | macos-localeconv-leak |
bart | 59381e5 | 2009-07-23 07:13:35 +0000 | [diff] [blame] | 176 | Memcheck:Leak |
| 177 | fun:malloc |
| 178 | fun:localeconv_l |
| 179 | fun:__vfprintf |
| 180 | fun:vsnprintf |
| 181 | } |
njn | 8b14538 | 2009-06-26 07:00:00 +0000 | [diff] [blame] | 182 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 183 | ##----------------------------------------------------------------------## |
njn | d4f90d2 | 2009-07-13 07:02:26 +0000 | [diff] [blame] | 184 | # Helgrind |
| 185 | ##----------------------------------------------------------------------## |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 186 | |
| 187 | # These ones were necessary to give no errors on a tiny non-threaded |
| 188 | # program. I don't know if they're real problems or false positives (njn). |
| 189 | |
| 190 | # keymgr seems to deliberately do some bogus actions, and if they are bogus, |
| 191 | # it passes the error codes back to the caller. |
| 192 | { |
| 193 | __keymgr_initializer lock failed |
| 194 | Helgrind:PthAPIerror |
| 195 | fun:pthread_mutex_lock |
| 196 | fun:_dyld_register_func_for_*_image |
| 197 | fun:__keymgr_initializer |
| 198 | fun:libSystem_initializer |
| 199 | } |
| 200 | { |
| 201 | __keymgr_initializer unlock failed |
| 202 | Helgrind:PthAPIerror |
| 203 | fun:pthread_mutex_unlock |
| 204 | fun:_dyld_register_func_for_*_image |
| 205 | fun:__keymgr_initializer |
| 206 | fun:libSystem_initializer |
| 207 | } |
| 208 | { |
| 209 | __keymgr_initializer bogus unlock |
| 210 | Helgrind:UnlockBogus |
| 211 | fun:pthread_mutex_unlock |
| 212 | fun:_dyld_register_func_for_*_image |
| 213 | fun:__keymgr_initializer |
| 214 | fun:libSystem_initializer |
| 215 | } |
| 216 | |
| 217 | # These ones were necessary to give no errors on a tiny threaded program. |
| 218 | # I don't know if they're real problems or false positives (njn). |
| 219 | |
sewardj | 49e05bc | 2009-07-31 08:52:39 +0000 | [diff] [blame] | 220 | #{ |
| 221 | # helgrind-darwinlibc-nuke-everything-in-dyld |
| 222 | # Helgrind:Race |
| 223 | # obj:/usr/lib/dyld |
| 224 | #} |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 225 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 226 | { |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 227 | helgrind-darwinlibc-nuke-everything-in-libSystem.B.dylib |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 228 | Helgrind:Race |
| 229 | obj:/usr/lib/libSystem.B.dylib |
| 230 | } |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 231 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 232 | # This would be better as "fun:\?\?\?" but string matching doesn't seem to |
| 233 | # allow escaping meta-chars. |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 234 | # |
| 235 | # This is very bad .. not only will it hide races in any |
| 236 | # un-identified piece of code, the ??? also matches any 3-char |
| 237 | # function name. |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 238 | { |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 239 | helgrind-darwinlibc-nuke-everything-in-???-(unknown-code) |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 240 | Helgrind:Race |
| 241 | fun:??? |
| 242 | } |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 243 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 244 | { |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 245 | helgrind-darwinlibc--mythread_wrapper-*thread*start* |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 246 | Helgrind:Race |
| 247 | fun:mythread_wrapper |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 248 | fun:*thread*start* |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 249 | } |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 250 | |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 251 | { |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 252 | helgrind-darwinlibc--pthread_create_WRK-pthread_create |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 253 | Helgrind:Race |
njn | f76d27a | 2009-05-28 01:53:07 +0000 | [diff] [blame] | 254 | fun:pthread_create_WRK |
| 255 | fun:pthread_create |
| 256 | } |
| 257 | |
sewardj | 3fa0da5 | 2009-07-26 19:55:18 +0000 | [diff] [blame] | 258 | |
sewardj | 3fa0da5 | 2009-07-26 19:55:18 +0000 | [diff] [blame] | 259 | # Thread #9: Bug in libpthread: recursive write lock granted on |
| 260 | # mutex/wrlock which does not support recursion |
| 261 | # at 0x18696: pthread_cond_wait* (hg_intercepts.c:655) |
| 262 | # by 0x2300B8: pthread_rwlock_wrlock$UNIX2003 (in /usr/lib/libSystem.B.dylib) |
| 263 | # by 0x18F41: pthread_rwlock_wrlock* (hg_intercepts.c:1177) |
| 264 | # |
| 265 | # no idea what this is about |
| 266 | # |
| 267 | { |
sewardj | cd8eafb | 2009-07-26 21:59:29 +0000 | [diff] [blame] | 268 | helgrind-darwin9--pthread-rwlock-kludgery |
sewardj | 3fa0da5 | 2009-07-26 19:55:18 +0000 | [diff] [blame] | 269 | Helgrind:Misc |
| 270 | fun:pthread_cond_wait* |
| 271 | fun:pthread_rwlock_*lock* |
| 272 | fun:pthread_rwlock_*lock* |
| 273 | } |