1The following are examples of py_profile.d. 2 3This samples stack traces for the process specified. This stack trace will 4cross the Python engine and system libraries, and insert translations for 5Python stack frames where appropriate. Here you can see it running on 6Code/Python/func_slow.py 7 8# py_profile.d -c ./func_slow.py 9Sampling 10-level stacks at 1001 Hertz... Hit Ctrl-C to end. 10Function A 11Function B 12Function C 13Top 25 most frequently sampled stacks, 14 15 16 libpython2.4.so.1.0`PyEval_EvalFrame+0x266 17 [ ./func_slow.py:3 (func_c) ] 18 libpython2.4.so.1.0`fast_function+0xa8 19 libpython2.4.so.1.0`call_function+0xda 20 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 21 [ ./func_slow.py:16 (func_b) ] 22 libpython2.4.so.1.0`fast_function+0xa8 23 libpython2.4.so.1.0`call_function+0xda 24 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 25 [ ./func_slow.py:24 (func_a) ] 26 libpython2.4.so.1.0`fast_function+0xa8 27 libpython2.4.so.1.0`call_function+0xda 28 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 29 [ ./func_slow.py:26 (?) ] 30 11 31 32 libpython2.4.so.1.0`PyEval_EvalFrame+0x278 33 [ ./func_slow.py:3 (func_c) ] 34 libpython2.4.so.1.0`fast_function+0xa8 35 libpython2.4.so.1.0`call_function+0xda 36 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 37 [ ./func_slow.py:16 (func_b) ] 38 libpython2.4.so.1.0`fast_function+0xa8 39 libpython2.4.so.1.0`call_function+0xda 40 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 41 [ ./func_slow.py:24 (func_a) ] 42 libpython2.4.so.1.0`fast_function+0xa8 43 libpython2.4.so.1.0`call_function+0xda 44 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 45 [ ./func_slow.py:26 (?) ] 46 11 47 48 libpython2.4.so.1.0`PyEval_EvalFrame+0x278a 49 [ ./func_slow.py:10 (func_b) ] 50 libpython2.4.so.1.0`fast_function+0xa8 51 libpython2.4.so.1.0`call_function+0xda 52 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 53 [ ./func_slow.py:24 (func_a) ] 54 libpython2.4.so.1.0`fast_function+0xa8 55 libpython2.4.so.1.0`call_function+0xda 56 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 57 [ ./func_slow.py:26 (?) ] 58 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 59 libpython2.4.so.1.0`PyEval_EvalCode+0x22 60 libpython2.4.so.1.0`run_node+0x35 61 11 62 63 libpython2.4.so.1.0`PyEval_EvalFrame+0x205 64 [ ./func_slow.py:18 (func_a) ] 65 libpython2.4.so.1.0`fast_function+0xa8 66 libpython2.4.so.1.0`call_function+0xda 67 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 68 [ ./func_slow.py:26 (?) ] 69 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 70 libpython2.4.so.1.0`PyEval_EvalCode+0x22 71 libpython2.4.so.1.0`run_node+0x35 72 libpython2.4.so.1.0`run_err_node+0x1f 73 libpython2.4.so.1.0`PyRun_FileExFlags+0x5e 74 libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f 75 12 76 77 libpython2.4.so.1.0`PyEval_EvalFrame+0x1fe 78 [ ./func_slow.py:10 (func_b) ] 79 libpython2.4.so.1.0`fast_function+0xa8 80 libpython2.4.so.1.0`call_function+0xda 81 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 82 [ ./func_slow.py:24 (func_a) ] 83 libpython2.4.so.1.0`fast_function+0xa8 84 libpython2.4.so.1.0`call_function+0xda 85 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 86 [ ./func_slow.py:26 (?) ] 87 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 88 libpython2.4.so.1.0`PyEval_EvalCode+0x22 89 libpython2.4.so.1.0`run_node+0x35 90 13 91 92 libpython2.4.so.1.0`PyEval_EvalFrame+0x35d 93 [ ./func_slow.py:10 (func_b) ] 94 libpython2.4.so.1.0`fast_function+0xa8 95 libpython2.4.so.1.0`call_function+0xda 96 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 97 [ ./func_slow.py:24 (func_a) ] 98 libpython2.4.so.1.0`fast_function+0xa8 99 libpython2.4.so.1.0`call_function+0xda 100 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 101 [ ./func_slow.py:26 (?) ] 102 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 103 libpython2.4.so.1.0`PyEval_EvalCode+0x22 104 libpython2.4.so.1.0`run_node+0x35 105 13 106 107 libpython2.4.so.1.0`PyEval_EvalFrame+0x1f5 108 [ ./func_slow.py:10 (func_b) ] 109 libpython2.4.so.1.0`fast_function+0xa8 110 libpython2.4.so.1.0`call_function+0xda 111 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 112 [ ./func_slow.py:24 (func_a) ] 113 libpython2.4.so.1.0`fast_function+0xa8 114 libpython2.4.so.1.0`call_function+0xda 115 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 116 [ ./func_slow.py:26 (?) ] 117 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 118 libpython2.4.so.1.0`PyEval_EvalCode+0x22 119 libpython2.4.so.1.0`run_node+0x35 120 14 121 122 libpython2.4.so.1.0`PyEval_EvalFrame+0x149 123 [ ./func_slow.py:3 (func_c) ] 124 libpython2.4.so.1.0`fast_function+0xa8 125 libpython2.4.so.1.0`call_function+0xda 126 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 127 [ ./func_slow.py:16 (func_b) ] 128 libpython2.4.so.1.0`fast_function+0xa8 129 libpython2.4.so.1.0`call_function+0xda 130 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 131 [ ./func_slow.py:24 (func_a) ] 132 libpython2.4.so.1.0`fast_function+0xa8 133 libpython2.4.so.1.0`call_function+0xda 134 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 135 [ ./func_slow.py:26 (?) ] 136 14 137 138 libpython2.4.so.1.0`PyEval_EvalFrame+0x5aa 139 [ ./func_slow.py:3 (func_c) ] 140 libpython2.4.so.1.0`fast_function+0xa8 141 libpython2.4.so.1.0`call_function+0xda 142 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 143 [ ./func_slow.py:16 (func_b) ] 144 libpython2.4.so.1.0`fast_function+0xa8 145 libpython2.4.so.1.0`call_function+0xda 146 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 147 [ ./func_slow.py:24 (func_a) ] 148 libpython2.4.so.1.0`fast_function+0xa8 149 libpython2.4.so.1.0`call_function+0xda 150 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 151 [ ./func_slow.py:26 (?) ] 152 14 153 154 libpython2.4.so.1.0`PyEval_EvalFrame+0x58f 155 [ ./func_slow.py:3 (func_c) ] 156 libpython2.4.so.1.0`fast_function+0xa8 157 libpython2.4.so.1.0`call_function+0xda 158 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 159 [ ./func_slow.py:16 (func_b) ] 160 libpython2.4.so.1.0`fast_function+0xa8 161 libpython2.4.so.1.0`call_function+0xda 162 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 163 [ ./func_slow.py:24 (func_a) ] 164 libpython2.4.so.1.0`fast_function+0xa8 165 libpython2.4.so.1.0`call_function+0xda 166 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 167 [ ./func_slow.py:26 (?) ] 168 15 169 170 libpython2.4.so.1.0`PyEval_EvalFrame+0x58f 171 [ ./func_slow.py:10 (func_b) ] 172 libpython2.4.so.1.0`fast_function+0xa8 173 libpython2.4.so.1.0`call_function+0xda 174 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 175 [ ./func_slow.py:24 (func_a) ] 176 libpython2.4.so.1.0`fast_function+0xa8 177 libpython2.4.so.1.0`call_function+0xda 178 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 179 [ ./func_slow.py:26 (?) ] 180 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 181 libpython2.4.so.1.0`PyEval_EvalCode+0x22 182 libpython2.4.so.1.0`run_node+0x35 183 15 184 185 libpython2.4.so.1.0`PyEval_EvalFrame+0x254 186 [ ./func_slow.py:3 (func_c) ] 187 libpython2.4.so.1.0`fast_function+0xa8 188 libpython2.4.so.1.0`call_function+0xda 189 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 190 [ ./func_slow.py:16 (func_b) ] 191 libpython2.4.so.1.0`fast_function+0xa8 192 libpython2.4.so.1.0`call_function+0xda 193 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 194 [ ./func_slow.py:24 (func_a) ] 195 libpython2.4.so.1.0`fast_function+0xa8 196 libpython2.4.so.1.0`call_function+0xda 197 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 198 [ ./func_slow.py:26 (?) ] 199 17 200 201 libpython2.4.so.1.0`PyEval_EvalFrame+0x286 202 [ ./func_slow.py:3 (func_c) ] 203 libpython2.4.so.1.0`fast_function+0xa8 204 libpython2.4.so.1.0`call_function+0xda 205 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 206 [ ./func_slow.py:16 (func_b) ] 207 libpython2.4.so.1.0`fast_function+0xa8 208 libpython2.4.so.1.0`call_function+0xda 209 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 210 [ ./func_slow.py:24 (func_a) ] 211 libpython2.4.so.1.0`fast_function+0xa8 212 libpython2.4.so.1.0`call_function+0xda 213 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 214 [ ./func_slow.py:26 (?) ] 215 17 216 217 libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf 218 [ ./func_slow.py:3 (func_c) ] 219 libpython2.4.so.1.0`fast_function+0xa8 220 libpython2.4.so.1.0`call_function+0xda 221 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 222 [ ./func_slow.py:16 (func_b) ] 223 libpython2.4.so.1.0`fast_function+0xa8 224 libpython2.4.so.1.0`call_function+0xda 225 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 226 [ ./func_slow.py:24 (func_a) ] 227 libpython2.4.so.1.0`fast_function+0xa8 228 libpython2.4.so.1.0`call_function+0xda 229 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 230 [ ./func_slow.py:26 (?) ] 231 17 232 233 libpython2.4.so.1.0`PyEval_EvalFrame+0x35d 234 [ ./func_slow.py:3 (func_c) ] 235 libpython2.4.so.1.0`fast_function+0xa8 236 libpython2.4.so.1.0`call_function+0xda 237 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 238 [ ./func_slow.py:16 (func_b) ] 239 libpython2.4.so.1.0`fast_function+0xa8 240 libpython2.4.so.1.0`call_function+0xda 241 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 242 [ ./func_slow.py:24 (func_a) ] 243 libpython2.4.so.1.0`fast_function+0xa8 244 libpython2.4.so.1.0`call_function+0xda 245 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 246 [ ./func_slow.py:26 (?) ] 247 18 248 249 libc.so.1`ioctl+0x7 250 libpython2.4.so.1.0`_init+0x25 251 ld.so.1`call_init+0xff 252 ld.so.1`setup+0xf93 253 ld.so.1`_setup+0x310 254 ld.so.1`_rt_boot+0x56 255 0x8047e5c 256 19 257 258 libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4 259 [ ./func_slow.py:18 (func_a) ] 260 libpython2.4.so.1.0`fast_function+0xa8 261 libpython2.4.so.1.0`call_function+0xda 262 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 263 [ ./func_slow.py:26 (?) ] 264 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 265 libpython2.4.so.1.0`PyEval_EvalCode+0x22 266 libpython2.4.so.1.0`run_node+0x35 267 libpython2.4.so.1.0`run_err_node+0x1f 268 libpython2.4.so.1.0`PyRun_FileExFlags+0x5e 269 libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f 270 20 271 272 libpython2.4.so.1.0`PyEval_EvalFrame+0x5ba 273 [ ./func_slow.py:3 (func_c) ] 274 libpython2.4.so.1.0`fast_function+0xa8 275 libpython2.4.so.1.0`call_function+0xda 276 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 277 [ ./func_slow.py:16 (func_b) ] 278 libpython2.4.so.1.0`fast_function+0xa8 279 libpython2.4.so.1.0`call_function+0xda 280 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 281 [ ./func_slow.py:24 (func_a) ] 282 libpython2.4.so.1.0`fast_function+0xa8 283 libpython2.4.so.1.0`call_function+0xda 284 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 285 [ ./func_slow.py:26 (?) ] 286 20 287 288 libpython2.4.so.1.0`PyEval_EvalFrame+0x583 289 [ ./func_slow.py:10 (func_b) ] 290 libpython2.4.so.1.0`fast_function+0xa8 291 libpython2.4.so.1.0`call_function+0xda 292 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 293 [ ./func_slow.py:24 (func_a) ] 294 libpython2.4.so.1.0`fast_function+0xa8 295 libpython2.4.so.1.0`call_function+0xda 296 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 297 [ ./func_slow.py:26 (?) ] 298 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 299 libpython2.4.so.1.0`PyEval_EvalCode+0x22 300 libpython2.4.so.1.0`run_node+0x35 301 22 302 303 libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4 304 [ ./func_slow.py:10 (func_b) ] 305 libpython2.4.so.1.0`fast_function+0xa8 306 libpython2.4.so.1.0`call_function+0xda 307 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 308 [ ./func_slow.py:24 (func_a) ] 309 libpython2.4.so.1.0`fast_function+0xa8 310 libpython2.4.so.1.0`call_function+0xda 311 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 312 [ ./func_slow.py:26 (?) ] 313 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 314 libpython2.4.so.1.0`PyEval_EvalCode+0x22 315 libpython2.4.so.1.0`run_node+0x35 316 22 317 318 libpython2.4.so.1.0`PyEval_EvalFrame+0x278a 319 [ ./func_slow.py:3 (func_c) ] 320 libpython2.4.so.1.0`fast_function+0xa8 321 libpython2.4.so.1.0`call_function+0xda 322 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 323 [ ./func_slow.py:16 (func_b) ] 324 libpython2.4.so.1.0`fast_function+0xa8 325 libpython2.4.so.1.0`call_function+0xda 326 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 327 [ ./func_slow.py:24 (func_a) ] 328 libpython2.4.so.1.0`fast_function+0xa8 329 libpython2.4.so.1.0`call_function+0xda 330 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 331 [ ./func_slow.py:26 (?) ] 332 24 333 334 libpython2.4.so.1.0`PyEval_EvalFrame+0x205 335 [ ./func_slow.py:10 (func_b) ] 336 libpython2.4.so.1.0`fast_function+0xa8 337 libpython2.4.so.1.0`call_function+0xda 338 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 339 [ ./func_slow.py:24 (func_a) ] 340 libpython2.4.so.1.0`fast_function+0xa8 341 libpython2.4.so.1.0`call_function+0xda 342 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 343 [ ./func_slow.py:26 (?) ] 344 libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732 345 libpython2.4.so.1.0`PyEval_EvalCode+0x22 346 libpython2.4.so.1.0`run_node+0x35 347 25 348 349 libpython2.4.so.1.0`PyEval_EvalFrame+0x583 350 [ ./func_slow.py:3 (func_c) ] 351 libpython2.4.so.1.0`fast_function+0xa8 352 libpython2.4.so.1.0`call_function+0xda 353 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 354 [ ./func_slow.py:16 (func_b) ] 355 libpython2.4.so.1.0`fast_function+0xa8 356 libpython2.4.so.1.0`call_function+0xda 357 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 358 [ ./func_slow.py:24 (func_a) ] 359 libpython2.4.so.1.0`fast_function+0xa8 360 libpython2.4.so.1.0`call_function+0xda 361 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 362 [ ./func_slow.py:26 (?) ] 363 35 364 365 libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4 366 [ ./func_slow.py:3 (func_c) ] 367 libpython2.4.so.1.0`fast_function+0xa8 368 libpython2.4.so.1.0`call_function+0xda 369 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 370 [ ./func_slow.py:16 (func_b) ] 371 libpython2.4.so.1.0`fast_function+0xa8 372 libpython2.4.so.1.0`call_function+0xda 373 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 374 [ ./func_slow.py:24 (func_a) ] 375 libpython2.4.so.1.0`fast_function+0xa8 376 libpython2.4.so.1.0`call_function+0xda 377 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 378 [ ./func_slow.py:26 (?) ] 379 47 380 381 libpython2.4.so.1.0`PyEval_EvalFrame+0x205 382 [ ./func_slow.py:3 (func_c) ] 383 libpython2.4.so.1.0`fast_function+0xa8 384 libpython2.4.so.1.0`call_function+0xda 385 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 386 [ ./func_slow.py:16 (func_b) ] 387 libpython2.4.so.1.0`fast_function+0xa8 388 libpython2.4.so.1.0`call_function+0xda 389 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 390 [ ./func_slow.py:24 (func_a) ] 391 libpython2.4.so.1.0`fast_function+0xa8 392 libpython2.4.so.1.0`call_function+0xda 393 libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf 394 [ ./func_slow.py:26 (?) ] 395 50 396 397 The lines in square brackets are the native Python frames, the rest 398 are the Python engine. 399 400