小编Cod*_*r32的帖子

如何检测c ++中是否附加了调试器?

我创建了一个宏,

#define DEBUG_BREAK(a) if (a) __asm int 3;
Run Code Online (Sandbox Code Playgroud)

但问题是如果没有附加调试器,程序将运行不正确.

所以我需要知道是否附加了调试器.如果有调试器,应用程序应该调用int 3.否则,它不应该.

我怎么能这样做?

c++ debugging visual-c++

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

将uint64_t rdtsc值转换为uint32_t

我有一个RNG功能xorshift128plus,需要一个Xorshift128PlusKey:

/** 
        * \brief Keys for scalar xorshift128. Must be non-zero.
        * These are modified by xorshift128plus.
        */
        struct Xorshift128PlusKey
        {
            uint64_t s1;
            uint64_t s2;
        };

        /** 
        * \brief Return a new 64-bit random number.
        */
        uint64_t xorshift128plus(Xorshift128PlusKey* key);
Run Code Online (Sandbox Code Playgroud)

我想使用rdtsc(处理器时间戳)为我的RNG 播种.问题是__rdtscmsvc下的内在函数返回64位无符号整数,种子必须是32位无符号整数.什么是对RDTSC转换为种子的最佳方式,同时保留随机性.转换必须尽可能快.

我不能使用std libboost.(这是一个游戏引擎)

c++ random integer rdtsc unsigned-integer

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

标签 统计

c++ ×2

debugging ×1

integer ×1

random ×1

rdtsc ×1

unsigned-integer ×1

visual-c++ ×1