小编tde*_*ton的帖子

Visual Studio 2015诊断工具不再有效

我在Windows 7 SP1 64位上运行Visual Studio 2015 Community Edition Update 3,我用它来开发C#应用程序.

我喜欢在调试过程中使用诊断工具来尽早发现性能问题.但是,在过去一个月左右的时间里,他们停止了为我工作(可能与安装Update 3有关,尽管我没有任何信息可以支持).我看到错误消息"在此版本的Windows上调试时无法进行CPU分析.要查看CPU使用情况详细信息,请运行不使用调试器的CPU使用率工具(Debug - > Performance Profiler ...)."

我尝试过没有成功的事情:

  • 完全卸载并重新安装VS.

  • 在我的VS安装上执行修复

  • 确保在调试选项中禁用"使用{Managed,Native}兼容模式".

  • 按照此问题中的说明启用诊断中心日志记录信息.我可以看到的错误消息不会出现在日志中.

即使我创建一个新的WPF项目,这仍然会发生,所以我不相信它有任何项目特定的原因.

还有其他我可以试试的东西吗?显然他们之前都在工作,所以我不相信有关我的Windows版本的错误消息不受支持.

c# wpf diagnostics visual-studio-2015

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

x86 NASM'org'指令含义

我正在关注本教程,作为使用NASM进行x86的bootloader/OS开发的第一次尝试:

http://joelgompert.com/OS/TableOfContents.htm

我正在第4课,这使我的引导程序打印出"Hello,world"字符串.我不理解org指令的含义(指令?).

据我了解,org定义正在执行的程序加载到内存中的位置.在程序中使用任何类型的标签或相对地址时都需要这样做.

假设我的程序中有一个用这样的标签定义的字符串:

szHello db 'Hello, world!', 0
Run Code Online (Sandbox Code Playgroud)

然后我尝试像这样引用该标签(仅相关的片段):

org 0x7c00
xor ax, ax
mov ds, 0
...
mov si, szHello
lodsb
...
int 0x10 ; Print first character of szHello
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么这不等于这个?:

org 0
mov ds, 0x7c00
...
mov si, szHello
lodsb
...
int 0x10
Run Code Online (Sandbox Code Playgroud)

当我运行第一个示例时,我的字符串正确显示.第二个例子不起作用.

如果问题是我的概念问题,也会非常感谢相关文档的指针.

x86 assembly nasm bootloader

13
推荐指数
2
解决办法
8806
查看次数

这是g ++中的优化错误吗?

我不确定我是否在g ++(4.4.1-4ubuntu9)中发现了一个错误,或者我是否做错了什么.我相信我所看到的是通过使用g ++ -O2进行优化而引入的错误.我试图将代码提炼到相关部分.

启用优化后,我有一个失败的ASSERT.禁用优化时,相同的ASSERT不会失败.我想我已经将它追溯到一个函数及其调用者的优化.

系统

  • 语言:C++
  • Ubuntu 9.10
  • g ++ - 4.4.real(Ubuntu 4.4.1-4ubuntu9)4.4.1
  • Linux 2.6.31-22-server x86_64


优化已启用

编译对象: g++ -DHAVE_CONFIG_H -I. -fPIC -g -O2 -MT file.o -MD -MP -MF .deps/file.Tpo -c -o file.o file.cpp

以下是相关代码objdump -dg file.o.

00000000000018b0 <helper_function>:
;; This function takes two parameters:
;; pointer to int: %rdi
;; pointer to int[]: %rsi
    18b0:       0f b6 07                movzbl (%rdi),%eax
    18b3:       83 f8 12                cmp    $0x12,%eax
    18b6:       74 60                   je     1918 <helper_function+0x68>
    18b8:       83 f8 17 …
Run Code Online (Sandbox Code Playgroud)

c++ linux assembly g++

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

Emacs,交互式插入矩形字符串

我经常遇到编辑文本或代码的情况,我想插入一个空格矩形来对齐事物,但我不确切地知道要插入的空格数.

例如,考虑以下(非常人为的)代码段:

void *var = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int intVar = x*y;
int intVar2 = y*z;
Run Code Online (Sandbox Code Playgroud)

在默认的C模式下,M-x align结果如下,这更好:

void *var      = (void *)typedVar;
void *otherVar = voidStarOtherVar;
int   intVar   = x*y;
int   intVar2  = y*z;
Run Code Online (Sandbox Code Playgroud)

但是,假设我想要的对齐(出于某种原因)是这样的:

void *var      = (void *)typedVar;
void *otherVar =         voidStarOtherVar;
int   intVar   =         x*y;
int   intVar2  =         y*z;
Run Code Online (Sandbox Code Playgroud)

我知道这样做的唯一方法是M-x string-rectangle在底部三行,并输入确切的空格数.

但是,我不想(void *)在键入空格之前计算字符数,因此最好有一个"交互式"矩形字符串插入.例如,我在这种交互模式下键入一个空格,我看到它立即反映在文本中.我进入另一个空间,然后插入.通过这种方式,我可以交互地将文本对齐到我想要的位置.

有没有内置的方法来实现这一目标?或者,如果失败了,我可以以某种方式创建此功能吗?

emacs elisp

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

了解CEILING宏用例

我在代码库的实用程序头中找到了以下宏:

#define CEILING(x,y) (((x) + (y) - 1) / (y))
Run Code Online (Sandbox Code Playgroud)

哪个(在这个答案的帮助下)我解析为:

// Return the smallest multiple N of y such that:
//   x <= y * N
Run Code Online (Sandbox Code Playgroud)

但是,无论我多么盯着我们的代码库中如何使用这个宏,我都无法理解这种操作的价值.没有任何用法被评论,这似乎表明它是显而易见的.

任何人都可以为这个宏提供用例的英文解释吗?它可能很明显,我只是看不到它......

c macros ceil

5
推荐指数
2
解决办法
4169
查看次数

使用PCLMULQDQ计算CRC32的常量

我正在阅读以下有关如何使用Intel Westmere和AMD Bulldozer中引入的PCLMULQDQ指令有效实现CRC32的文章:

V. Gopal等."使用PCLMULQDQ指令对通用多项式进行快速CRC计算." 2009. http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf

我理解算法,但我不确定的一件事是如何计算常数$ k_i $.例如,它们为IEEE 802.3多项式提供常量值:

  • k1 = x ^(4*128 + 64)mod P(x)= 0x8833794C
  • k4 = x ^ 128 mod P(x)= 0xE8A45605
  • mu = x ^ 64 div P(x)= 0x104D101DF

等等.我可以使用这些常量,因为我只需要支持一个多项式,但我很感兴趣:他们是如何计算这些数字的?我不能只使用典型的bignum实现(例如Python提供的实现),因为算法必须在GF(2)中进行.

crc32 sse galois-field modular-arithmetic

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