我有一个用C/C++编写的多线程Linux应用程序.我为我的线程选择了名字.为了帮助调试,我希望这些名称在GDB,"top"等中可见.这是可能的,如果是这样,如何?
(有很多理由知道线程名称.现在我想知道哪个线程占用了50%的CPU(由'top'报告).而且在调试时我经常需要切换到不同的线程 - 目前我必须做" thread apply all bt"然后查看回溯输出页面以找到正确的线程).
该视窗解决方案就在这里 ; 什么是Linux?
我想为Rust程序中的线程提供单独的名称.这些名称应该出现在top/中htop我可以区分线程的工作.在Ruby中我会修改argv[0]条目,或者也许Process.setproctitle("foo").我的灵感来自Ruby的Unicorn网络服务器.
该env::args函数返回一个Args值.该Args值包装特定于平台的std::sys::args::args()函数,该函数不会重新导出以供一般使用.ArgsOs没有可用的mutator(所以是的,stdlib明确表示它是不可变的).
我如何以其他方式改变参数?我很满意只有Linux的解决方案,因为这是真正的工作将要发生的地方.stdlib外的解决方案也很好.
我应该采取什么样的路径来修改流程环境中的第一个参数?