小编Nan*_*iao的帖子

使用gdb调试程序时,有命令输出文件描述符信息吗?

当我使用gdb调试程序时,我想查看有关调试进度的文件描述符信息。我使用“info file”、“info proc”命令,但这些命令输出不包含文件描述符信息。那么使用 gdb\xef\xbc\x9f 时是否有命令输出文件描述符信息 先谢谢了!

\n

debugging gdb

6
推荐指数
1
解决办法
1631
查看次数

当stdout被重定向到该文件时,为什么printf()不输出到文件?

以下是一个简单的C程序:

#include <unistd.h>
#include <stdio.h>

int main(void)
{
        while (1)
        {
                printf("Hello World\n");
                sleep(1);
        }
}
Run Code Online (Sandbox Code Playgroud)

构建并运行它," Hello World"将打印在终端中:

$ ./a.out
Hello World
Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)

但如果stdout重定向到文件,运行一段时间后,文件中仍然没有任何内容:

$ ./a.out > log.txt
^C
$ cat log.txt
$
Run Code Online (Sandbox Code Playgroud)

为什么printf输出到stdout重定向到的文件?

c

6
推荐指数
1
解决办法
1001
查看次数

初始化结构的第一个元素或整个结构?

all:
用C语言:

struct A  
{
    int a;
    int b;
};

A aa = {0};  
Run Code Online (Sandbox Code Playgroud)

此语句仅初始化aa.a或初始化整个结构?或者行为取决于编译器?
提前致谢!

c gcc

5
推荐指数
1
解决办法
243
查看次数

为什么在64位Windows 7中size_t的类型是uint?

我是编程的新手D.阅读完基本类型后,我决定检查size_t我的64Windows 7操作系统中的类型.代码是这样的:

import std.stdio;

void main()
{
    writeln("Type: ", size_t.stringof);
    writeln("Size: ", size_t.sizeof);
}
Run Code Online (Sandbox Code Playgroud)

执行后,输出为:

Type: uint
Size: 4
Run Code Online (Sandbox Code Playgroud)

根据我的理解,size_t应该是ulong on- 64bit OS 的类型.
任何人都可以提供任何线索吗?首先十分感谢!

d

5
推荐指数
1
解决办法
290
查看次数

“perf stat”输出是什么意思?

我使用“ perf stat”命令对某些事件进行统计:

[root@root test]# perf stat -a -e "r81d0","r82d0" -v ./a
r81d0: 71800964 1269047979 1269006431
r82d0: 26655201 1284214869 1284214869

 Performance counter stats for './a':

        71,800,964 r81d0                                                        [100.00%]
        26,655,201 r82d0

       0.036892349 seconds time elapsed
Run Code Online (Sandbox Code Playgroud)

(1) 我知道71800964是“ r81d0”的计数,但是1269047979and是什么意思1269006431
(2) “ [100.00%]”是什么意思?

我曾尝试“ perf stat --help”,但无法获得这些值的解释。

performance perf

5
推荐指数
1
解决办法
2135
查看次数

如何为 gdb 安装 python debug-info?

我想用来gdb调试python脚本。启动后gdb,输出:

[root@localhost scripts]# gdb python
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-51.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols …
Run Code Online (Sandbox Code Playgroud)

python linux debugging gdb rhel

5
推荐指数
1
解决办法
1万
查看次数

为什么docker在备份数据卷时提示“Permission denied”?

我正在关注docker文档来测试数据卷的备份过程。

下面2步都OK:

docker create -v /dbdata --name dbdata training/postgres /bin/true
docker run -d --volumes-from dbdata --name db1 training/postgres
Run Code Online (Sandbox Code Playgroud)

但是备份数据的输出是:

[root@localhost data]# docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
tar: /backup/backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
[root@localhost data]# pwd
/root/data
[root@localhost data]# ls -alt
total 4
drwxrwxrwx.  2 root root    6 May  7 21:33 .
drwxrwx-w-. 15 root root 4096 May  7 21:33 ..
Run Code Online (Sandbox Code Playgroud)

我是root用户,为什么会提示“Permission denied ”?

执行调试命令后: …

linux ubuntu docker

5
推荐指数
1
解决办法
6881
查看次数

docker 1.6.0后宿主机容器的rootfs在哪里

在 Docker v1.4.1 中,我们可以在宿主机上找到容器的rootfs。例如:

cd /var/lib/docker/devicemapper/mnt/ab83a2638bb23f24d8811fa9b4ca458efca9269696ff3112cc670be2833f3f92/rootfs/
.autofsck     .dockerenv    lost+found/   proc/         sys/
.autorelabel  .dockerinit   media/        root/         tmp/
bin/          etc/          mnt/          sbin/         usr/
boot/         lib/          opt/          selinux/      var/
dev/          lib64/        .pki/         srv/
Run Code Online (Sandbox Code Playgroud)

但是在 Docker v1.6.0 中,我发现它/var/lib/docker/devicemapper/mnt/911d7ac8fca78b2beca8752ec89d80c06a1ea1dd8a65099d074ed40eec0c6cce是空的。

v1.6.0在哪里?

它已经使用了 devicemapper

# docker -D info
Containers: 4
Images: 58
Storage Driver: devicemapper
  Pool Name: docker-253:1-2886824-pool
  Pool Blocksize: 65.54 kB
  Backing Filesystem: extfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 12.12 GB
Data Space Total: 107.4 …
Run Code Online (Sandbox Code Playgroud)

rootfs docker

5
推荐指数
1
解决办法
5764
查看次数

"__this_module"变量的内存分配在哪里?

来自<linux/module.h>:

#ifdef MODULE
#define MODULE_GENERIC_TABLE(gtype,name)            \
extern const struct gtype##_id __mod_##gtype##_table        \
  __attribute__ ((unused, alias(__stringify(name))))

extern struct module __this_module;
#define THIS_MODULE (&__this_module)
#else  /* !MODULE */
#define MODULE_GENERIC_TABLE(gtype,name)
#define THIS_MODULE ((struct module *)0)
#endif
Run Code Online (Sandbox Code Playgroud)

我可以看到" extern struct module __this_module;"只是一个声明__this_module,但不是定义__this_module.那么内存分配在__this_module哪里?我在kernel代码中找不到它.

c linux linux-device-driver linux-kernel

5
推荐指数
1
解决办法
643
查看次数

如何离线阅读 Rust 文档?

我使用 Rust 的默认安装并希望阅读本教程之后的文档:

$ rustup doc
Run Code Online (Sandbox Code Playgroud)

但是上面的命令输出如下错误:
在此处输入图片说明

确实没有html目录:

$ rustup doc
Run Code Online (Sandbox Code Playgroud)

如何离线阅读 Rust 文档?

rust

5
推荐指数
1
解决办法
3052
查看次数

标签 统计

c ×3

linux ×3

debugging ×2

docker ×2

gdb ×2

d ×1

gcc ×1

linux-device-driver ×1

linux-kernel ×1

perf ×1

performance ×1

python ×1

rhel ×1

rootfs ×1

rust ×1

ubuntu ×1