小编Fer*_*cio的帖子

什么是.LFB .LBB .LBE .LVL .loc在编译器生成的汇编代码中

当我查看GCC生成的汇编代码时,有许多行开头.LBB和一个数字.似乎它们不是操作指令.更像是标记文件的内容或什么.

是什么.LFB,.LVL,LBB,LBE等是在编译器生成的汇编代码? .loc是否意味着"代码行".那些线条只是表明了symbol table吗?

这是一段代码,

main:
.LFB1:
  .loc 1 8 0
  .cfi_startproc
.LVL2:
.LBB4:
.LBB5:
  .loc 1 2 0
  movsd b(%rip), %xmm0
.LBE5:
.LBE4:
  .loc 1 10 0
  xorl  %eax, %eax
.LBB7:
.LBB6:
  .loc 1 2 0
  mulsd a(%rip), %xmm0
.LBE6:
.LBE7:
  .loc 1 9 0
  movsd %xmm0, a(%rip)
.LVL3:
  .loc 1 10 0
  ret
  .cfi_endproc
Run Code Online (Sandbox Code Playgroud)

c assembly gcc

15
推荐指数
2
解决办法
5018
查看次数

const成员函数的语义是什么?

我知道该函数不允许更改对象的状态,但我想我在某处读过允许编译器假设如果使用相同的参数调用函数,它将返回相同的值,因此可以重用缓存值(如果可用).例如

class object
{
    int get_value(int n) const
    {
        ...
    }

...


object x;

int a = x.get_value(1);
    ...
int b = x.get_value(1);
Run Code Online (Sandbox Code Playgroud)

然后编译器可以优化第二个调用,并使用寄存器中的值或只是执行 b = a;

这是真的?

c++ methods const

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

您从QA收到的最可疑的错误报告是什么?

有一段时间你会得到一个错误报告,通常来自质量保证的新人,他们可能还没有完全理解该产品,这会让你挑起眉毛.

我会从一个我的团队(发展和QA)在它发生几年后仍然笑的开始.

我正在处理的产品有一个带有一组按钮的工具栏,可以切换应用程序状态的某些方面.我收到了一个错误报告,其中说"当你按下按钮[x]时,它会卡住.你必须再次推它才能让它脱落."

qa bug-reporting

12
推荐指数
3
解决办法
1335
查看次数

正确初始化成员引用

class Temp {
    public : 
        Temp(X& x): x_(x) {}
        Temp(X& x, Y& y) : x_(x), y_(y) {}
        ...
    private:
        X& x_;
        Y& y_;
}
Run Code Online (Sandbox Code Playgroud)

我得到了错误,因为如果Temp(X& x): x_(x)引用y_没有初始化.正确编写这样一个类的常见做法是什么?

c++ constructor

11
推荐指数
3
解决办法
9113
查看次数

如何使用py2exe打包Twisted程序?

我尝试使用py2exe打包一个Twisted程序,但是一旦我运行了我构建的exe文件,我就得到了一个"No module named resource"错误.

我发现py2exe说:

以下模块似乎缺失['FCNTL','OpenSSL','email.Generator','email.Iterators','email.Utils','pkg_resources','pywintypes','resource','win32api', 'win32con','win32event','win32file','win32pipe','win32process','win32security']

那么我该如何解决这个问题呢?

谢谢.

python twisted py2exe

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

有人知道Java的邮件(SMTP)交付库吗?

我想发送邮件而不用打扰用于传递的SMTP服务器.

所以JavaMail API对我不起作用,因为我必须指定要连接的SMTP服务器.

我希望图书馆通过查询邮件地址域的MX记录,自行查找哪个SMTP服务器负责哪个电子邮件地址.

我正在寻找像阿司匹林这样的东西.不幸的是我不能使用Aspirin本身,因为开发已经停止了2004,并且库无法正确地与现代垃圾邮件强化服务器通信.

詹姆斯的可嵌入版本可以完成任务.但我还没有找到关于这是否可行的文件.

或者有没有人知道我可以使用的其他库?

java email smtp james

10
推荐指数
2
解决办法
7351
查看次数

有没有办法在VC++中使用预编译的头文件而不需要stdafx.h?

我有一堆遗留代码,我需要编写单元测试.它在任何地方使用预编译的头文件,因此几乎所有.cpp文件都依赖于stdafx.h,这使得为了编写测试而难以破坏依赖性.

我的第一直觉是删除所有这些stdafx.h文件,这些文件大部分都包含#include指令,并根据需要将这些#includes直接放在源文件中.

这将使得必须关闭预编译的头文件,因为它们依赖于像stdafx.h这样的文件来确定预编译头文件的停止位置.

有没有办法保留没有stdafx.h依赖项的预编译头文件?有没有更好的方法来解决这个问题?

c++ dependencies unit-testing precompiled-headers stdafx.h

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

修剪/删除字符串中的选项卡("\ t")

任何人都可以建议一种从字符串中剥离制表符("\ t")的方法吗?CString或std :: string.

例如,"1E10"变为"1E10".

谢谢你的期待.

c++ string tabs

10
推荐指数
3
解决办法
4万
查看次数

您如何在多个项目中集中配置?

我有一个包含只读配置的大约10个项目的解决方案.它们是Web应用程序,Windows服务,控制台应用程序等.除了一个项目之外的所有项目都在同一台服务器上.每个项目都有3个环境 - 开发,测试和生产.所以有30种不同的配置,每种配置都有相当多的设置.在每个应用程序和环境中保持配置一致是很麻烦的.

我注意到大多数配置在每个项目中都很常见,所以我认为以某种方式集中配置会很好.我在某处读到WCF服务可能是一个很好的方法.我想也许包含硬编码静态类的库可能实际上工作正常 - 尽管必须编译以更改配置.理想情况下,配置应该来自实际的.config文件.

您将如何集中管理多个项目的配置?

.net c# configuration wcf config

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

C++标准是否允许使用typedef重命名构造函数?

我很惊讶地发现在VC++ 10中,您可以使用typedef来更改类的构造函数的名称:

#include <iostream>

using namespace std;

class A
{
private:
    typedef A alias;

public:
    alias() { cout << "A ctor" << endl; }
};

int main()
{
    A(); // prints "A ctor"
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是标准的C++还是Microsoft扩展?

c++ constructor typedef

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