我正在寻找以下调试工具之间的区别.
那些是什么?
E:关于有人在这里偶然发现并且想知道"差异"的相同之处(从手册页缩写):
GDB
允许您查看程序在运行/崩溃时"内部"发生的情况.
Valgrind
一系列灵活的调试和分析工具.
Strace
记录/拦截进程调用/接收的系统调用.
Ltrace
记录/拦截进程调用/接收的信号/动态库/系统调用.
Apport
拦截崩溃/未处理的异常,收集操作系统信息,提供有用的UI,并能够提交非崩溃错误.
所以我发现了以下很酷的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)
然而,这不是非常基本的,恰好是一个令人难以置信的混乱.我想让它更具可读性.
怎么样?
假设我有以下类型的文件:
<?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
谢谢.
假设我有一个看起来像这样的字符串:
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解决方案.
维基百科说:
原像电阻:对于基本上所有预先指定的输出,在计算上找不到散列到该输出的任何输入,即,很难找到给定“ y”使得h(x)= y的任何原像x。
第二原像电阻:找到任何与指定输入具有相同输出的第二输入在计算上是不可行的,即,给定x,很难找到第二原像x'。使得h(x)= h(x?)。
但是,我不明白。不H(X?) (其中,X”是输入)产生该Ý(输出),然后将其与相同H(X) ?
说,我有一个字符串“ example”。生成MD5“ 1a79a4d60de6718e8e5b326e338ae533”。与仅使用MD5(示例)相比,为什么只使用MD5有何不同?
我试图找出以下之间的区别:
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)
后者有点短,所以我更喜欢这样写,我发现的唯一区别是它因空数组而崩溃。速度大致相等。