小编Det*_*Det的帖子

gdb,valgrind,strace,ltrace和apport之间的区别

我正在寻找以下调试工具之间的区别.

那些是什么?

E:关于有人在这里偶然发现并且想知道"差异"的相同之处(从手册页缩写):

  • GDB

    允许您查看程序在运行/崩溃时"内部"发生的情况.

  • Valgrind

    一系列灵活的调试和分析工具.

  • Strace

    记录/拦截进程调用/接收的系统调用.

  • Ltrace

    记录/拦截进程调用/接收的信号/动态库/系统调用.

  • Apport

    拦截崩溃/未处理的异常,收集操作系统信息,提供有用的UI,并能够提交非崩溃错误.

debugging gdb valgrind strace ltrace

27
推荐指数
0
解决办法
8526
查看次数

简化高级Bash提示变量(PS1)代码

所以我发现了以下很酷的Bash提示:

Bash提示

..具有以下基本逻辑:

PS1="\[\033[01;37m\]\$? \$(if [[ \$? == 0 ]]; then echo \"\[\033[01;32m\]\342\234\223\"; else echo \"\[\033[01;31m\]\342\234\227\"; fi) $(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]\h'; else echo '\[\033[01;32m\]\u@\h'; fi)\[\033[01;34m\] \w \$\[\033[00m\] "
Run Code Online (Sandbox Code Playgroud)

然而,这不是非常基本的,恰好是一个令人难以置信的混乱.我想让它更具可读性.

怎么样?

bash ps1

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

Sed:在最后一次出现后追加

假设我有以下类型的文件:

<?xml version="1.0" encoding="utf-8"?>
<preferences>
  <section id="widgets">
    <value id="version" xml:space="preserve">1</value>
  </section>
  <section id="wuid-b2a8e6b8-6619-714e-9cfe-466c27c90902">
    <value id="path to widget data" xml:space="preserve">{Preferences}widgets/opera-adblock-1.3.4-1.oex</value>
  </section>
  <section id="wuid-0c5cfdb2-8e51-f149-a1e7-51d66240ed7a">
    <value id="path to widget data" xml:space="preserve">{Preferences}widgets/flag-button-1.5.4-1.oex</value>
  </section>
</preferences>
Run Code Online (Sandbox Code Playgroud)

我的任务是在最后一次出现之后立即添加文本</section>.

看看这两个看起来好像利用tac会更简单,但我不明白怎么做:使用sed将字符串附加到第四次出现的模式,http://www.unix.com/unix-假人疑问的答案/ 46294-附加线后最后occurnace-pattern.html#post302149709

谢谢.

sed

4
推荐指数
2
解决办法
8035
查看次数

提取2个字符之间的字符串

假设我有一个看起来像这样的字符串:

nvidia-utils-beta 334.16-1
lib32-nvidia-utils-beta 334.16.1-2
Run Code Online (Sandbox Code Playgroud)

我想提取它所以它会产生:

334.16
334.16.1
Run Code Online (Sandbox Code Playgroud)

..分别.

怎么样?

ps我更喜欢非cut|cut解决方案.

awk grep sed

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

原像电阻和第二原像电阻之间的差异

维基百科说:

  • 原像电阻:对于基本上所有预先指定的输出,在计算上找不到散列到该输出的任何输入,即,很难找到给定“ y”使得h(x)= y的任何原像x。

  • 第二原像电阻:找到任何与指定输入具有相同输出的第二输入在计算上是不可行的,即,给定x,很难找到第二原像x'。使得h(x)= h(x?)。

但是,我不明白。不H(X?) (其中,X”是输入)产生Ý(输出),然后将其与相同H(X)

说,我有一个字符串“ example”。生成MD5“ 1a79a4d60de6718e8e5b326e338ae533”。与仅使用MD5(示例)相比,为什么只使用MD5有何不同?

hash cryptography

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

std::adjacent_find() 和 std::equal() 之间的区别,用于检查向量中的所有元素是否相等

我试图找出以下之间的区别:

return std::adjacent_find(v.begin(), v.end(), std::not_equal_to<>()) == v.end();
Run Code Online (Sandbox Code Playgroud)

return std::equal(v.begin() + 1, v.end(), v.begin());
Run Code Online (Sandbox Code Playgroud)

后者有点短,所以我更喜欢这样写,我发现的唯一区别是它因空数组而崩溃。速度大致相等。

c++ c++11 c++14

-1
推荐指数
1
解决办法
177
查看次数

标签 统计

sed ×2

awk ×1

bash ×1

c++ ×1

c++11 ×1

c++14 ×1

cryptography ×1

debugging ×1

gdb ×1

grep ×1

hash ×1

ltrace ×1

ps1 ×1

strace ×1

valgrind ×1