2014-11-13 9 views
20

, ben perf record -g -p $pid kullanılan, ancak sonuç sadece tüm yaklaşık PyEval_EvalFrameEx oldu. Gerçek adı "test" e nasıl ulaşabilirim, yoksa perfomansı kullanarak yapamaz mıyım?Python çağrı yığınını linux perf ile alabilir miyim?</p> <pre><code>def test(): print "test" </code></pre> <p>Örneğin

+0

Neden özellikle "perf" kullanımını gerektirir? – NPE

+1

Benim python program bazı C++ uzantıları arayacak, ben C++ uzantıları için çağrı yığını kontrol etmek için perf kullanın, ayrıca python almak istiyorum. – wuwl

cevap

2

Sen perf ile bunu yapmak mümkün olmayacaktır, özellikle Linux süreç modelini arayüz şekilde üretilmiş olduğunu, bu deşifre Yığın çerçeveleri, vb. PyEval_EvalFrameEx işlevini çalıştırdığınızı söyleyerek söylediği şeyi yapıyor. Python'un çerçeve bilgisini gerçekten deşifre edebilmek için python'a özgü bilgilerle genişletilmesi gerekecek. Ne yazık ki, Python ve C/C++ modüllerini kolayca ayıklamak için gerçekten iyi bir yol bulamadım. Genellikle diğeri için pdb ve diğeri için gdb.

İlgili konular