1 /* -*- mode: C; c-file-style: "linux" -*- */
3 /* MemProf -- memory profiler and leak detector
4 * Copyright 1999, 2000, 2001, Red Hat, Inc.
5 * Copyright 2002, Kristian Rietveld
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #include "leakdetect.h"
32 typedef struct _ProcessWindow ProcessWindow
;
34 struct _ProcessWindow
{
39 GtkWidget
*main_window
;
40 GtkWidget
*main_notebook
;
41 GtkWidget
*n_allocations_label
;
42 GtkWidget
*profile_status_label
;
43 GtkWidget
*bytes_per_label
;
44 GtkWidget
*total_bytes_label
;
46 GtkWidget
*profile_func_tree_view
;
47 GtkWidget
*profile_caller_tree_view
;
48 GtkWidget
*profile_descendants_tree_view
;
50 GtkWidget
*leak_block_tree_view
;
51 GtkWidget
*leak_stack_tree_view
;
53 GtkWidget
*usage_max_label
;
54 GtkWidget
*usage_area
;
60 guint status_update_timeout
;
62 GtkWidget
*time_graph
;
64 guint memstats
[MEMSTATS
][2];
68 void tree_window_show (void);
69 void tree_window_add (ProcessWindow
*window
);
70 void tree_window_remove (ProcessWindow
*window
);
72 MPProcess
* process_window_get_process (ProcessWindow
*pwin
);
73 gboolean
process_window_visible (ProcessWindow
*pwin
);
74 MPProcess
* process_window_get_process (ProcessWindow
*pwin
);
75 void process_window_show (ProcessWindow
*pwin
);
76 void process_window_hide (ProcessWindow
*pwin
);
78 void process_window_maybe_kill (ProcessWindow
*pwin
);
79 void process_window_maybe_detach (ProcessWindow
*pwin
);
81 gboolean
hide_and_check_quit (GtkWidget
*window
);
82 void check_quit (void);
84 gboolean
time_graph_expose_event(GtkWidget
*widget
, GdkEventExpose
*event
, ProcessWindow
*pwin
);
85 gboolean
mem_map_expose_event(GtkWidget
*widget
, GdkEventExpose
*event
, ProcessWindow
*pwin
);
86 void dw_update(ProcessWindow
*pwin
);