我的程序像这样操作: exe -p param1 -i param2 -o param3 它崩溃并生成一个核心转储文件core.pid 我想通过分析核心转储文件 gdb ./exe -p param1 -i param2 -o param3 core.pid 但gdb认识到exe的参数作为gdb的input。 如何在这种情况下分析核心转储文件?
我正在寻找像ltrace或strace这样的工具,可以跟踪可执行文件中的本地定义的函数。 ltrace只跟踪dynamic库调用,并且只跟踪系统调用。 例如,给定以下C程序: #include <stdio.h> int triple ( int x ) { return 3 * x; } int main (void) { printf("%d\n", triple(10)); return 0; } 使用ltrace运行程序会显示printf的调用,因为这是一个标准的库函数(这是我系统上的一个dynamic库), strace将显示来自启动代码的所有系统调用,用于实现printf的系统调用,以及关机代码,但我想要的东西,会告诉我,函数triple被调用。 假设本地函数没有被优化编译器内联,并且二进制文件没有被删除(符号被删除),是否有一个工具可以做到这一点? 编辑 一些澄清: 如果该工具还为非本地function提供跟踪信息,那也没问题。 我不想重新编译支持特定工具的程序,可执行文件中的符号信息就足够了。 如果我可以使用该工具附加到现有的进程,如我可以用ltrace / strace,我会非常好。
如何检查邮件在我的服务器上发送的问题? 我运行一个简单的testing: if(mail($to, $subject, $message)) { echo 'Mail Sent'; } testing输出文本; 但是,没有邮件到达。 我怎样才能追踪这个问题呢?
我们最近对我们的生产系统的观察告诉我们,我们的Java容器的常驻内存使用量增长了。 针对这个问题,我们做了一些调查,理解为什么java进程比堆栈+线程栈+共享对象+代码caching+等消耗更多的内存,使用一些本地工具,如pmap。 因此,我们发现一些由本地进程(可能是使用malloc / mmap)分配的64M内存块(成对): 0000000000400000 4K rx– /usr/java/jdk1.7.0_17/bin/java 0000000000600000 4K rw— /usr/java/jdk1.7.0_17/bin/java 0000000001d39000 4108K rw— [ anon ] 0000000710000000 96000K rw— [ anon ] 0000000715dc0000 39104K —– [ anon ] 00000007183f0000 127040K rw— [ anon ] 0000000720000000 3670016K rw— [ anon ] 00007fe930000000 62876K rw— [ anon ] 00007fe933d67000 2660K —– [ anon ] […]
Linux环境variables名称中允许使用哪些字符? 我粗略search手册页和网页,只会产生有关如何使用variables的信息,但不能提供哪些名称。 我有一个Java程序,需要一个包含点的定义环境variables,如com.example.fancyproperty 。 在Windows中,我可以设置这个variables,但是我没有把它设置在linux中(在SuSE和Ubuntu中试过)。 这个variables的名字甚至被允许吗?
我正在寻找一个C程序的反编译器。 该二进制文件是一个32位x86 Linux可执行文件。 Objdump工作正常,所以基本上我正在寻找一些尝试从asm源重构C源的东西。
说我们通常通过访问 http://localhost/index.php?a=1&b=2&c=3 我们如何在linux命令提示符下执行相同的操作? php -e index.php 但是传递$ _GETvariables呢? 也许像php -e index.php – a 1 –b 2 –c 3? 怀疑这将工作。 谢谢!
环境与Apache的Centos 尝试设置从http到https的自动redirect From manage.mydomain.com — To —> https://manage.mydomain.com 我已经尝试将以下内容添加到我的httpd.conf,但它不起作用 RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] 有任何想法吗?
我有script.sh,必须以user2运行。 但是,此脚本只能在我的应用程序的user1下运行。 我想要运行下面的命令: su user2 -C script.sh 但能够运行没有密码。 我也希望这是非常严格的,因为在user1中只能运行user2下的script.sh而没有别的。 我试着用sudoers文件来做这个,经过几个小时的尝试后,我感到困惑不解。 如果有人可以提供一个明确的例子来说明如何完成(而不是像使用sudoers那样的通用types),那么将不胜感激。
这是使用g ++进行dynamic共享库编译的后续步骤。 我想在Linux上用C ++创build一个共享类库。 我可以让库编译,我可以使用我在这里和这里find的教程来调用一些(非类)函数。 当我尝试使用库中定义的类时,我的问题就开始了。 我链接到的第二个教程显示了如何加载符号来创build库中定义的类的对象,但是停止使用这些对象来完成任何工作。 有谁知道一个更完整的教程来创build共享的C ++类库,也显示了如何在一个单独的可执行文件中使用这些类? 一个非常简单的教程,显示对象的创build,使用(简单的getter和setter将是好的),删除将是太棒了。 说明使用共享类库的一些开源代码的链接或引用同样适用。 尽pipecodelogic和nimrodm的答案确实起作用,但我想补充一点,自从问起这个问题之后,我就select了一个Linux 初始 编程的副本,第一章有示例C代码和很好的解释来创build和使用静态和共享库。 这些示例可以通过该书旧版本中的 Google图书search获得。