168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// Copyright (c) 2007, Google Inc. 268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// All rights reserved. 368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// 468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// Redistribution and use in source and binary forms, with or without 568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// modification, are permitted provided that the following conditions are 668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// met: 768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// 868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// * Redistributions of source code must retain the above copyright 968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// notice, this list of conditions and the following disclaimer. 1068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// * Redistributions in binary form must reproduce the above 1168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// copyright notice, this list of conditions and the following disclaimer 1268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// in the documentation and/or other materials provided with the 1368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// distribution. 1468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// * Neither the name of Google Inc. nor the names of its 1568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// contributors may be used to endorse or promote products derived from 1668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// this software without specific prior written permission. 1768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// 1868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 2168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 3068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai// ./dump_syms dump_syms_regtest.pdb > dump_syms_regtest.sym 3168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 3268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovainamespace google_breakpad { 3368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 3468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaiclass C { 3568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai public: 3668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai C() : member_(1) {} 3768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai virtual ~C() {} 3868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 3968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai void set_member(int value) { member_ = value; } 4068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai int member() const { return member_; } 4168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 4268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai void f() { member_ = g(); } 4368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai virtual int g() { return 2; } 4468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai static char* h(const C &that) { return 0; } 4568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 4668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai private: 4768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai int member_; 4868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai}; 4968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 5068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaistatic int i() { 5168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai return 3; 5268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai} 5368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 5468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai} // namespace google_breakpad 5568004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 5668004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovaiint main(int argc, char **argv) { 5768004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai google_breakpad::C object; 5868004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai object.set_member(google_breakpad::i()); 5968004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai object.f(); 6068004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai int value = object.g(); 6168004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai char *nothing = object.h(object); 6268004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai 6368004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai return 0; 6468004c84d6b852cfd4096cd211d2f8d3ff1d9f48mmentovai} 65