小编def*_*def的帖子

x86程序执行期间方向标志(DF)的默认状态

在反汇编中,我经常看到正在使用字符串操作指令而不考虑方向标志(DF)的状态,如下所示:

or      ecx, 0FFFFFFFFh
xor     eax, eax
mov     edi, ebp
repne scasb
Run Code Online (Sandbox Code Playgroud)

CLD或者STD在函数开始后没有找到指令,也没有其他可能影响DF标志的指令.
那么,编译器在程序启动后,假定程序运行时,假定程序运行时保持预定义状态,并且在程序运行时保持不变?

x86 assembly flags cpu-registers

6
推荐指数
2
解决办法
478
查看次数

被破坏的C++符号的模糊性

_ZNSaIwEC1Ev
_ZNSaIwEC2Ev
Run Code Online (Sandbox Code Playgroud)

这两个C++符号不同,但是将它们(使用C++ filt或类似实用程序)解压缩为相同的形式:

std::allocator<wchar_t>::allocator()
std::allocator<wchar_t>::allocator()
Run Code Online (Sandbox Code Playgroud)

为什么这样?它可能是一个demangler的缺陷还是其他什么?

c++ gcc demangler

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

llvm-pdbutil - PDB 文件取证和诊断

在哪里可以找到 LLVM 的 llvm-pdbutil?很少有人提到它带有安装包,但我在里面找不到。

llvm pdb-files

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

Qt:QDockWidget 停靠时的选项卡图标

Qt 的 QMainWindow 能够停靠从 QDockWidget 派生的窗口。如果它们中的几个堆叠在一起,它也会将一个放在另一个上面,从而产生一个标签栏。每当 QDockWidget 的状态改变时,都会发出一个信号 topLevelChanged()。在这一点上,我想访问底层 QTabWidget 来为新添加的选项卡设置图标。我该怎么做?我的耐心已经结束,试图从 Qt 的文档和源代码中挖掘答案。先感谢您。

在此处输入图片说明

所以图标我想在目录/索引选项卡上。

icons qt tabbar qdockwidget

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

模板默认参数作为指向自身的指针

我正在尝试开发一个通用树模板类,基本上,表示相同节点的层次结构.它需要2个模板参数,第一个是数据,第二个是引用另一个节点的类型(prev,next,parent,child).默认情况下,我希望它是一个传统的节点指针,但为了我的目的,我还需要它是不同的东西(例如内存池的整数索引).下面的代码无法编译.本能地,我觉得可以做到,但我不知道怎么做.任何人都可以提供这方面的见解吗?

template <typename U, typename TPTR = TreeNode_t<U>*>
class TreeNode_t
{
public:
    TPTR    prev;
    TPTR    next;
    TPTR    parent;
    TPTR    children;
    U m;
public:
    TreeNode_t() : prev(0), next(0), parent(0){}
    ~TreeNode_t(){}
    U &data() { return m; }
    const U &data() const { return m; }
    ...
Run Code Online (Sandbox Code Playgroud)

具体来说,我通常会像这样实例化它:

TreeNode_t<double> tree1;
Run Code Online (Sandbox Code Playgroud)

但是,有时我会这样想:

TreeNode_t<double, unsigned> tree2;
Run Code Online (Sandbox Code Playgroud)

c++ templates default parameter-passing

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