コード例 #1
0
ファイル: execution-context.cpp プロジェクト: QiuYe/hhvm
std::string ExecutionContext::getRequestUrl(size_t szLimit) {
  Transport* t = getTransport();
  std::string ret = t ? t->getUrl() : "";
  if (szLimit != std::string::npos) {
    ret = ret.substr(0, szLimit);
  }
  return ret;
}
コード例 #2
0
ファイル: ZendTraceCollector.cpp プロジェクト: PenChief/hhvm
void HPHP::ZendTraceCollector::dump(std::ostream& os)
{
  if ( isCollecting() ) {
    //-----------------------------------
    // Print global information
    //-----------------------------------
    os << ">>GLOBAL\n";
    if ( g_vmContext->getTransport() ) {
      Transport* transport = g_vmContext->getTransport();
      os << "URL|" << transport->getUrl() << "\n";
      os << "SERVER|" << transport->getServerAddr() << ":" << transport->getServerPort() << "\n";
    }
    os << "<<GLOBAL\n";
    
    //-----------------------------------
    // Print callstack
    //-----------------------------------
    os << ">>CALLSTACK\n";
    FrameList_t::const_iterator iter = m_frames.begin();
    
    for(; iter != m_frames.end(); ++iter ) {
      os << std::setw(5) << iter->m_level << std::setw(0) << "|";
      os << iter->m_func.m_name << iter->m_func.m_args << "|" << iter->m_func.m_filename << "|" << iter->m_func.m_linenumber <<  "\n";
    }
    os << "<<CALLSTACK\n";
    
    //-----------------------------------
    // Print call statistics
    //-----------------------------------
    os << ">>CALLS\n";
    MapTimes_t::iterator iterCalls = m_timesCalled.begin();
    for(; iterCalls != m_timesCalled.end(); ++iterCalls ) {
      os << iterCalls->first << "|" << iterCalls->second << "\n";
    }
    os << "<<CALLS\n";
  }
}