小编use*_*507的帖子

在Bash中等效__FILE__和__LINE__

bash中是否包含执行的.sh文件的名称?行号也很棒.

我想在错误消息中使用它,例如:

echo "ERROR: [$FILE:L$LINE] $somefile not found"
Run Code Online (Sandbox Code Playgroud)

error-handling bash environment-variables

32
推荐指数
4
解决办法
9971
查看次数

如何选择linux加载计算中的权重?

在Linux中,平均负载是1分钟/ 5分钟/ 15分钟.内核使用的公式实际上是指数移动平均线.

如果我们定义cpuload(1)为cpu load 1min的第一次计算,并且active()作为在系统上返回状态"running"或"runnable"的进程数的函数,那么内核用来计算第n个 cpu load 1min 的公式是:

在此输入图像描述

cpuload(0)是0; 它是在第一次执行之前存储在内存中的值cpuload().

我的问题是,如何选择加权2 -5.log2(e)/ 60?在我看来,2 -5/60会更好,因为1分钟是过程数的半衰期(因为(2 -5/60)12 = 1/2).


如果我发布cpuload(n)除上面的递归定义之外的显式公式(右键单击以查看完整大小),它可能会有所帮助:

在此输入图像描述

linux algorithm history load kernel

12
推荐指数
1
解决办法
1552
查看次数

如何在gdb中使用逻辑地址?

gdb提供读取或写入特定线性地址的功能,例如:

(gdb) x/1wx 0x080483e4
0x80483e4 <main>:       0x83e58955
(gdb) 
Run Code Online (Sandbox Code Playgroud)

但是如何指定逻辑地址?我按照以下指示来:

   0x0804841a <+6>:     mov    %gs:0x14,%eax
Run Code Online (Sandbox Code Playgroud)

我如何读取gdb中"%gs:0x14"的内存,或者将此逻辑地址转换为我可以在x命令中使用的线性地址?

注意:我知道在这条指令之后我只能阅读%eax,但这不是我关心的问题

x86 gdb memory-segmentation

12
推荐指数
2
解决办法
4136
查看次数

在bash中读取一行"read",但没有"while"

我试图理解"while read"是如何在bash中运行的,而且我遇到了一个我无法解释的行为:

root@antec:/# var=old_value
root@antec:/# echo "new_value" | read var && echo $var
old_value
root@antec:/# 
Run Code Online (Sandbox Code Playgroud)

它在"while read"时工作正常:

root@antec:/# var=old_value
root@antec:/# echo "new_value" | while read var; do echo $var; done
new_value
root@antec:/# 
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么在没有使用读取时它不起作用?此外,我不明白如何从管道后面的所谓子壳中看到主壳中"var"的值.

谢谢

bash

8
推荐指数
2
解决办法
1563
查看次数

utrace项目已经死了吗?

我试图使用stap来跟踪用户空间可执行文件,如此答案所示:https://stackoverflow.com/a/324709/368507

要做到这一点,内核必须有utrace补丁,但我找不到最新内核的任何utrace补丁.

邮件列表已关闭,官方网站上的许多链接都已关闭.

有人知道这个项目的去向吗?它死了吗?这是否意味着我们不能再使用stap来跟踪最近内核上的可执行文件了?

谢谢

debugging ptrace linux-kernel

8
推荐指数
1
解决办法
1829
查看次数

"."在.symtab部分的Ndx列中的含义是什么?

add2.c:

int counter=0;
int a=0;
int b;
int c;
int add(int a, int b) {
    return a+b;
}
Run Code Online (Sandbox Code Playgroud)

编译:gcc -c add2.c -o add2.o

阅读符号表:readelf --symbols add2.o

Symbol table '.symtab' contains 12 entries:
   Num:    Value  Size Type    Bind   Vis      Ndx Name
     0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND 
     1: 00000000     0 FILE    LOCAL  DEFAULT  ABS add2.c
     2: 00000000     0 SECTION LOCAL  DEFAULT    1 
     3: 00000000     0 SECTION LOCAL  DEFAULT    2 
     4: 00000000     0 SECTION LOCAL  DEFAULT    3 
     5: 00000000     0 SECTION …
Run Code Online (Sandbox Code Playgroud)

c gcc elf

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