继承iostream和streambuf会给出一个奇怪的起始地址msg

时间:2014-06-19 08:50:44

标签: c++ linux stl iostream

我有一个类记录器,它实现了streambuf和iostream,并覆盖了xsputn和overflow .. 这已经有一段时间了...

class Logger : public std::iostream, public std::streambuf {
    virtual std::streamsize xsputn(const char* s, std::streamsize n);
    virtual int overflow(char c);
}

突然间(我怀疑有一些编译标志..),我每次追加它时都会得到一些起始地址作为字符串,这就是我在GDB中看到的:

Breakpoint 2, Logger::xsputn (this=0x7fffffffb2d0, s=0x7fffffffae30 "0x4d927a\356\330\060\367\377\177", n=8)
Breakpoint 2, Logger::xsputn (this=0x7fffffffb2d0, s=0x4d95cf "sending body: ", n=14) 

发送的实际身体的地址看起来非常类似于我在开始时得到的追加......任何人都知道它是什么?或者如何设置忽略它/设置它不会来?我怀疑一些编译标志,如fPIC

由于

0 个答案:

没有答案