]>
sourceware.org Git - systemtap.git/blob - setupdwfl.h
1 // Setup routines for creating fully populated DWFLs. Used in pass 2 and 3.
2 // Copyright (C) 2009-2011 Red Hat, Inc.
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
10 #define SETUP_DWFLPP_H
12 #ifndef NT_GNU_BUILD_ID
13 #define NT_GNU_BUILD_ID 3
23 #if defined(HAVE_TR1_MEMORY)
25 using std::tr1::shared_ptr
;
26 #elif defined(HAVE_BOOST_SHARED_PTR_HPP)
27 #include <boost/shared_ptr.hpp>
28 using boost::shared_ptr
;
30 #error "No shared_ptr implementation found; get boost or modern g++"
34 #include <elfutils/libdwfl.h>
40 StapDwfl(Dwfl
*d
) : dwfl(d
) { }
41 ~StapDwfl() { if (dwfl
) dwfl_end (dwfl
); }
44 typedef shared_ptr
<StapDwfl
> DwflPtr
;
46 DwflPtr
setup_dwfl_kernel(const std::string
&name
,
48 systemtap_session
&s
);
49 DwflPtr
setup_dwfl_kernel(const std::set
<std::string
> &names
,
51 systemtap_session
&s
);
53 DwflPtr
setup_dwfl_user(const std::string
&name
);
54 DwflPtr
setup_dwfl_user(std::vector
<std::string
>::const_iterator
&begin
,
55 const std::vector
<std::string
>::const_iterator
&end
,
56 bool all_needed
, systemtap_session
&s
);
58 // user-space files must be full paths and not end in .ko
59 bool is_user_module(const std::string
&m
);
61 int 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
);
69 int execute_abrt_action_install_debuginfo_to_abrt_cache (std::string hex
);
70 std::string
get_kernel_build_id (systemtap_session
&s
);
71 int download_kernel_debuginfo (systemtap_session
&s
, std::string hex
);
This page took 0.037333 seconds and 5 git commands to generate.