gpt4 book ai didi

linux - LibreOffice:确定负责打印的源代码部分

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:26 27 4
gpt4 key购买 nike

我正在尝试为 LibreOffice 打印过程实现一些附加功能(一些特殊信息应该自动添加到每个打印页面的边距)。我将 RHEL 6.4 与 LibreOffice 4.0.4 和 Gnome 2.28 一起使用。

我的目的是研究 LibreOffice 和系统组件之间的数据流,并确定哪些源代码负责打印。之后我将不得不修改这些代码部分。

现在我需要有关源代码研究方法的建议。我找到了很多工具,从我的角度来看:

  1. strace 看起来很底层;
  2. gprof 需要使用“-pg”CFLAGS 重新编译的二进制文件;不知道如何使用 LibreOffice 进行操作;
  3. systemtap 只能探测系统调用,不是吗?
  4. callgrind + Gprof2Dot 一起使用非常好,但执行奇怪的结果(见下文);

例如,这里是 callgrind 输出的调用图,带有 Gprof2Dot 可视化。我用这样的命令启动了 callgrind:

valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes /usr/lib64/libreoffice/program/soffice --writer

并收到四个输出文件:

-rw-------.   1 root  root          0 Jan  9 21:04 callgrind.out.29808
-rw-------. 1 root root 427196 Jan 9 21:04 callgrind.out.29809
-rw-------. 1 root root 482134 Jan 9 21:04 callgrind.out.29811
-rw-------. 1 root root 521713 Jan 9 21:04 callgrind.out.29812

最后一个 (pid 29812) 对应于正在运行的 LibreOffice Writer GUI 应用程序(我用 straceps aux 确定了它)。我按下了 CTRL+P 和 OK 按钮。然后我关闭了应用程序,希望能在日志中看到负责打印进程初始化的函数。

callgrind 输出是根据此答案使用 Gprof2Dot 工具处理的。不幸的是,我在图片上既看不到我感兴趣的 Action ,也看不到调用图。

如果您能提供有关解决此类问题的正确方法的任何信息,我将不胜感激。谢谢。

enter image description here

最佳答案

解决此问题的正确方法是记住 LibreOffice 是开源的。整个源代码都有文档,您可以在 docs.libreoffice.org 浏览文档。 .不要以艰难的方式这样做:)

此外,请记住打印机设置对话框不是 LibreOffice 特定的,而是由操作系统提供的。

关于linux - LibreOffice:确定负责打印的源代码部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032324/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com