首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从脚本执行11后台执行?

从脚本执行11后台执行?
EN

Stack Overflow用户
提问于 2018-06-21 03:49:17
回答 1查看 741关注 0票数 1

在GDB中 --您可以在后台通过在命令(ex:continue&)之后附加一个&来继续/step/等调试过程,允许您在进程/线程运行时访问CLI。我发现在调试多进程/多线程应用程序时,当我想让“非感兴趣的”线程/进程运行时,这是非常宝贵的。

我想知道LLDB里有什么类似的东西吗?具体来说,我希望指定要在脚本中使用的执行模型。

我想在LLDB脚本中做的一个例子:

代码语言:javascript
复制
# this is just background setup for attaching to multiple processes
# I've figured out how to do this in LLDB
attach 1
add-inferior
inferior 2
attach 2
# this is the step I don't know how to get to work consistently
continue&
inferior 1
# ... do debugging work on inferior 1, possibly switching to inferior 2 as needed

我尝试过的事物:

在LLDB中,我在文档中发现的最接近的东西是两个“选项”--no-stdin,或者settings set target.process.disable-stdio true (我不需要stdin用于我的应用程序,尽管stdout很好)。但是,当我尝试在LLDB6.0中寻找这些选项时,它们已经不存在了,或者至少不存在这些名称。

我发现的另一件事(找不到关于这方面的任何文档)是,如果我将LLDB附加到现有的进程ID,那么当我从CLI发出process continue时,它总是在后台执行。但是,如果我运行一个LLDB命令脚本或让LLDB在本地运行进程,那么它总是执行“在前台”,除非我中断正在运行的命令,否则我将失去对CLI的控制。对我来说,能够在脚本中执行类似continue&这样的操作是很重要的,因为我将有相当多的进程,手动切换到/继续每个目标非常耗时。

EN

回答 1

Stack Overflow用户

发布于 2018-06-21 21:44:34

看起来,--no-stdin被更改为(可以说更准确) --no-stdio选项为process launch,而不更改概述文档。执行help process launch以查看所有选项,包括该选项。等效设置为target.disable-stdio

还请注意,lldb的帮助得到了增强,因此以--结尾的别名--即显式关闭向命令添加选项--不列出基础命令的选项。runprocess launch --的别名,所以如果使用help run,就不会看到任何选项。

还可以使用--tty选项将输出重定向到另一个终端窗口。

就脚本命令而言。它的工作方式是lldb可以在同步或异步模式下运行进程。在同步模式下,调试器中所有继续进程块直到进程再次停止的命令(和stops调用)。在异步模式下,控件会立即返回,然后有人需要查看lldb事件流,以确定流程何时再次停止。对于命令,lldb会为您做到这一点。对于Python脚本,您必须手工完成。

如果您使用的是命令行,我们将根据是否也尝试从进程中输入stdio来确定对命令行命令执行哪些操作。

对于使用SB API编写的脚本,无论是用作lldb命令行命令,还是作为独立脚本,默认情况下,lldb都以同步模式运行调试器。这样就省去了等待事件知道进程何时停止的麻烦。而且,由于目前还没有一种方法可以“挂起”命令流中的命令并返回到命令行(直到何时?),所以在异步模式下运行通常不是很有用。但是,如果您希望发出一个“继续”作为python命令的最后一个动作,并且希望异步执行,这是非常有用的。然后你就可以:

代码语言:javascript
复制
old_async = debugger.GetAsync()    
debugger.SetAsync(True)
process.Continue()
debugger.SetAsync(old_async)

然后,当进程成功地继续时,基于Python的命令将退出,而不是等待它再次停止。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50960085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档