1 The following are examples of py_flow.d.
3 This is a simple script to trace the flow of Python functions.
4 Here it traces the example program, Code/Python/func_abc.py
7 C TIME(us) FILE -- FUNC
8 0 3064371810154 site.py -> ?
9 0 3064371830069 os.py -> ?
10 0 3064371840076 posixpath.py -> ?
11 0 3064371840298 stat.py -> ?
12 0 3064371840319 stat.py <- ?
13 0 3064371840345 posixpath.py <- ?
14 0 3064371840364 os.py -> _get_exports_list
15 0 3064371840510 os.py <- _get_exports_list
16 0 3064371849994 UserDict.py -> ?
17 0 3064371850011 UserDict.py -> UserDict
18 0 3064371850051 UserDict.py <- UserDict
19 0 3064371850067 UserDict.py -> IterableUserDict
20 0 3064371850075 UserDict.py <- IterableUserDict
21 0 3064371850088 UserDict.py -> DictMixin
22 0 3064371850291 UserDict.py <- DictMixin
23 0 3064371850300 UserDict.py <- ?
24 0 3064371850320 os.py -> _Environ
25 0 3064371850330 os.py <- _Environ
26 0 3064371850342 os.py -> __init__
27 0 3064371850353 UserDict.py -> __init__
28 0 3064371850363 UserDict.py <- __init__
29 0 3064371850372 os.py <- __init__
30 0 3064371850381 os.py -> _exists
31 0 3064371851137 <string> -> ?
32 0 3064371851146 <string> <- ?
33 0 3064371851155 os.py <- _exists
34 0 3064371851162 os.py -> _exists
35 0 3064371851186 <string> -> ?
36 0 3064371851195 <string> <- ?
37 0 3064371851213 os.py <- _exists
38 0 3064371851220 os.py -> _exists
39 0 3064371851242 <string> -> ?
40 0 3064371851249 <string> <- ?
41 0 3064371851257 os.py <- _exists
42 0 3064371851266 os.py -> _exists
43 0 3064371851286 <string> -> ?
44 0 3064371851293 <string> <- ?
45 0 3064371851300 os.py <- _exists
46 0 3064371851310 os.py -> _exists
47 0 3064371851330 <string> -> ?
48 0 3064371851337 <string> <- ?
49 0 3064371851344 os.py <- _exists
50 0 3064371851354 os.py -> _exists
51 0 3064371851374 <string> -> ?
52 0 3064371851381 <string> <- ?
53 0 3064371851388 os.py <- _exists
54 0 3064371851395 os.py -> _exists
55 0 3064371851415 <string> -> ?
56 0 3064371851423 <string> <- ?
57 0 3064371851436 os.py <- _exists
58 0 3064371851445 os.py -> _exists
59 0 3064371851465 <string> -> ?
60 0 3064371851473 <string> <- ?
61 0 3064371851485 os.py <- _exists
62 0 3064371851493 os.py -> _exists
63 0 3064371851514 <string> -> ?
64 0 3064371851522 <string> <- ?
65 0 3064371851534 os.py <- _exists
66 0 3064371851785 copy_reg.py -> ?
67 0 3064371851996 types.py -> ?
68 0 3064371852063 types.py -> _C
69 0 3064371852073 types.py <- _C
70 0 3064371852108 types.py <- ?
71 0 3064371852129 copy_reg.py -> pickle
72 0 3064371852139 copy_reg.py -> constructor
73 0 3064371852147 copy_reg.py <- constructor
74 0 3064371852155 copy_reg.py <- pickle
75 0 3064371852166 copy_reg.py <- ?
76 0 3064371852179 copy_reg.py -> pickle
77 0 3064371852188 copy_reg.py -> constructor
78 0 3064371852196 copy_reg.py <- constructor
79 0 3064371852204 copy_reg.py <- pickle
80 0 3064371852212 copy_reg.py -> pickle
81 0 3064371852221 copy_reg.py -> constructor
82 0 3064371852229 copy_reg.py <- constructor
83 0 3064371852236 copy_reg.py <- pickle
84 0 3064371852244 os.py -> _exists
85 0 3064371852269 <string> -> ?
86 0 3064371852277 <string> <- ?
87 0 3064371852289 os.py <- _exists
88 0 3064371852297 os.py <- ?
89 0 3064371852330 site.py -> _Printer
90 0 3064371852340 site.py <- _Printer
91 0 3064371852376 site.py -> _Helper
92 0 3064371852384 site.py <- _Helper
93 0 3064371852416 site.py -> main
94 0 3064371852423 site.py -> abs__file__
95 0 3064371852434 posixpath.py -> abspath
96 0 3064371852442 posixpath.py -> isabs
97 0 3064371852452 posixpath.py <- isabs
98 0 3064371852460 posixpath.py -> normpath
99 0 3064371852482 posixpath.py <- normpath
100 0 3064371852490 posixpath.py <- abspath
101 0 3064371852504 posixpath.py -> abspath
102 0 3064371852511 posixpath.py -> isabs
103 0 3064371852520 posixpath.py <- isabs
104 0 3064371852527 posixpath.py -> normpath
105 0 3064371852543 posixpath.py <- normpath
106 0 3064371852552 posixpath.py <- abspath
107 0 3064371852560 posixpath.py -> abspath
108 0 3064371852567 posixpath.py -> isabs
109 0 3064371852576 posixpath.py <- isabs
110 0 3064371852583 posixpath.py -> normpath
111 0 3064371852598 posixpath.py <- normpath
112 0 3064371852607 posixpath.py <- abspath
113 0 3064371852615 posixpath.py -> abspath
114 0 3064371852622 posixpath.py -> isabs
115 0 3064371852631 posixpath.py <- isabs
116 0 3064371852638 posixpath.py -> normpath
117 0 3064371852653 posixpath.py <- normpath
118 0 3064371852661 posixpath.py <- abspath
119 0 3064371852674 posixpath.py -> abspath
120 0 3064371852682 posixpath.py -> isabs
121 0 3064371852690 posixpath.py <- isabs
122 0 3064371852697 posixpath.py -> normpath
123 0 3064371852713 posixpath.py <- normpath
124 0 3064371852721 posixpath.py <- abspath
125 0 3064371852741 posixpath.py -> abspath
126 0 3064371852748 posixpath.py -> isabs
127 0 3064371852757 posixpath.py <- isabs
128 0 3064371852764 posixpath.py -> normpath
129 0 3064371852779 posixpath.py <- normpath
130 0 3064371852787 posixpath.py <- abspath
131 0 3064371852804 posixpath.py -> abspath
132 0 3064371852811 posixpath.py -> isabs
133 0 3064371852819 posixpath.py <- isabs
134 0 3064371852826 posixpath.py -> normpath
135 0 3064371852842 posixpath.py <- normpath
136 0 3064371852850 posixpath.py <- abspath
137 0 3064371852858 posixpath.py -> abspath
138 0 3064371852865 posixpath.py -> isabs
139 0 3064371852874 posixpath.py <- isabs
140 0 3064371852881 posixpath.py -> normpath
141 0 3064371852896 posixpath.py <- normpath
142 0 3064371852904 posixpath.py <- abspath
143 0 3064371852915 site.py <- abs__file__
144 0 3064371852922 site.py -> removeduppaths
145 0 3064371852931 site.py -> makepath
146 0 3064371852940 posixpath.py -> join
147 0 3064371852948 posixpath.py <- join
148 0 3064371852955 posixpath.py -> abspath
149 0 3064371852963 posixpath.py -> isabs
150 0 3064371852972 posixpath.py <- isabs
151 0 3064371852980 posixpath.py -> normpath
152 0 3064371852995 posixpath.py <- normpath
153 0 3064371853002 posixpath.py <- abspath
154 0 3064371853010 posixpath.py -> normcase
155 0 3064371853018 posixpath.py <- normcase
156 0 3064371853025 site.py <- makepath
157 0 3064371853065 site.py -> makepath
158 0 3064371853073 posixpath.py -> join
159 0 3064371853081 posixpath.py <- join
160 0 3064371853088 posixpath.py -> abspath
161 0 3064371853096 posixpath.py -> isabs
162 0 3064371853104 posixpath.py <- isabs
163 0 3064371853111 posixpath.py -> normpath
164 0 3064371853126 posixpath.py <- normpath
165 0 3064371853134 posixpath.py <- abspath
166 0 3064371853142 posixpath.py -> normcase
167 0 3064371853150 posixpath.py <- normcase
168 0 3064371853157 site.py <- makepath
169 0 3064371853165 site.py -> makepath
170 0 3064371853173 posixpath.py -> join
171 0 3064371853181 posixpath.py <- join
172 0 3064371853188 posixpath.py -> abspath
173 0 3064371853195 posixpath.py -> isabs
174 0 3064371853203 posixpath.py <- isabs
175 0 3064371853210 posixpath.py -> normpath
176 0 3064371853226 posixpath.py <- normpath
177 0 3064371853234 posixpath.py <- abspath
178 0 3064371853241 posixpath.py -> normcase
179 0 3064371853249 posixpath.py <- normcase
180 0 3064371853256 site.py <- makepath
181 0 3064371853265 site.py -> makepath
182 0 3064371853272 posixpath.py -> join
183 0 3064371853280 posixpath.py <- join
184 0 3064371853287 posixpath.py -> abspath
185 0 3064371853294 posixpath.py -> isabs
186 0 3064371853303 posixpath.py <- isabs
187 0 3064371853310 posixpath.py -> normpath
188 0 3064371853325 posixpath.py <- normpath
189 0 3064371853333 posixpath.py <- abspath
190 0 3064371853341 posixpath.py -> normcase
191 0 3064371853348 posixpath.py <- normcase
192 0 3064371853356 site.py <- makepath
193 0 3064371853364 site.py -> makepath
194 0 3064371853372 posixpath.py -> join
195 0 3064371853380 posixpath.py <- join
196 0 3064371853387 posixpath.py -> abspath
197 0 3064371853394 posixpath.py -> isabs
198 0 3064371853402 posixpath.py <- isabs
199 0 3064371853409 posixpath.py -> normpath
200 0 3064371853425 posixpath.py <- normpath
201 0 3064371853433 posixpath.py <- abspath
202 0 3064371853440 posixpath.py -> normcase
203 0 3064371853448 posixpath.py <- normcase
204 0 3064371853455 site.py <- makepath
205 0 3064371853466 site.py <- removeduppaths
206 0 3064371853476 posixpath.py -> basename
207 0 3064371853484 posixpath.py -> split
208 0 3064371853498 posixpath.py <- split
209 0 3064371853505 posixpath.py <- basename
210 0 3064371853513 site.py -> addsitepackages
211 0 3064371853524 posixpath.py -> join
212 0 3064371853538 posixpath.py <- join
213 0 3064371853546 posixpath.py -> join
214 0 3064371853557 posixpath.py <- join
215 0 3064371853566 posixpath.py -> isdir
216 0 3064371853597 stat.py -> S_ISDIR
217 0 3064371853604 stat.py -> S_IFMT
218 0 3064371853612 stat.py <- S_IFMT
219 0 3064371853620 stat.py <- S_ISDIR
220 0 3064371853627 posixpath.py <- isdir
221 0 3064371853636 site.py -> addsitedir
222 0 3064371853643 site.py -> makepath
223 0 3064371853651 posixpath.py -> join
224 0 3064371853659 posixpath.py <- join
225 0 3064371853666 posixpath.py -> abspath
226 0 3064371853674 posixpath.py -> isabs
227 0 3064371853683 posixpath.py <- isabs
228 0 3064371853691 posixpath.py -> normpath
229 0 3064371853707 posixpath.py <- normpath
230 0 3064371853715 posixpath.py <- abspath
231 0 3064371853723 posixpath.py -> normcase
232 0 3064371853730 posixpath.py <- normcase
233 0 3064371853738 site.py <- makepath
234 0 3064371853938 site.py -> addpackage
235 0 3064371853948 posixpath.py -> join
236 0 3064371853958 posixpath.py <- join
237 0 3064371854087 <string> -> ?
238 0 3064371854098 site.py -> addsitedir
239 0 3064371854106 site.py -> _init_pathinfo
240 0 3064371854115 posixpath.py -> isdir
241 0 3064371854195 posixpath.py <- isdir
242 0 3064371854204 posixpath.py -> isdir
243 0 3064371854224 stat.py -> S_ISDIR
244 0 3064371854232 stat.py -> S_IFMT
245 0 3064371854240 stat.py <- S_IFMT
246 0 3064371854247 stat.py <- S_ISDIR
247 0 3064371854254 posixpath.py <- isdir
248 0 3064371854262 site.py -> makepath
249 0 3064371854271 posixpath.py -> join
250 0 3064371854279 posixpath.py <- join
251 0 3064371854286 posixpath.py -> abspath
252 0 3064371854293 posixpath.py -> isabs
253 0 3064371854302 posixpath.py <- isabs
254 0 3064371854309 posixpath.py -> normpath
255 0 3064371854325 posixpath.py <- normpath
256 0 3064371854333 posixpath.py <- abspath
257 0 3064371854341 posixpath.py -> normcase
258 0 3064371854349 posixpath.py <- normcase
259 0 3064371854356 site.py <- makepath
260 0 3064371854364 posixpath.py -> isdir
261 0 3064371854386 stat.py -> S_ISDIR
262 0 3064371854393 stat.py -> S_IFMT
263 0 3064371854400 stat.py <- S_IFMT
264 0 3064371854408 stat.py <- S_ISDIR
265 0 3064371854415 posixpath.py <- isdir
266 0 3064371854423 site.py -> makepath
267 0 3064371854431 posixpath.py -> join
268 0 3064371854438 posixpath.py <- join
269 0 3064371854446 posixpath.py -> abspath
270 0 3064371854453 posixpath.py -> isabs
271 0 3064371854461 posixpath.py <- isabs
272 0 3064371854469 posixpath.py -> normpath
273 0 3064371854485 posixpath.py <- normpath
274 0 3064371854493 posixpath.py <- abspath
275 0 3064371854500 posixpath.py -> normcase
276 0 3064371854508 posixpath.py <- normcase
277 0 3064371854516 site.py <- makepath
278 0 3064371854524 posixpath.py -> isdir
279 0 3064371854556 stat.py -> S_ISDIR
280 0 3064371854563 stat.py -> S_IFMT
281 0 3064371854571 stat.py <- S_IFMT
282 0 3064371854578 stat.py <- S_ISDIR
283 0 3064371854585 posixpath.py <- isdir
284 0 3064371854593 site.py -> makepath
285 0 3064371854601 posixpath.py -> join
286 0 3064371854609 posixpath.py <- join
287 0 3064371854616 posixpath.py -> abspath
288 0 3064371854624 posixpath.py -> isabs
289 0 3064371854632 posixpath.py <- isabs
290 0 3064371854639 posixpath.py -> normpath
291 0 3064371854655 posixpath.py <- normpath
292 0 3064371854663 posixpath.py <- abspath
293 0 3064371854671 posixpath.py -> normcase
294 0 3064371854679 posixpath.py <- normcase
295 0 3064371854686 site.py <- makepath
296 0 3064371854694 posixpath.py -> isdir
297 0 3064371854715 stat.py -> S_ISDIR
298 0 3064371854722 stat.py -> S_IFMT
299 0 3064371854730 stat.py <- S_IFMT
300 0 3064371854737 stat.py <- S_ISDIR
301 0 3064371854744 posixpath.py <- isdir
302 0 3064371854752 site.py -> makepath
303 0 3064371854759 posixpath.py -> join
304 0 3064371854767 posixpath.py <- join
305 0 3064371854774 posixpath.py -> abspath
306 0 3064371854782 posixpath.py -> isabs
307 0 3064371854790 posixpath.py <- isabs
308 0 3064371854797 posixpath.py -> normpath
309 0 3064371854813 posixpath.py <- normpath
310 0 3064371854821 posixpath.py <- abspath
311 0 3064371854829 posixpath.py -> normcase
312 0 3064371854837 posixpath.py <- normcase
313 0 3064371854844 site.py <- makepath
314 0 3064371854852 posixpath.py -> isdir
315 0 3064371854872 stat.py -> S_ISDIR
316 0 3064371854879 stat.py -> S_IFMT
317 0 3064371854887 stat.py <- S_IFMT
318 0 3064371854894 stat.py <- S_ISDIR
319 0 3064371854901 posixpath.py <- isdir
320 0 3064371854909 site.py -> makepath
321 0 3064371854917 posixpath.py -> join
322 0 3064371854925 posixpath.py <- join
323 0 3064371854932 posixpath.py -> abspath
324 0 3064371854939 posixpath.py -> isabs
325 0 3064371854947 posixpath.py <- isabs
326 0 3064371854954 posixpath.py -> normpath
327 0 3064371854970 posixpath.py <- normpath
328 0 3064371854978 posixpath.py <- abspath
329 0 3064371854986 posixpath.py -> normcase
330 0 3064371854994 posixpath.py <- normcase
331 0 3064371855001 site.py <- makepath
332 0 3064371855009 site.py <- _init_pathinfo
333 0 3064371855016 site.py -> makepath
334 0 3064371855024 posixpath.py -> join
335 0 3064371855032 posixpath.py <- join
336 0 3064371855039 posixpath.py -> abspath
337 0 3064371855047 posixpath.py -> isabs
338 0 3064371855055 posixpath.py <- isabs
339 0 3064371855063 posixpath.py -> normpath
340 0 3064371855078 posixpath.py <- normpath
341 0 3064371855086 posixpath.py <- abspath
342 0 3064371855094 posixpath.py -> normcase
343 0 3064371855101 posixpath.py <- normcase
344 0 3064371855144 site.py <- makepath
345 0 3064371855318 site.py -> addpackage
346 0 3064371855327 posixpath.py -> join
347 0 3064371855337 posixpath.py <- join
348 0 3064371855411 site.py -> makepath
349 0 3064371855420 posixpath.py -> join
350 0 3064371855430 posixpath.py <- join
351 0 3064371855437 posixpath.py -> abspath
352 0 3064371855445 posixpath.py -> isabs
353 0 3064371855453 posixpath.py <- isabs
354 0 3064371855460 posixpath.py -> normpath
355 0 3064371855477 posixpath.py <- normpath
356 0 3064371855485 posixpath.py <- abspath
357 0 3064371855493 posixpath.py -> normcase
358 0 3064371855501 posixpath.py <- normcase
359 0 3064371855509 site.py <- makepath
360 0 3064371855517 posixpath.py -> exists
361 0 3064371855542 posixpath.py <- exists
362 0 3064371855591 site.py <- addpackage
363 0 3064371855611 site.py -> addpackage
364 0 3064371855618 posixpath.py -> join
365 0 3064371855628 posixpath.py <- join
366 0 3064371855683 site.py -> makepath
367 0 3064371855692 posixpath.py -> join
368 0 3064371855739 posixpath.py <- join
369 0 3064371855747 posixpath.py -> abspath
370 0 3064371855754 posixpath.py -> isabs
371 0 3064371855763 posixpath.py <- isabs
372 0 3064371855770 posixpath.py -> normpath
373 0 3064371855788 posixpath.py <- normpath
374 0 3064371855796 posixpath.py <- abspath
375 0 3064371855803 posixpath.py -> normcase
376 0 3064371855811 posixpath.py <- normcase
377 0 3064371855818 site.py <- makepath
378 0 3064371855826 posixpath.py -> exists
379 0 3064371855851 posixpath.py <- exists
380 0 3064371855880 site.py <- addpackage
381 0 3064371855892 site.py <- addsitedir
382 0 3064371855900 <string> <- ?
383 0 3064371855915 site.py <- addpackage
384 0 3064371855923 site.py <- addsitedir
385 0 3064371855932 posixpath.py -> isdir
386 0 3064371855965 posixpath.py <- isdir
387 0 3064371855973 site.py <- addsitepackages
388 0 3064371855982 site.py -> setquit
389 0 3064371855993 site.py <- setquit
390 0 3064371856000 site.py -> setcopyright
391 0 3064371856009 site.py -> __init__
392 0 3064371856019 site.py <- __init__
393 0 3064371856028 site.py -> __init__
394 0 3064371856037 site.py <- __init__
395 0 3064371856045 posixpath.py -> dirname
396 0 3064371856052 posixpath.py -> split
397 0 3064371856065 posixpath.py <- split
398 0 3064371856073 posixpath.py <- dirname
399 0 3064371856085 posixpath.py -> join
400 0 3064371856096 posixpath.py <- join
401 0 3064371856104 site.py -> __init__
402 0 3064371856113 site.py <- __init__
403 0 3064371856121 site.py <- setcopyright
404 0 3064371856128 site.py -> sethelper
405 0 3064371856136 site.py <- sethelper
406 0 3064371856143 site.py -> aliasmbcs
407 0 3064371856151 site.py <- aliasmbcs
408 0 3064371856158 site.py -> setencoding
409 0 3064371856166 site.py <- setencoding
410 0 3064371856173 site.py -> execsitecustomize
411 0 3064371871773 site.py <- execsitecustomize
412 0 3064371871794 site.py <- main
413 0 3064371871805 site.py <- ?
414 0 3064371872141 warnings.py -> ?
415 0 306437187232e linecache.py -> ?
416 0 3064371872336 linecache.py <- ?
417 0 3064371872352 warnings.py -> _OptionError
418 0 3064371872361 warnings.py <- _OptionError
419 0 3064371872378 warnings.py -> _processoptions
420 0 3064371872387 warnings.py <- _processoptions
421 0 3064371872397 warnings.py -> simplefilter
422 0 3064371872410 warnings.py <- simplefilter
423 0 3064371872418 warnings.py -> simplefilter
424 0 3064371872428 warnings.py <- simplefilter
425 0 3064371872436 warnings.py <- ?
426 0 3064371886557 __init__.py -> ?
427 0 3064371891761 codecs.py -> ?
428 0 3064371891836 codecs.py -> Codec
429 0 3064371891848 codecs.py <- Codec
430 0 3064371891864 codecs.py -> StreamWriter
431 0 3064371891874 codecs.py <- StreamWriter
432 0 3064371891885 codecs.py -> StreamReader
433 0 3064371891897 codecs.py <- StreamReader
434 0 3064371891907 codecs.py -> StreamReaderWriter
435 0 3064371891918 codecs.py <- StreamReaderWriter
436 0 3064371891926 codecs.py -> StreamRecoder
437 0 3064371891938 codecs.py <- StreamRecoder
438 0 3064371891953 codecs.py <- ?
439 0 3064371902521 aliases.py -> ?
440 0 3064371902580 aliases.py <- ?
441 0 3064371902605 __init__.py -> CodecRegistryError
442 0 3064371902614 __init__.py <- CodecRegistryError
443 0 3064371902636 __init__.py <- ?
444 0 3064371902655 __init__.py -> search_function
445 0 3064371902666 __init__.py -> normalize_encoding
446 0 3064371902682 __init__.py <- normalize_encoding
447 0 3064371902888 ascii.py -> ?
448 0 3064371902900 ascii.py -> Codec
449 0 3064371902909 ascii.py <- Codec
450 0 3064371902922 ascii.py -> StreamWriter
451 0 3064371902930 ascii.py <- StreamWriter
452 0 3064371902941 ascii.py -> StreamReader
453 0 3064371902949 ascii.py <- StreamReader
454 0 3064371902972 ascii.py -> StreamConverter
455 0 3064371902981 ascii.py <- StreamConverter
456 0 3064371902993 ascii.py <- ?
457 0 3064371903009 ascii.py -> getregentry
458 0 3064371903018 ascii.py <- getregentry
459 0 3064371903044 __init__.py <- search_function
460 0 3064371903414 func_abc.py -> ?
461 0 3064371933251 func_abc.py -> func_a
462 0 3064372940696 func_abc.py -> func_b
463 0 3064373950608 func_abc.py -> func_c
464 0 3064374960497 func_abc.py <- func_c
465 0 3064374960512 func_abc.py <- func_b
466 0 3064374960520 func_abc.py <- func_a
467 0 3064374960528 func_abc.py <- ?
470 Here we can see that Python has done extensive pre-processing before it runs
471 the Code/Python/func_abc.py program itself.
473 This shows which function is calling which - the output above ends by
474 showing that func_a called func_b which in turn called func_c etc.
476 The TIME(us) column shows time from boot in microseconds.
478 The FILE column shows the file that was being executed.
480 If the output looks strange, check the CPU "C" column - if it changes,
481 then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
482 details and suggested workarounds.
484 See Notes/ALLflow_notes.txt for important notes about reading flow outputs.