问题描述
因此,我试图诊断使用anaconda安装的dask python脚本与我们的glibc / libc补丁之间的交互。
通常,我使用ltrace初步诊断python接口问题,并且它为我提供了大量有关python(3.6)如何调用库的信息。
但是,当我运行anaconda activate
来启用dask(在此脚本中需要)时,我只得到1行关于python的信息:__libc_start_main
,从那时起,我仅获得有关更深层调用的信息,而我没有不需要知道。一切都很奇怪。
libc(显然仍在被调用(或者更确切地说是我的LD_PRELOAD替代品),因为我可以看到引擎正在执行的调用,但是我不想知道我的代码正在调用什么,我想知道何时以及如何调用我的代码代码被调用。
请注意,即使脚本未使用dask,也是如此,否则我将启动交互式提示。在交互式提示下,我只得到一行,而不是通常的输出页面。
有人看到过这样的东西吗?从ltrace手册页中是否可以找到一个简单的解决方法?
所以,多玩一些游戏,我会得到一些输出
../ltrace -x '*-setlocale-mem*-malloc-calloc-realloc-free-__libc_malloc-cfree-__libc_free-wcs*-_-__errno_*-__libc_realloc-pthread_*' -e '?*' -n 3 -w 1 -o logfile1.log python profile.py
但是,这实际上似乎并不包含有趣的运行时操作,仅包含启动和关闭操作以及一些内部python方法。
好的,部分问题是dask的分叉引擎。但是,即使我现在将它作为一个单独的进程使用,因此它实际上是在显示操作的“实质”,但这样做仍然很奇怪,无法正确显示python调用点,仅内部显示了这些调用点。
我只是感到困惑。我想念一些大事。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)