![](/img/trans.png)
[英]How to save outlook email attachments with Python, on Virtal Desktop (VMWare)
[英]lldb in a Python virtal environment
我倾向于使用很多虚拟环境,尤其是Python。 我在特定的虚拟环境中运行过一些代码,其中包含一些C ++代码。 此代码核心转储,我想使用lldb
进行调试。
但是,我明白了
; lldb a.out -c core.17915
Core file '/path/core.17915' (x86_64) was loaded.
Process 0 stopped
* thread #1: tid = 0, 0x0000000000559689
[...] ← lots of irrelevant data for this question.
(lldb) frame variable
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named lldb.embedded_interpreter
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'run_one_line' is not defined
zsh: segmentation fault (core dumped) lldb a.out -c core.17915
我可以将lldb导入到在虚拟环境之外运行良好的环境,但是不能在虚拟环境中进行。 我不希望将所有系统模块都添加到虚拟环境中,因为这样会破坏首先拥有虚拟环境的意义。
如何在虚拟环境中加载lldb
模块?
问题源于以下事实:虚拟环境默认情况下不会复制系统范围内已安装的模块。 这就是虚拟环境的重点。 但是,在开发环境中,其中一些模块是必需的。 因此,在tox.ini
,我调用了一个脚本(通过commands
)来完成设置工作。 在那个脚本中,我有
lib_python_path="/usr/lib64/python2.7"
dst="$VIRTUAL_ENV/lib/python2.7/site-packages"
…
# Copy lldb, iff it exists.
if [ -d "${lib_python_path}/site-packages/lldb" ]
then
ln -f -s ${lib_python_path}/site-packages/lldb ${dst}
fi
这似乎可以解决问题。
我怀疑“与此问题相关的大量无关数据”中的某些内容可能是相关的。 ;)
你可以编译一个简单的程序吗
$ echo "int main () { }" > /tmp/a.c
$ clang -g -o /tmp/a.out /tmp/a.c
$ lldb -x /tmp/a.out
(lldb) br s -n main
(lldb) r
(lldb) fr v
(或gcc
,等等)。 那样有用吗? 如果这不起作用,那么关于lldb的安装方式有些奇怪。 如果它确实起作用,那么请找出这两个示例之间的区别。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.