]> sourceware.org Git - systemtap.git/blame - setupdwfl.h
Give information about online servers and which servers were specified when no suitab...
[systemtap.git] / setupdwfl.h
CommitLineData
3db9c843 1// Setup routines for creating fully populated DWFLs. Used in pass 2 and 3.
1e6e9ec1 2// Copyright (C) 2009-2011 Red Hat, Inc.
3db9c843
MW
3//
4// This file is part of systemtap, and is free software. You can
5// redistribute it and/or modify it under the terms of the GNU General
6// Public License (GPL); either version 2, or (at your option) any
7// later version.
8//
9#ifndef SETUP_DWFLPP_H
10#define SETUP_DWFLPP_H
11
68678008
CM
12#ifndef NT_GNU_BUILD_ID
13#define NT_GNU_BUILD_ID 3
14#endif
15
3db9c843
MW
16#include "config.h"
17#include "session.h"
18
19#include <set>
20#include <string>
5f8ca04f 21#include <vector>
3db9c843 22
469c1a1b 23#if defined(HAVE_TR1_MEMORY)
68983551 24#include <tr1/memory>
469c1a1b
FCE
25using std::tr1::shared_ptr;
26#elif defined(HAVE_BOOST_SHARED_PTR_HPP)
27#include <boost/shared_ptr.hpp>
28using boost::shared_ptr;
29#else
30#error "No shared_ptr implementation found; get boost or modern g++"
31#endif
68983551 32
3db9c843
MW
33extern "C" {
34#include <elfutils/libdwfl.h>
35}
36
68983551
MW
37struct StapDwfl
38{
39public:
40 StapDwfl(Dwfl *d) : dwfl(d) { }
41 ~StapDwfl() { if (dwfl) dwfl_end (dwfl); }
42 Dwfl *dwfl;
43};
469c1a1b 44typedef shared_ptr<StapDwfl> DwflPtr;
68983551
MW
45
46DwflPtr setup_dwfl_kernel(const std::string &name,
47 unsigned *found,
48 systemtap_session &s);
49DwflPtr setup_dwfl_kernel(const std::set<std::string> &names,
50 unsigned *found,
51 systemtap_session &s);
52
53DwflPtr setup_dwfl_user(const std::string &name);
54DwflPtr setup_dwfl_user(std::vector<std::string>::const_iterator &begin,
55 const std::vector<std::string>::const_iterator &end,
e1e8b44e 56 bool all_needed, systemtap_session &s);
5f8ca04f
MW
57
58// user-space files must be full paths and not end in .ko
59bool is_user_module(const std::string &m);
60
e1e8b44e
CM
61int internal_find_debuginfo (Dwfl_Module *mod,
62 void **userdata __attribute__ ((unused)),
63 const char *modname __attribute__ ((unused)),
64 GElf_Addr base __attribute__ ((unused)),
65 const char *file_name,
66 const char *debuglink_file,
67 GElf_Word debuglink_crc,
68 char **debuginfo_file_name);
69int execute_abrt_action_install_debuginfo_to_abrt_cache (std::string hex);
ecd129af
CM
70std::string get_kernel_build_id (systemtap_session &s);
71int download_kernel_debuginfo (systemtap_session &s, std::string hex);
e1e8b44e 72
3db9c843 73#endif
This page took 0.060752 seconds and 5 git commands to generate.