我试着用开放嵌入的方式编译一个带bitbake的内核。通常情况下,它可以工作,因为我以前已经做过几次,但是从昨天开始,在使用menuconfig修改了一些值之后,以及当我键入要用以下方式编译的时候:
bitbake linux边界-c编译
我得到以下错误:
ERROR: Function failed: do_compile (log file is located at /home/user/\
setup-scripts/build/tmp-defaultsetup-eglibc-eglibc/work/\
nitrogen6x-oe-linux-gnueabi/lin
我的程序有段错误。我尝试使用gdb的gdb命令查找bug,但不幸的是,我不理解它的输出:
(gdb) bt
#0 0x00007ffff1678480 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
#1 0x00007ffff171c11e in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
#2 0x00007ffff17e565f in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-ope
问题在主题中。让我解释一下“为什么”。我在Red Hat Enterprise Linux Server 7.7上运行我的应用程序。当我使用htop检查性能时,我发现很少有线程占用太多的CPU。我添加了一些调试日志,发现在我的代码中没有创建具有高CPU的线程。因此,我假设这些CPU贪婪线程是在我正在使用的第三方共享库中创建的。所以有一个问题:假设我有一个线程id (17405)。有没有办法找出是哪个共享库启动了这个线程?
如果这个问题太琐碎,我向您道歉--我不久前才开始使用Linux操作系统。
谢谢
我的生产服务器上的Apache正在断断续续地故障。我在apache配置中启用了核心转储选项,并有几个转储核心文件。不幸的是,由于它是生产服务器,apache或加载的模块没有使用调试符号进行编译。据我所知,gdb没有调试符号就不能做很多事情。
我能否至少找出哪个模块导致seg故障,而不需要调试符号?如果是这样的话,是怎么做的?
更新下面是gdb回溯跟踪的输出
(gdb) bt full
#0 0xb7f1f832 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
No symbol table info available.
#1 0xb7be8
我想调试一个运行多个TCP服务器线程的C程序。我不能设置一个复杂的调试工具,因为我必须在嵌入式linux(忙碌的盒子)中进行调试。我希望它能原生支持gdb。
所以我从gdb开始。一旦我输入run,服务器似乎在后台运行,但gdb返回提示和"Program received signal SIG64 (Real-time event 64)“消息(我猜与pthread有关)。我知道这一定是因为main被分成了几个线程。但是我不知道如何调试它。任何起点都会很有帮助。
另外,有没有其他的“跟踪”,比如调试器,我可以使用很小的内存?
请帮帮忙
我们在AWS上运行Java spring boot应用程序。我们使用的平台是Tomcat 8.5 with Java 8 running on 64bit Amazon Linux/3.3.6。这些机器是4 4GB的机器。我们使用JVM args、-XMX和-XMS as 1536m运行这个Java应用程序。我们面临的问题是,由于90%+内存使用,这些实例经常进入警告状态。现在,我们正在尝试逐个进程地说明内存使用情况。
首先,我们只在这些机器上运行top命令。以下是输出的部分。
top - 11:38:13 up 4:39, 0 users, load average: 0.90, 0.84,