小编cas*_*der的帖子

让gdb保存断点列表?

好的,info break列出了断点,但是没有使用在这个问题中使用--command重用它们的格式.gdb是否有一种方法可以将它们转储到可接受输入的文件中?有时在调试会话中,有必要在构建一组断点进行测试后重新启动gdb.

编辑: .gdbinit文件与--command具有相同的问题.info break命令不列出命令,而是列出供人消费的表.

详细说明,这是一个来自info break的示例:

(gdb) info break
Num Type           Disp Enb Address    What
1   breakpoint     keep y   0x08048517 <foo::bar(void)+7>

c c++ debugging gdb breakpoints

125
推荐指数
6
解决办法
4万
查看次数

如何使用gcc进行矢量化?

gcc编译器的v4系列可以在一些现代CPU上使用SIMD处理器自动矢量化循环,例如AMD Athlon或Intel Pentium/Core芯片.这是怎么做到的?

gcc loops simd vector-processing

17
推荐指数
2
解决办法
3万
查看次数

.NET或Mono vs Qt,哪一个用于跨平台开发?

好的,这是雷区,但试图理解为什么人们会选择.NET(或等效Mono)进行跨平台开发而不是其他工具包很难没有经验.

对于可能同时使用两者的程序员,会遗漏或期望哪些功能?相反,一个人的用户在范例或其他方面会发现什么?任何一个工具包都有很多要说的,但是使用这两个工具包的人的评论很有价值.

以下是有关该主题的一些相关问题:

编辑: 如果Windows是目标平台之一,使用Mono只是一个可行的选择吗?

.net api user-interface qt

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

如何对程序进行双向或反向调试?

有没有人真正使用过可逆调试器?谷歌出现的唯一产品是UndoDB.它显然仅适用于Linux.

debugging gdb reverse-debugging

15
推荐指数
3
解决办法
3035
查看次数

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

C++中是否存在多态性的替代方案?

关于动态多态性的问题中提出了CRTP.但是,据称这种模式仅对静态多态性有用.我所看到的设计似乎受到虚拟函数调用的快速阻碍,如此处暗示的那样. 加速甚至2.5倍将是太棒了.

有问题的类很简单,可以完全内联编码,但是直到运行时才会知道将使用哪些类.此外,它们可以以任何顺序链接,将性能损失归咎于伤害.

任何建议(包括如何在这种情况下使用CRTP)欢迎.

编辑:谷歌搜索提到功能模板.这看起来很有希望

c++ virtual-functions

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

GCC优化技巧,它真的有用吗?

在查看有关优化的一些问题时,对于最有效地使用优化器的编码实践问题,这个接受的答案激起了我的好奇心.断言是局部变量应该用于函数中的计算,而不是输出参数.有人建议这将允许编译器进行额外的优化,否则不可能.

因此,为示例Foo类编写一段简单的代码并使用g ++ v4.4和-O2编译代码片段会产生一些汇编器输出(使用-S).汇编程序列表的部分只包含如下所示的循环部分.在检查输出时,两个循环似乎几乎相同,只有一个地址不同.该地址是第一个示例的输出参数或第二个示例的局部变量的指针.

无论是否使用局部变量,实际效果似乎都没有变化.所以问题分为3部分:

a)即使给出提示,GCC也没有进行额外的优化;

b)GCC 在两种情况下都成功优化,但不应该;

c)GCC是否在两种情况下都成功优化,并且正在生成C++标准定义的兼容输出?

这是未经优化的功能:

void DoSomething(const Foo& foo1, const Foo* foo2, int numFoo, Foo& barOut)
{
    for (int i=0; i<numFoo, i++)
    {
         barOut.munge(foo1, foo2[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

和相应的组装:

.L3:
    movl    (%esi), %eax
    addl    $1, %ebx
    addl    $4, %esi
    movl    %eax, 8(%esp)
    movl    (%edi), %eax
    movl    %eax, 4(%esp)
    movl    20(%ebp), %eax       ; Note address is that of the output argument
    movl    %eax, (%esp)
    call    _ZN3Foo5mungeES_S_
    cmpl    %ebx, 16(%ebp) …
Run Code Online (Sandbox Code Playgroud)

c++ optimization gcc coding-style

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

为什么OO概念界面没有用C++中的关键字表示?

Java等语言明确使用interface关键字来表示接口.使用Java之后,这个概念似乎足以让我证明一个关键字可以强制执行这个概念.

当然,可以使用纯虚拟类并将其标记为接口.但是,这个关键字似乎非常有用,并且与纯虚拟类不同,因此非常有用.也许它被包含在C++ 0x中?

c++ oop

7
推荐指数
4
解决办法
950
查看次数

除gcc之外的哪些编译器可以矢量化代码?

当指定了某些选项并给出了合适的条件时,GCC可以自动向量化循环.是否有广泛可用的其他编译器可以做同样的事情?

compiler-construction gcc loops simd vector-processing

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

实际使用自动矢量化?

有没有人利用gcc可以做的自动矢量化?在现实世界中(与示例代码相对)?是否需要重组现有代码才能占用优势?在任何可以通过这种方式进行矢量化的生产代码中是否存在大量案例?

gcc loops simd vector-processing

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