小编kam*_*iro的帖子

精确定位"条件跳转或移动取决于未初始化的值"valgrind消息

所以我一直在从valgrind那里得到一些神秘的未初始化的价值信息,这一直是神秘的,因为坏的价值源于何处.

似乎valgrind显示了最终使用的单位化值的位置,而不是未初始化值的来源.

==11366== Conditional jump or move depends on uninitialised value(s)
==11366==    at 0x43CAE4F: __printf_fp (in /lib/tls/i686/cmov/libc-2.7.so)
==11366==    by 0x43C6563: vfprintf (in /lib/tls/i686/cmov/libc-2.7.so)
==11366==    by 0x43EAC03: vsnprintf (in /lib/tls/i686/cmov/libc-2.7.so)
==11366==    by 0x42D475B: (within /usr/lib/libstdc++.so.6.0.9)
==11366==    by 0x42E2C9B: std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const (in /usr/lib/libstdc++.so.6.0.9)
==11366==    by 0x42E31B4: std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::do_put(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, double) const (in /usr/lib/libstdc++.so.6.0.9)
==11366==    by 0x42EE56F: std::ostream& std::ostream::_M_insert<double>(double) (in /usr/lib/libstdc++.so.6.0.9)
==11366==    by 0x81109ED: …
Run Code Online (Sandbox Code Playgroud)

c++ valgrind

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

用linux控制USB电源(开/关)

是否可以使用linux手动打开/关闭USB电源?

有这个外置USB散热风扇(你用来冷却自己的那种,而不是PC),能够从终端控制它会很好,因为我想将风扇定位在远处.

我想这也适用于其他各种各样的东西,因为那里有很多USB玩具.也许是空气净化器等(我听说它们确实不起作用).

linux usb

156
推荐指数
8
解决办法
21万
查看次数

如何从C++程序中测量内存使用情况?

对于c ++程序,是否有可能跟踪程序一次使用多少内存?

例如,一个带有原型的函数:

int getEstimatedTotalMemoryUsage();
Run Code Online (Sandbox Code Playgroud)

我想如果不可能,那么就必须离开程序,进行系统调用并从那里检查结果.如果是这样,有哪些工具可用于此类目的?假设这样的事情是可能的,那就是.

编辑:我正在使用linux,任何可以为你做这个的工具?

c++ memory-management

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

安全清除内存并重新分配

这里讨论之后,如果你想要一个安全的类来存储内存中的敏感信息(例如密码),你必须:

  • memset /在释放之前清除内存
  • 重新分配也必须遵循相同的规则 - 而不是使用realloc,使用malloc创建一个新的内存区域,将旧的复制到新的,然后memset /清除旧的内存,最后释放它

所以这听起来不错,我创建了一个测试类来查看它是否有效.所以我做了一个简单的测试用例,我继续添加单词"LOL"和"WUT",然后在这个安全缓冲类中加上一个数字大约一千次,破坏该对象,然后再做一些导致核心转储的事情.

由于该类应该在破坏之前安全地清除内存,因此我不应该在coredump上找到"LOLWUT".但是,我设法找到它们,并想知道我的实现是否只是错误.但是,我尝试使用CryptoPP库的SecByteBlock做同样的事情:

#include <cryptopp/osrng.h>
#include <cryptopp/dh.h>
#include <cryptopp/sha.h>
#include <cryptopp/aes.h>
#include <cryptopp/modes.h>
#include <cryptopp/filters.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
using namespace std;

int main(){
   {
      CryptoPP::SecByteBlock moo;

      int i;
      for(i = 0; i < 234; i++){
         moo += (CryptoPP::SecByteBlock((byte*)"LOL", 3));
         moo += (CryptoPP::SecByteBlock((byte*)"WUT", 3));

         char buffer[33];
         sprintf(buffer, "%d", i);
         string thenumber (buffer);

         moo += (CryptoPP::SecByteBlock((byte*)thenumber.c_str(), thenumber.size()));
      }

      moo.CleanNew(0);

   }

   sleep(1);

   *((int*)NULL) = 1;

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后编译使用:

g++ clearer.cpp -lcryptopp …
Run Code Online (Sandbox Code Playgroud)

c++ memory security passwords cryptography

23
推荐指数
2
解决办法
5782
查看次数

确定可用的视频内存

在开发OpenGL程序时,是否有办法从系统中进行轮询以找出可用于存储纹理的数兆字节等?

或者这些日子的标准方法是分配内存而忘记一切?

memory opengl

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

非复制istringstream

因此istringstream,在初始化时复制字符串的内容,例如

string moo("one two three four");
istringstream iss(moo.c_str());
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法std::istringstream使用给定c_str的缓冲区而不复制东西.这样,在传递std::istringstream&istream&作为参数的函数之前,它不必复制大量内存.

我一直在努力做的是转换一些只接受std::ifstream&参数的函数(它们主要是解析器)istream&.我是否必须为此创建自己的istream子类?

c++ istream istringstream

11
推荐指数
2
解决办法
2869
查看次数

从iOS获取反向地理编码当前位置的最简单方法

我在这里看到另一个问题:确定iPhone用户的国家/地区可以获得iPhone用户所在的当前国家/地区.

这对于许多用途来说非常方便.但是,是否可以更深入地推断iOS(如果有信息)用户所处的州或城市?

如果事情不可能的话,我认为反向地理编码服务将是下一步.有没有可以为您的应用程序雇用的反向地理编码服务?

geolocation reverse-geocoding ios

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

从套接字选择中断

我有一个循环,基本上每隔几秒(超时后)调用它:

 while(true){

    if(finished)
       return;

    switch(select(FD_SETSIZE, &readfds, 0, 0, &tv)){
        case SOCKET_ERROR : report bad stuff etc; return;
        default : break;
    }

    // do stuff with the incoming connection
 }
Run Code Online (Sandbox Code Playgroud)

因此,基本上每隔几秒(由tv指定),它会重新激活监听.

这是在线程B(不是主线程)上运行的.有时我想从线程A(主线程)立即结束这个接受器循环,但似乎我必须等到时间间隔结束.

有没有办法从另一个线程中断选择函数,以便线程B可以立即退出?

c c++ sockets

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

屏幕锁定时启用iPhone加速度计

显然,当屏幕被锁定时,可以让处理器继续处理,如下所示:

在睡眠模式下运行iPhone应用程序

但是,在使用示例代码进行测试后,UIAccelerometer将在设备锁定后立即停止给出值.有没有办法强迫别的?

iphone accelerometer sleep-mode

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

从OpenGL ES 1.1过渡到OpenGL ES 2.0

iPhone 3GS推出已经有一段时间了,现在可能有足够的OpenGL ES 2.0支持设备的市场份额,以保证在其中发展.

但是情况是很多开发人员可能已经在OpenGL ES 1.1中拥有庞大的代码库

如何将ES 1.1转换为ES 2.0?我想矩阵需要处理,以及像GL_FOG,GL_CULL这样的东西可能吗?

是否可以为这些函数编写"替代品",例如你自己的glTranslatef,glPushmatrix等?这是否会影响性能?

转换到ES 2.0还有哪些其他考虑因素?使用其中任何一个都有哪些优点和缺点(除了明显的设备支持问题)?

查看与stackoverflow中的标准es标签相比es 2.0标签的数量,看起来它不是2.0的时间.

iphone opengl-es opengl-es-2.0

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