在linux中,我可以修改int main(int argc, char*argv[])
内容以更改ps
中显示的内容。到目前为止,我没有遇到任何问题,但在一种情况下,我希望通过包含GUID或某种ID来延长它。在那种情况下,我发现如果参数不足以容纳它,它将无法工作。基本上我想添加文本,这样当用户运行ps
时,查看多个应用实例会更友好。
如何让参数更长,以便我可以添加要在ps
中显示的文字?
答案 0 :(得分:1)
有人可能需要仔细检查,但在我知道的其他ABI(Mac OS 9,Mac OS X)中,argv
字符串位于堆栈顶部,在入口点之前#39 ; s框架。 (通过查找&argv[0]
的地址并将其与另一个堆栈变量的地址进行比较,可以使用gdb轻松验证这一点。)
堆栈分配通常是不可调整大小的,您最有可能被限制在原始参数所占用的任何空间内。
一种可能性是向程序传递一个名为--thirthy-characters-long-guid
的参数,并在运行时将该参数替换为GUID(如果存在)。