Remove FIXME.
[platform/upstream/sysprof.git] / ChangeLog
1 2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>
2
3         * collector.c (collector_create_profile): Remove FIXME.
4
5 2007-03-02  Soren Sandman <sandmann@daimi.au.dk>
6
7         * process.c (free_process): Free the undefined symbol
8
9 2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>
10
11         * process.c (process_get_vdso_bytes): Make a copy of the vdso
12         bytes to make valgrind a little quieter.
13
14         * binparser.c: Note to self: Save the file, *then* commit.
15         
16 2007-03-02  Soren Sandmann <sandmann@daimi.au.dk>
17
18         Fix two leaks, both pointed out by Kjartan Maraas
19         
20         * binparser.c (bin_parser_free): Free the record list 
21
22         * elfparser.c (elf_parser_free): Free the symbol table. 
23
24 2007-02-24  Soren Sandmann <sandmann@daimi.au.dk>
25
26         * TODO: Updates
27
28         * binparser.[ch]: Get rid of BIN_UINTn types; replace with single
29         BIN_UINT, where the user must provide the width
30
31         * elfparser.c: Update to new binparser API
32
33 2007-02-24  Soren Sandman <sandmann@daimi.au.dk>
34
35         * binparser.[ch]: Switch to a simpler conceptual model.
36         * elfparser.c: Update to binparser API changes.
37         * TODO: updates
38
39 Fri Feb  9 16:53:29 2007  Søren Sandmann  <sandmann@redhat.com>
40
41         * Update copyright notices
42
43 Fri Feb  9 16:16:34 2007  Søren Sandmann  <sandmann@redhat.com>
44
45         * elfparser.c (struct ElfSym): Don't store the size of the symbol.
46         (elf_parser_lookup_symbol): Look it up here instaed.
47
48         * binfile.c (bin_file_free): Use pre-decrement instead of
49         post-decrement.
50         (bin_file_check_inode): Clarify the warning a little
51
52 Mon Jan 22 17:42:29 2007  Søren Sandmann  <sandmann@redhat.com>
53
54         * sysprof-icon-32.png
55         * sysprof.c: Add a 32x32 version (also from Diana) of the icon.
56
57 Mon Jan 22 16:37:12 2007  Søren Sandmann  <sandmann@redhat.com>
58
59         * sysprof-icon-16/24/48.png:
60         * sysprof.c: Add new icons from Diana.
61
62 2007-01-05  Behdad Esfahbod  <behdad@gnome.org>
63
64         * module/Makefile: Correct $PWD usage, so make install works from
65         inside module/.
66
67 2006-12-09  Soren Sandmann <sandmann@daimi.au.dk>
68
69         * module/sysprof-module.c: Add forgotten put_cpu_var(). 
70         * sfile.c (build_instructions): Parse in chunks of 65536 to
71         improve locality.
72
73 2006-11-23  Soren Sandmann <sandmann@daimi.au.dk>
74
75         * process.c (read_maps): Set inode for vdso to 0.
76
77         * binfile.c (read_inode): Return -1 on error, 0 on vdso
78         (bin_file_new): Only read the inode if the file actually exists
79         and is an elf file.
80         (bin_file_check_inode): Return FALSE if there is no file.
81
82 2006-11-22  Soren Sandmann <sandmann@daimi.au.dk>
83
84         * sfile.c (sfile_load): Use GMappedFile instead
85         g_file_get_contents().
86         (build_instructions): Pass length instead of -1.
87         (sfile_output_save): Use g_file_set_contents() instead of
88         cut-and-pasted copy.
89
90 2006-11-22  Soren Sandmann <sandmann@daimi.au.dk>
91
92         * profile.c (add_trace_to_tree): Move match to front
93         (add_trace_to_tree): Break as soon as a recursive call is found.
94
95         * stackstash.c (do_callback): Manual tail call optimization.
96
97 2006-11-20  Soren Sandmann <sandmann@daimi.au.dk>
98
99         * sysprof.c (ensure_profile): reset the collector after generating
100         the profile.
101
102         * stackstash.c (struct StackStash): Add cached_nodes and blocks. 
103         (stack_node_new): Allocate stack nodes in blocks.
104
105 2006-11-19  Soren Sandmann <sandmann@redhat.com>
106
107         * profile.c (profile_load): Use stack allocated variables to avoid
108         taking addresses of bitfields.
109
110         * stackstash.h (struct StackNode): Store toplevel as bitfield
111
112 2006-11-19  Soren Sandmann <sandmann@redhat.com>
113
114         * profile.c (profile_load): Use stack_node_new() o
115         (profile_load): Use set_root() instead of new_from_root();
116         
117         * stackstash.c (stack_stash_new_from_root): Delete this function
118         (stack_stash_set_root): Add this function
119         (stack_node_new): Export this function
120
121 2006-11-19   Soren Sandmann <sandmann@redhat.com>
122
123         * binparser.h: Declare bin_parser_free();
124
125         * elfparser.c (elf_parser_get_crc32): Use madvise(DONT_NEED) on
126         the file.
127         
128         * process.c (struct Process): Remove do_offset.
129
130 Thu Nov  9 17:55:24 2006  Søren Sandmann  <sandmann@redhat.com>
131
132         * TODO (-): udpate
133
134 Thu Nov  9 17:31:17 2006  Søren Sandmann  <sandmann@redhat.com>
135
136         * binfile.c (get_debug_file): Start with "/usr", not
137         "usr". Pointed out by Tim Rowley.
138
139         * binparser.c (bin_parser_align): Pass byte_width on instead of
140         hardcoding 4. 
141
142 Thu Nov  9 16:47:35 2006  Søren Sandmann  <sandmann@redhat.com>
143
144         Look in the correct directory for debug info files. (Tim Rowley)
145         
146         * binfile.c (N_TRIES): Add this instead of hardcoding '3'
147
148         * binfile.c (get_debug_file): Also look in "/usr/lib/debug", in
149         addition to "$(libdir)/debug".
150
151         * binfile.c: Comment out the debug spew.
152
153 Thu Nov  9 16:17:11 2006  Søren Sandmann  <sandmann@redhat.com>
154
155         * binfile.c: Add debug spew.
156
157 Thu Nov  9 16:01:47 2006  Søren Sandmann  <sandmann@redhat.com>
158
159         * sysprof-text.c (main): Die immediately if the output file is a
160         directory.
161
162         * autogen.sh (DIE): Also work when automake-1.9 is installed. 
163
164 2006-11-02  Soren Sandmann <sandmann@daimi.au.dk>
165
166         * sysprof.c (disable_g_slice): New function
167
168         * sysprof.c (main): Call it from here.
169
170 2006-11-02  Soren Sandmann <sandmann@daimi.au.dk>
171
172         Valgrind:
173         
174         * binparser.c (bin_parser_free): Add this function
175         
176         * elfparser.c (elf_parser_free): Call bin_parser_free()
177
178         * sysprof.c (compute_text_width, add_text): Plug leaks
179
180         * collector.c (add_trace_to_stash): Copy n_addresses to a stack
181         variable instead of reading it out of the mmap'ed area all the
182         time. (That way if there is an overrun, we won't write too much
183         into the address array).
184
185 2006-10-26  Soren Sandmann <sandmann@daimi.au.dk>
186
187         * module/sysprof-module.h (struct SysprofStackTrace): Increase the
188         max number of addresses to 1021, reorganise SysprofMmapArea to
189         make the traces naturally page aligned.
190
191         * TODO: Update
192
193 2006-10-26  Soren Sandmann <sandmann@daimi.au.dk>
194
195         * collector.c (resolve_symbols): Combine processes with identical
196         commandlines here.
197
198 2006-10-25  Soren Sandmann <sandmann@daimi.au.dk>
199
200         * profile.c (add_trace_to_tree): Make the pointer array static to
201         improve cache behavior and reduce calls to malloc().
202
203         * process.c (lookup_kernel_symbol): Remove obsolete comment.
204
205 2006-10-25  Soren Sandmann <sandmann@daimi.au.dk>
206
207         * process.c (free_maps): Take a pointer to a variable that will be
208         set to 0.
209
210         * process.c: Stop coalescing processes with the same cmdline. 
211
212         * TODO: updates.
213
214 2006-10-24  Soren Sandmann <sandmann@daimi.au.dk>
215
216         * process.c (page_size): replace PAGE_SIZE macro with this function.
217
218         * binfile.c: Remove obsolete comment.
219
220 2006-10-24  Soren Sandmann <sandmann@daimi.au.dk>
221
222         * process.c (struct Process): Use an array instead of list of
223         maps.
224
225 2006-10-23  Soren Sandmann <sandmann@daimi.au.dk>
226
227         * module/sysprof-module.c (init_module): Use PAGE_SIZE - 1 instead
228         of 4096.
229
230 2006-10-22  Soren Sandmann <sandmann@daimi.au.dk>
231
232         Communicate traces to userspace through shared memory instead of 
233         copying.
234         
235         * module/sysprof-module.c: Store the traces in a SysprofMmapArea.
236         (sysprof_mmap): Implement this method.
237         (sysprof_nopage): Implement this. 
238         (sysprof_read): Just reset the tail pointer and return zero.
239
240         * module/sysprof-module.h (struct SysprofMmapArea): New
241         structure. 
242
243         * collector.c (collector_stop): Unmap the device
244         (in_dead_period): New function
245         (on_read): Read the traces out of mmap()ed area instead of reading
246         them. Call read() to prevent poll() from firing. 
247         (struct Collector): New members map_area and current.
248
249         * Makefile.am (insert-module): Prefix modprobe with /sbin
250
251         * collector.c (open_fd): mmap() the sysprof device. 
252
253 2006-10-11  Soren Sandmann <sandmann@daimi.au.dk>
254
255         * profile.c (profile_list_callers): Skip nodes that don't have a
256         parent.
257
258 2006-10-09  Soren Sandmann <sandmann@daimi.au.dk>
259
260         * profile.c (profile_list_callers): Make this function return a
261         list of immediate callers again. 
262
263         * sysprof.c (build_gui): Change label back to "Callers"
264
265         * process.c (get_kernel_symbols): Only attempt to read the kernel
266         symbols once.
267
268 2006-10-09  Soren Sandmann <sandmann@redhat.com>
269
270         * binfile.c (bin_file_get_inode): Remove this function
271
272         * binfile.c (bin_file_check_inode): New function. Only print inode
273         warning once per BinFile.
274
275         * process.c (process_get_vdso_bytes): Remove debug spew
276
277 2006-10-09  Soren Sandmann  <ssp@localhost.localdomain>
278
279         * process.c (process_get_vdso_bytes): New function.
280
281         * elfparser.c (parser_new_from_data): export this function as
282         elf_parser_new_from_data(). 
283
284         * binfile.c (read_inode): Don't stat if filename is
285         '[vdso]'. Instead just return -1;
286         (bin_file_new): Use elf_parser_new_from_data() when the file is
287         [vdso]. 
288
289         * process.c (read_maps): Change the offset of the vdso map to 0
290         and the inode to -1.
291
292         * elfparser.c (elf_parser_lookup_symbol): Remove unused 'size'
293         variable.
294
295         * binfile.c (find_separate_debug_file): Deal with cycles in the
296         debuglink graph.
297
298         * configure.ac: Set version to 1.1.0. Print warning about HEAD.
299
300 2006-10-08  Soren Sandmann  <ssp@localhost.localdomain>
301
302         * binfile.c: Don't include bfd.h
303
304 2006-10-08  Soren Sandmann <sandmann@redhat.com> 
305
306         * sysprof.c (process_options): New function to support --version option
307
308 2006-10-08  Soren Sandmann  <sandmann@redhat.com>
309
310         * elfparser.c (struct ElfParser): Add a cache of the text section.
311
312         * binparser.c (struct BinParser): Add a cache of a bin record to
313         get rid of malloc()/free() overhead.
314
315         * elfparser.c (struct ElfSym): Cache the size of the symbol
316
317 2006-10-08  Soren Sandmann <sandmann@redhat.com>
318
319         * elfparser.c: Remove now unused load-address heuristic
320
321         * comment out debug spew
322
323 2006-10-08  Soren Sandmann <sandmann@redhat.com>
324
325         * elfparser.c (read_symbols): Use "SHT_DYNSYM" for ".dynsym".
326
327 2006-10-08  Soren Sandmann <sandmann@daimi.au.dk>
328
329         * binfile.c (find_separate_debug_file): Support _debuglink
330         recursions.
331
332         * elfparser.c: Check that the sections have valid types before
333         using them. 
334
335 2006-10-08  Soren Sandmann  <sandmann@daimi.au.dk>
336
337         * Delete various debug spew
338
339 2006-10-07  Soren Sandmann  <sandmann@daimi.au.dk>
340
341         Deal with address offsets. Address lookup is now:
342
343         - First convert the address to an offset into the file
344         - Then convert to an offset into the text segment
345         - Then add the load address of the text segment (found in the
346         debug binary)
347         - Then finally lookup the result in the symbol table.
348         
349         * elfparser.c (elf_parser_get_text_offset): New function
350
351         * elfparser.c (elf_parser_lookup_symbol): Treat addresses as
352         offsets into the text segment.
353
354         * binfile.c (bin_file_new): Store the offset of the text section
355         of the actual binary (not the debug one)
356
357         (bin_file_lookup_symbol): Subtract text_offset before passing
358         address to elf parser. 
359
360         * module/sysprof-module.c: Remove include of linux/config.h
361
362 2006-08-27  Soren Sandmann <sandmann@redhat.com>
363
364         * binparser.c: Remove old commented out code
365         * module/sysprof-module.c: Add commented out code accessing entire
366         stack. 
367
368 2006-08-27  Soren Sandmann  <sandmann@redhat.com>
369
370         * module/Makefile ($(MODULE).o): Add dependency on sysprof-module.h
371
372         * elfparser.c (elf_parser_get_eh_frame): Add this function.
373         Remove some commented out code.
374
375 Sat Aug 26 19:05:51 2006  Søren Sandmann  <sandmann@redhat.com>
376
377         * Formatting fixes in header files.
378
379 2006-08-26  Soren Sandmann <sandmann@daimi.au.dk>
380
381         * elfparser.c: Update to new API
382         
383         * binparser.h: Delete commented out declarations. Add new
384         functions.
385
386         * binparser.c: Delete ParserFrame, replace with one current
387         offset. 
388         (convert_uint): Make static
389         (bin_parser_get_uint): Delete this function
390         (bin_parser_get_string): Change this function to use current
391         offset instead of frame offset.
392         (bin_parser_goto): New function
393         (bin_parser_align): New function
394         (bin_parser_get_uint32): New function
395         (bin_parser_begin): Delete this function
396         (bin_parser_end): Delete this function
397         (bin_parser_index): Delete this function
398         (bin_record_get_string_indirect): Make this function use _goto()
399         instead of _begin()/_end()
400         (bin_parser_get_offset): Make this function return current offset
401
402 2006-08-26  Soren Sandmann <sandmann@daimi.au.dk>
403
404         * binparser.[ch]: Add new struct BinRecord. Comment out functions
405         related to formats. Add new functions to get fields out of
406         BinRecords.
407
408         * elfparser.c: Update to new API.
409
410 2006-08-26  Soren Sandmann <sandmann@daimi.au.dk>
411
412         * binparser.h: Add new bin_record() functions
413         * binparser.c: Implement them.
414
415 2006-08-22  Soren Sandmann <sandmann@daimi.au.dk>
416
417         * collector.c (unique_dup): Demangle instead of strdup.
418
419 2006-08-21  Soren Sandmann <sandmann@redhat.com>
420
421         * elfparser.[ch]
422         (elf_parser_get_sym_name): Rename elf_sym_get_* to
423         elf_parser_get_sym_* and make these functions take a parser.
424         (parser_from_sym): Delete this function.
425         (elf_parser_new): Don't add to all_elf_parsers
426         (elf_parser_free): Don't remove from all_elf_parsers
427         (elf_parser_new): Rename to parser_new_from_file()
428         (elf_parser_new_from_file): Rename to elf_parser_new
429
430         * binfile.c: Update for new elfparser API
431
432         * TODO: updates
433
434 2006-08-21  Soren Sandmann <sandmann@redhat.com>
435
436         * binfile.c (struct BinFile): Add ref_count and filename
437         (bin_files): Add map from filenames to BinFiles
438         (bin_file_new): First look for BinFile in the cache.
439         (bin_file_free): If refcount reaches 0, remove BinFile from cache.
440         
441         * TODO: Updates
442
443 2006-08-21  Soren Sandmann <sandmann@redhat.com>
444
445         * process.c (process_lookup_symbol): Pass map->bin_file to
446         bin_symbol_get_name.
447
448         * binfile.h (bin_symbol_get_name): Add BinFile parameter
449
450         * elfparser.c (elf_demangle): Use options DMGL_PARAMS | DMGL_ANSI
451
452         * TODO: Updates
453
454         * binfile.c: Rewrite this file to use ElfParser instead of libbfd.
455
456         * configure.ac: Drop dependencies on libbfd and libiberty.
457
458 2006-08-21  Soren Sandmann <sandmann@redhat.com>
459
460         * TODO: Update
461
462         * elfparser.c (elf_parser_lookup_symbol): Change sense of size
463         check.
464
465 2006-08-20  Soren Sandmann <sandmann@redhat.com>
466
467         * elfparser.c (elf_parser_get_crc32): Initialize crc to 0xffffffff
468         and invert it before returning.
469
470         * elfparser.h: Declare elf_parser_get_debug_link()
471
472 2006-08-20  Soren Sandmann  <sandmann@daimi.au.dk>
473
474         * elfparser.c (elf_parser_get_load_address): Comment out debug spew.
475         (elf_parser_lookup_symbol): Add check that address is actually
476         within the bounds of the found function.
477
478 2006-08-20  Soren Sandmann  <sandmann@daimi.au.dk>
479
480         * process.h: Make process_lookup_symbol() return a string. Delete
481         process_lookup_symbol_with_filename().
482
483         * process.c (struct Process): Make "undefined" a string
484         (lookup_kernel_symbol): Return a string 
485         (process_lookup_symbol): Return a string, not a symbol
486
487         * collector.c (unique_dup): Take a string instead of a
488         Symbol. 
489         (lookup_symbol): Make sym a string instead of a Symbol.
490
491         * binfile.c (bin_symbol_get_name): New function.
492
493         * binfile.[ch] (struct BinSymbol): Rename Symbol to BinSymbol and
494         make it an opaque structure.
495
496         * binfile.[ch]: Remove unused symbol operations
497
498 2006-08-20  Soren Sandmann <sandmann@daimi.au.dk>
499
500         * elfparser.c (elf_parser_new_from_file): New function
501
502 2006-08-20   Soren Sandmann <sandmann@daimi.au.dk>
503
504         * elfparser.c (elf_parser_get_debug_link): New function
505
506         * elfparser.c: Delete SymbolTable typedef
507
508         * binparser.[ch] (bin_parser_get_data): New function
509         (bin_parser_get_length): New function
510
511         * elfparser.[ch] (elf_parser_get_crc32): New function
512
513         * TODO: Updates
514
515         * elfparser.c (elf_parser_lookup_symbol): Offset passed in
516         addresses by the load address.
517
518         * elfparser.c (elf_parser_get_load_address): New function to
519         compute the load address of the beginning of the file.
520
521 2006-08-20  Soren Sandmann  <sandmann@redhat.com>
522
523         * elfparser.c (elf_sym_get_name): Read the name out of the file
524         instead of out of the struct.
525
526         * elfparser.c (struct ElfSym): Store an offset instead of the
527         name. 
528
529         * elfparser.c (all_elf_parsers): Keep track of all elf parsers
530         created.
531         
532 2006-08-20  Soren Sandmann  <sandmann@redhat.com>
533
534         * Makefile.am, demangle.c: New file, made out of files from
535         libiberty in binutils.
536
537         * binfile.c: Use the new sysprof_cplus_demangle() function
538         
539         * elfparser.[ch]: Add code to lookup symbols. Add demangling
540         function
541
542         * testelf.c: Various tests
543
544 2006-08-19  Soren Sandmann  <sandmann@redhat.com>
545
546         * elfparser.c: Many cleanups.
547
548 2006-08-16  Soren Sandmann  <sandmann@redhat.com>
549
550         * testelf.c: Really add this file.
551
552 2006-08-15  Soren Sandmann  <sandmann@redhat.com>
553
554         Add beginning of an ELF parser.
555         
556         * binparser.[ch]: New files
557         * elfparser.[ch]: New files
558         * testelf.c: New file
559         * Makefile.am (testelf_SOURCES): Add new testelf program.
560
561 Sat Aug 12 16:13:05 2006  Søren Sandmann  <sandmann@redhat.com>
562
563         * module/sysprof-module.c: Make n_samples per-cpu. Add an atomic
564         variable in_timer_notify and use it to lock out simultaneous timer
565         interrupts.
566
567         * stackstash.c (decorate_node): Make decorate_node() static
568
569         * TODO
570
571 Fri Aug 11 11:41:15 2006  Søren Sandmann  <sandmann@redhat.com>
572
573         * TODO: Updates
574
575 2006-08-08  Soren Sandmann  <ssp@localhost.localdomain>
576
577         * sysprof.c (main): Make the load_file() idle low priority to
578         avoid weird toolbar flash. 
579
580         * TODO, NEWS, README: updates.
581
582 2006-07-31  Paolo Borelli  <pborelli@katamail.com>
583
584         * sysprof.c (expand_descendants_tree): small cleanup.
585
586 2006-07-31  Soren Sandmann <sandmann@redhat.com>
587
588         * stackstash.[ch]: Add a destroy notifier to StackStash
589
590         * collector.c (collector_create_profile): Pass g_free as destroy
591         notifier.
592
593         * collector.c (collector_reset): Pass NULL as destroy notifier
594
595         * profile.c (profile_load): Pass g_free here.
596
597         * profile.c (struct Profile): Remove unused "Node" typedef 
598
599         * collector.c (resolve_symbols): Free the array here.
600
601         * TODO: various updates.
602         
603 2006-07-30  Soren Sandmann <sandmann@redhat.com>
604
605         * signal-handler.c: Simplify this file a bit, and make it not rely
606         on atomic pointer writes.
607
608 2006-07-18  Bastien Nocera  <hadess@hadess.net>
609
610         * configure.ac: we need at least glib 2.6.0 for the gstdio.h functions
611
612 2006-06-05  Soren Sandmann <sandmann@redhat.com>
613
614         * TODO: Updates
615
616 Sat Apr 22 15:08:01 2006  Soeren Sandmann  <sandmann@redhat.com>
617
618         * TODO: updates
619         * profile.c, sfile.c, sformat.c: Various formatting fixes.
620
621 Wed Apr  5 11:26:30 2006  Søren Sandmann  <sandmann@redhat.com>
622
623         * TODO: updates
624
625 Mon Mar 27 23:04:30 2006  Soeren Sandmann  <sandmann@redhat.com>
626
627         * TODO: Updates.
628
629         * sfile.c (handle_{begin,end}_element): Don't generate begin/end
630         instructions for value elements.
631
632         * sfile.c (build_instructions): Remove debugging spew.
633
634 Mon Mar 27 21:44:04 2006  Soeren Sandmann  <sandmann@redhat.com>
635
636         * sformat.[ch]: New files containing a simplified and sanitized
637         version of the state machine and type system from sfile.c.
638         
639         * sfile.c: Move the state machine and type management to separate
640         files. Make the amount of memory used during loading and saving
641         less obscene.
642
643         * stackstash.c (stack_stash_new_from_root): Make this function
644         store the root again.
645
646 Mon Mar 27 09:55:01 2006  Søren Sandmann  <sandmann@redhat.com>
647
648         * TODO: updates
649
650 2006-03-11 Soren Sandmann <sandmann@redhat.com>
651
652         * TODO: updates
653         
654         * stackstash.[ch]: Make stackstash refcounted
655
656         * collector.c, profile.c: Update for refcounted stackstash, plug
657         leak.
658
659         * collector.c (open_fd): Remove FIXME comment
660
661 2006-03-05 Soeren Sandmann <sandmann@redhat.com>
662
663         * sysprof-text.c, collector.c, sysprof.c: Do proper
664         error-handling.
665
666 Fri Mar  3 22:28:03 2006  Soeren Sandmann  <sandmann@redhat.com>
667
668         * process.c (process_lookup_symbol): Check that the inodes match.
669
670         * binfile.c (read_symbols): Read the inode of the file
671
672         * binfile.c (read_symbols): Close the bfd if the symbol table
673         could not be read.
674
675 Thu Mar  2 22:54:37 2006  Soeren Sandmann  <sandmann@redhat.com>
676
677         * treeviewutils.c (tree_view_foreach_visible): Handle NULL models.
678
679         * sysprof.glade, sysprof.c: Revert back to three pane layout.
680
681 2006-02-17  Bastien Nocera  <hadess@hadess.net>
682
683         * configure.ac:
684         * module/sysprof-module.c: (timer_notify), (sysprof_open),
685         (sysprof_release): more ifdef's to make it work with Red Hat
686         Enterprise Linux 4's 2.6.9-based kernel
687
688 Sat Feb  4 23:53:05 2006  Søren Sandmann  <sandmann@redhat.com>
689
690         * sysprof.glade: Remove ancestors pane in favor of radiobuttons in
691         the right pane.
692
693         * sysprof.c: Corresponding changes.
694
695         * TODO: Updates
696
697 Wed Jan 25 11:24:04 2006  Søren Sandmann  <sandmann@redhat.com>
698
699         * TODO: Updates
700
701 Mon Jan 16 11:12:13 2006  Søren Sandmann  <sandmann@redhat.com>
702
703         * TODO: Updates
704
705 Sun Jan 15 20:22:20 2006  Soeren Sandmann  <sandmann@redhat.com>
706
707         * module/sysprof-module.c (init_module): Print out sysprof version
708         at module load time.
709
710 Sun Jan 15 00:24:02 2006  Soeren Sandmann  <sandmann@redhat.com>
711
712         * TODO: Updates
713
714         * sysprof.c (build_gui): Rename 'callers' column 'ancestors'
715
716         * profile.c (profile_list_callers): Make this function list all
717         ancestors of the function. Also make it report correct numbers
718         again. 
719
720         * profile.c (profile_create_descendants): Remove debug spew
721
722 Sat Jan 14 18:24:43 2006  Soeren Sandmann  <sandmann@redhat.com>
723
724         * configure.ac, Makefile.am: Only build GUI when the necessary
725         dependencies are found.
726
727         * sysprof.c (compute_text_width): Remove unused variable
728
729         * profile.c (build_object_list): Follow next instead of siblings.
730
731 Fri Jan 13 23:11:33 2006  Søren Sandmann  <sandmann@redhat.com>
732
733         * TODO: updates
734
735 Fri Jan 13 22:59:48 2006  Soeren Sandmann  <sandmann@redhat.com>
736
737         * module/sysprof-module.c (sysprof_open): Initialize retval.
738
739         * module/sysprof-module.c (sysprof_read): Copy contents of trace,
740         not tail to the buffer.
741
742 Wed Jan 11 20:31:11 2006  Søren Sandmann  <sandmann@redhat.com>
743
744         * process.c (read_maps): Also make offset a gulong (Samuel Mimram)
745
746 Wed Jan 11 17:51:54 2006  Søren Sandmann  <sandmann@redhat.com>
747
748         * collector.c: Remove debug spew. 
749
750         * TODO: updates
751
752 Mon Jan  9 09:58:25 2006  Soeren Sandmann  <sandmann@redhat.com>
753
754         * module/sysprof-module.c (timer_notify): Remove START_OF_STACK
755         check.
756
757 Mon Jan  9 00:59:21 2006  Soeren Sandmann  <sandmann@redhat.com>
758
759         * process.c (read_maps): Use gulong for addresses. Bug reported by
760         Martin Reddy.
761
762 Sun Jan  8 03:22:22 2006  Soeren Sandmann  <sandmann@redhat.com>
763
764         * process.c (process_flush_caches): Resurrect this function.
765
766         * collector.c (collector_reset): Call it from here
767
768 Sun Jan  8 02:19:34 2006  Soeren Sandmann  <sandmann@redhat.com>
769
770         * TODO: update
771
772 Thu Jan  5 17:52:10 2006  Søren Sandmann  <sandmann@redhat.com>
773
774         * TODO: small updates
775         * sysprof.c: cosmetic updates
776         * module/sysprof-module.c: cosmetic updates
777
778 2005-12-20  Kristian Høgsberg  <krh@redhat.com>
779
780         * module/sysprof-module.c: Remove left over debug print out and
781         add support for multiple clients (readers).
782
783 Tue Dec 20 16:03:29 2005  Soeren Sandmann  <sandmann@redhat.com>
784
785         * TODO: Updates
786
787         * sysprof-text.c (main): Make it try and load the module before
788         complaining.
789
790 2005-12-20  Kristian Høgsberg  <krh@redhat.com>
791
792         * Makefile.am: Dist and install udev rule.
793
794         * collector.c: (open_fd):
795         * sysprof-text.c: (no_module):
796         * sysprof.c: (on_start_toggled): Update device filename.
797
798         * 60-sysprof.rules: New udev rule file to set permissions for
799         sysprof char device.
800
801         * module/sysprof-module.c: Switch kernel module to use a misc char
802         device instead.  Start and stop the timer on device open and
803         close instead of module load and unload.
804
805 Tue Dec 20 12:19:34 2005  Søren Sandmann  <sandmann@redhat.com>
806
807         * configure.ac: Add backslashes, pointed out by Ralph Siemsen.
808
809 Mon Dec 19 17:39:09 2005  Søren Sandmann  <sandmann@redhat.com>
810
811         * sysprof.c (add_text): Make the tree tree-shapeed.
812
813 Mon Dec 19 15:15:48 2005  Søren Sandmann  <sandmann@redhat.com>
814
815         * module/sysprof-module.c (timer_notify): A few formatting
816         fixes. Hopefully make it work with x86-64.
817
818 2005-11-29  Soeren Sandmann  <sandmann@redhat.com>
819
820         * sysprof.c (on_descendants_row_expanded_or_collapsed): New
821         function. Update screenshot window when rows are expanded and
822         collapsed.
823
824 2005-11-23  Soeren Sandmann  <sandmann@redhat.com>
825
826         * sysprof.c (update_screenshot_window): Update the screenshot
827         window.
828
829 Wed Nov 23 00:44:34 2005  Soeren Sandmann  <sandmann@redhat.com>
830
831         * module/sysprof-module.c: Various cleanups
832
833         * TODO: updates
834
835 Tue Nov 22 23:38:09 2005  Soeren Sandmann  <sandmann@redhat.com>
836
837         * module/sysprof-module.c: Remove unused pages_present()
838         function. 
839
840 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
841
842         * configure.ac: Make configure work.
843
844 2005-11-13  Soeren Sandmann  <sandmann@redhat.com>
845
846         * process.c: Add some experimental (and unused) code to look up
847         kernel symbols.
848
849 Sat Nov 12 23:39:29 2005  Soeren Sandmann  <sandmann@redhat.com>
850
851         * sysprof.c (set_sizes): Put the vertical splitter at 3/8 *
852         screen_width.
853
854         * configure.ac: Disable warning.
855
856 Sat Nov 12 19:44:43 2005  Søren Sandmann  <sandmann@redhat.com>
857
858         * module/sysprof-module.c (read_frame): New function that uses
859         copy_from_user_inatomic() as check_user_pages_readable() has
860         disappeared in recent kernels.
861         
862         * module/sysprof-module.c (timer_notify): Use it here.
863         
864         * TODO: Updates
865
866         * configure.ac: Change the wording of the CVS HEAD warning as this
867         change seems to also have fixed the lockup with rawhide kernels.
868
869 Wed Nov  9 00:24:11 2005  Soeren Sandmann  <sandmann@redhat.com>
870
871         * treeviewutils.[ch]: Add new tree_view_foreach_visible()
872         function.
873
874         * sysprof.c: Add update_screenshot_window() function.
875
876 Mon Nov  7 23:42:26 2005  Soeren Sandmann  <sandmann@redhat.com>
877
878         * sysprof.c: Add beginning of a screenshot
879         window.
880
881         * sysprof.glade: Add screenshot window plus menu items.
882
883         * stackstash.c: Remove unused function stack_node_list_leaves()
884
885         * xmlstore.c: Various crack
886
887 Sun Nov  6 23:03:49 2005  Soeren Sandmann  <sandmann@redhat.com>
888
889         * profile.c (add_trace_to_tree): Test for !prev instead of !next.
890
891 Sun Nov  6  Soeren Sandmann  <sandmann@redhat.com>
892
893         * TODO: updates
894
895         * collector.c (on_read): Only call back when a new sample actually
896         arrived.
897
898         * collector.c (collector_stop): close the filedescriptor
899
900         * sysprof.c (on_start_toggled): Change sense of test.
901
902         * sysprof.c (ensure_profile): Stop the collector.
903
904         * sysprof.c (on_reset_clicked): Stop the collector when state
905         becomes INITIAL.
906
907 Sun Nov  6 18:31:23 2005  Soeren Sandmann  <sandmann@redhat.com>
908
909         * stackstash.c (stack_stash_foreach): 
910         * stackstash.c (stack_node_foreach_trace): Make these function
911         call back with GLists rather than GSLists.
912
913         * profile.c (add_trace_to_tree): Iterate backwards instead of
914         copying the list.
915
916 Sun Nov  6 17:06:52 2005  Soeren Sandmann  <sandmann@redhat.com>
917
918         * profile.c (add_trace_to_tree): Turn this function into a
919         StackFunction. 
920
921         * stackstash.c (stack_node_foreach_trace): Make this function take
922         a StackFunction, and reimplement with do_callback().
923
924 Sat Nov  5 18:06:40 2005  Soeren Sandmann  <sandmann@redhat.com>
925
926         * profile.c (profile_create_descendants): Use callbacks from
927         stackstash.
928
929         * stackstash.c (stack_node_foreach_trace): New function
930         * stackstash.c (do_node_callback): New function
931
932 Sat Nov  5 12:39:33 2005  Soeren Sandmann  <sandmann@redhat.com>
933
934         * profile.c (add_trace_to_tree): Don't compute the total field.
935
936         * profile.h (struct ProfileDescendant): Remove 'total' field. 
937
938         * sysprof.c: Delete DESCENDANTS_TOTAL column and everything
939         related to it.
940
941         * profile.c: Remove commented out code
942
943         * sfile.c (handle_text): Don't copy the text
944
945 2005-11-04  Soren Sandmann  <sandmann@redhat.com>
946
947         * collector.[ch]: Add copyright statement.
948
949         * collector.c (on_read): Handle time getting set backwards.
950
951         * collector.c: Remove unused empty_filedescriptor() function.
952
953 2005-11-03  Soren Sandmann  <sandmann@redhat.com>
954
955         * configure.ac: Make the message about the kernel source package
956         more informative. Code from Kjetil Torgrim Homme.
957
958         * sysprof.c (on_start_toggled): Only delete the data if the 
959         profiling can actually be started.
960
961 2005-11-01  Soeren Sandmann  <sandmann@redhat.com>
962
963         * sysprof.c (on_start_toggled): Update GUI after showing error
964         message.
965
966         * sysprof.glade: Rename File menu Profiler, move
967         Start/Profile/Reset here, delete View menu.
968
969 Mon Oct 31 23:41:33 2005  Soeren Sandmann  <sandmann@redhat.com>
970
971         * stackstash.h (struct StackNode): Add "total" field.
972
973         * stackstash.c (stack_stash_add_trace): Keep track of the
974         aggregate size.
975
976         * profile.c (profile_get_size): Sum the totals of the siblings
977         instead of all the children.
978
979         * profile.c (build_object_list): Correctly compute obj->self
980
981         * profile.c (profile_load): Don't ignore the node->total field.
982
983         * profile.c (serialize_call_tree): Save node->total instead of the
984         computed total
985
986         * profile.c (compute_total): Use n->total instead of computing it
987         from scratch.
988
989         * profile.c: Remove unused sum_children() function.
990
991         * TODO: Updates
992
993         * process.c (process_get_from_pid): Plug leak.
994
995 Mon Oct 31 21:36:37 2005  Søren Sandmann  <sandmann@redhat.com>
996
997         * sysprof.c (fill_main_list): free the profile objects.
998
999         * sysprof.c (struct Application): Remove unused variable.
1000
1001 Mon Oct 31 00:22:58 2005  Soeren Sandmann  <sandmann@redhat.com>
1002
1003         * sysprof.c (set_application_title): Use APPLICATION_NAME macro
1004
1005         * sysprof.c (load_file): Don't leak the FileOpenData
1006
1007         * TODO: updates
1008
1009 2005-10-30  Soren Sandmann <sandmann@redhat.com>
1010
1011         * configure.ac, Makefile.am: Don't link sysprof-text to gtk+.
1012
1013 2005-10-30  Soren Sandmann <sandmann@redhat.com>
1014
1015         * Merge stackstash-reorg branch into HEAD
1016
1017 2005-10-30  Soren Sandmann <sandmann@redhat.com>
1018
1019         * Makefile.am, sysprof.c, sysprof-text.c, collector.[ch]: Rename
1020         profiler -> collector
1021
1022 2005-10-30  Soren Sandmann <sandmann@redhat.com>
1023
1024         * profile.c (profile_load): Reenable loading. 
1025
1026 2005-10-30  Soren Sandmann <sandmann@redhat.com>
1027
1028         * profile.c (profile_save): Reenable saving.
1029
1030 Sat Oct 29 21:37:42 2005  Soeren Sandmann  <sandmann@redhat.com>
1031
1032         * stackstash.c (stack_stash_foreach): Rename
1033         stack_stash_foreach_reversed() to stack_stash_foreach(). Delete
1034         the old, unused stack_stash_foreach().
1035
1036         * stackstash.h: Remove stack_stash_foreach_reversed(). 
1037
1038         * profiler.c: Use new name.     
1039
1040 Sat Oct 29 18:37:37 2005  Søren Sandmann  <sandmann@redhat.com>
1041
1042         * TODO: Updates
1043
1044 Sat Oct 29 17:38:01 2005  Søren Sandmann  <sandmann@redhat.com>
1045
1046         * stackstash.[ch]: Add stack_stash_get_root(). 
1047
1048         * profile.c (profile_get_size): Make this function work again. 
1049
1050 Sat Oct 29 16:58:22 2005  Søren Sandmann  <sandmann@redhat.com>
1051
1052         * profile.c: Delete all the obsolete stuff related to call tree.
1053
1054         * TODO: update
1055
1056 Sat Oct 29 16:52:32 2005  Søren Sandmann  <sandmann@redhat.com>
1057
1058         * TODO: Updates
1059
1060         * profile.c: Comment out a lot of unused stuff. Also temporarily
1061         comment out loading and saving.
1062
1063 Sat Oct 29 16:45:34 2005  Søren Sandmann  <sandmann@redhat.com>
1064
1065         * profile.c (compute_total): New function.
1066
1067         * profile.c (profile_list_callers): Port this function over to use
1068         StackNodes instead.
1069
1070 Sat Oct 29 16:22:28 2005  Søren Sandmann  <sandmann@redhat.com>
1071
1072         * profile.c (build_object_list): Make this function allocate
1073         the ProfileObjects.
1074
1075         * stackstash.[ch]: Add stack_stash_foreach_by_address()
1076
1077         * profile.c (profile_get_objects): Use it here to reimplement 
1078         profile_get_objects() in terms of the stackstash.
1079
1080 Sat Oct 29 15:33:07 2005  Søren Sandmann  <sandmann@redhat.com>
1081
1082         * profile.c (profile_new): Add stash field to profile.
1083
1084         * stackstash.[ch]: Add stack_node_list_leaves();
1085
1086         * profile.c (profile_create_descendants): Port this function over
1087         to use StackNodes instead.
1088
1089 Sat Oct 29 14:43:00 2005  Søren Sandmann  <sandmann@redhat.com>
1090
1091         Fix crash pointed reported by Rudi Chiarito. 
1092         
1093         * stackstash.c (stack_stash_add_trace): Just return if
1094         n_addrs is 0. 
1095
1096         * sysprof.c (on_read): Only trace if n_addresses != 0. 
1097
1098 Sat Oct 29 03:47:03 2005  Soeren Sandmann  <sandmann@redhat.com>
1099
1100         * profile.[ch], sysprof.c: Get rid of ProfileObject for callers
1101         and descendants.
1102
1103         * TODO: updates.
1104
1105 Sat Oct 29 02:57:34 2005  Soeren Sandmann  <sandmann@redhat.com>
1106
1107         * stackstash.[ch]: Export the StackNode struct, add new
1108         nodes_by_data hashtable to StackStash object, keep track of
1109         whether objects are toplevels.
1110
1111         * TODO: some updates.
1112
1113 Sat Oct 29 14:29:55 2005  Søren Sandmann  <sandmann@redhat.com>
1114
1115         * README, TODO: updates
1116
1117 Fri Oct 14 11:44:43 2005  Søren Sandmann  <sandmann@redhat.com>
1118
1119         * configure.ac: Add a warning about known bugs in the kernel
1120         module in this branch.
1121
1122         * TODO: updates.
1123
1124 Tue Oct 11 22:40:24 2005  Soeren Sandmann  <sandmann@redhat.com>
1125
1126         * module/sysprof-module.c (SAMPLES_PER_SECOND): Add back these
1127         constants, but this time make sure we won't divide by 0 or
1128         anything like that.
1129
1130 Mon Oct 10 22:50:57 2005  Soeren Sandmann  <sandmann@redhat.com>
1131
1132         * Merge in changes from HEAD
1133
1134 Thu Oct  6 22:28:39 2005  Soeren Sandmann  <sandmann@redhat.com>
1135
1136         * stackstash.c (do_callback): Call stack func if node->size > 0,
1137         not if node->children != NULL
1138         * stackstash.c (do_reversed_callback): same
1139         * profile.c (generate_presentation_name): Delete this function
1140         * profile.c (generate_key): Delete this function.
1141
1142 Wed Oct  5 23:57:08 2005  Soeren Sandmann  <sandmann@redhat.com>
1143
1144         * TODO: Updates
1145
1146         * profile.c (generate_call_tree): Delete all the process stuff
1147
1148         * profile.c (node_add_trace): Delete process argument
1149
1150         * profile.c (lookup_profile_object): Don't generate a string key,
1151         just use the address directly.
1152
1153         * profile.c (ensure_profile_object): Use the address as
1154         presentation name.
1155
1156         * profiler.c (profiler_create_profile): Pass in the resolved
1157         stash. 
1158
1159 Sun Oct  2 21:08:16 2005  Soeren Sandmann  <sandmann@redhat.com>
1160
1161         * sysprof.c (on_delete): Work around glib bug 317775
1162
1163         * sysprof-text.c (signal_handler): Work around glib bug 317775
1164
1165 Sun Oct  2 16:31:37 2005  Soeren Sandmann  <sandmann@redhat.com>
1166
1167         * stackstash.c (stack_stash_foreach_reversed): Add this function
1168
1169         * process.c: Add a per-process undefined symbol.
1170
1171         * profiler.c (resolve_symbols): Add code to do symbol resolution
1172         here.
1173
1174         * TODO: Updates
1175
1176 Sat Oct  1 18:32:52 2005  Soeren Sandmann  <sandmann@redhat.com>
1177
1178         * profile.h, sysprof.c: Remove some unnecessary includes.
1179
1180 Sat Oct  1 18:12:44 2005  Soeren Sandmann  <sandmann@redhat.com>
1181
1182         * profiler.[ch]: Add profiler_get_n_samples(); add unused
1183         empty_file_descriptor()
1184
1185         * profile.h: Add include guards
1186         
1187         * process.[ch]: Delete process_flush_caches();
1188
1189         * helper.[ch]: Remove these files
1190
1191         * sysprof.c: Use the new profiler class.
1192
1193         * sysprof-text.c: Use the new profiler class
1194
1195         * Makefile.am: Various cleanups.
1196
1197 Sat Oct  1 17:05:43 2005  Soeren Sandmann  <sandmann@redhat.com>
1198
1199         * profiler.[ch]: New files containing a profiler class with code
1200         that can be shared between gui and command line.
1201         
1202         * sysprof.c (main): Remove some commented out code
1203
1204         * stackstash.c (do_callback): Store the trace on the stack instead
1205         of allocating it dynamically.
1206
1207 Sat Oct  1 01:50:15 2005  Soeren Sandmann  <sandmann@redhat.com>
1208
1209         * stackstash.c (sstack_stash_add_trace): Simplify this function a
1210         lot.
1211
1212         * helper.c: Include "process.h"
1213
1214 Sat Oct  1 01:29:06 2005  Soeren Sandmann  <sandmann@redhat.com>
1215
1216         * profile.c (generate_object_table, generate_call_tree): Don't
1217         take the process as an argument. Instead dig it out of the
1218         stacktrace.
1219         
1220         * helper.c (add_trace_to_stash): New file, that adds a stacktrace
1221         and a process to a stackstash.
1222         
1223         * stackstash.[ch]: Remove all traces of the concept of
1224         Process. Simplify stack_node_add_trace() somewhat.
1225
1226 Mon Oct 10 22:49:03 2005  Soeren Sandmann  <sandmann@redhat.com>
1227
1228         * module/sysprof-module.c: Delete lots of commented-out code.
1229
1230 Mon Oct 10 14:33:50 2005  Søren Sandmann  <sandmann@redhat.com>
1231
1232         * configure.ac: Add --disable-kernel-module option. Patch from
1233         Pascal Terjan. 
1234
1235 Mon Oct 10 13:00:20 2005  Robert Love  <rml@novell.com>
1236
1237         * module/sysprof-module.c: Don't use INTERVAL or SAMPLES_PER_SECOND
1238           now that we use register_timer_hook(), which hits off the timer
1239           interrupt at HZ freqency (1/250 second on x86).
1240
1241 Sat Oct  1 01:21:57 2005  Soeren Sandmann  <sandmann@redhat.com>
1242
1243         * TODO: Update
1244
1245 Wed Sep 28 12:08:32 2005  Søren Sandmann  <sandmann@redhat.com>
1246
1247         * sysprof-text.c: Add my name to the copyright statement
1248
1249 Tue Sep 27 01:33:33 2005  Soeren Sandmann  <sandmann@redhat.com>
1250
1251         * process.c (process_lookup_symbol): If the address is 0x01, treat
1252         as kernel, regardless of whether we have a map for that address or
1253         not.
1254
1255         * module/sysprof-module.c (timer_notify): Take a stack trace of
1256         the current process, even when we are in kernel mode. This way we
1257         can assign kernel activity to individual user space stacktraces.
1258
1259         * TODO: updates.
1260         
1261 Sat Sep 24 14:41:23 2005  Soeren Sandmann  <sandmann@redhat.com>
1262
1263         * configure.ac: Bump version number to 1.1.0
1264
1265         * signal-handler.c: Many, mostly cosmetic, cleanups
1266
1267         * sysprof-text.c: uninstall signal handlers when exiting
1268
1269 Sat Sep 24 00:01:42 2005  Soeren Sandmann  <sandmann@redhat.com>
1270
1271         * Nakefile.am, sysprof-text.c: New non-GUI version, written
1272         by Lorenzo Colitti, with some changes by me.
1273
1274         * signal-handler.[ch]: New files that provide a way to get UNIX
1275         signals into a glib main loop.
1276
1277         * README: add Lorenzo to credits
1278         
1279 Fri Sep 23 20:46:40 2005  Soeren Sandmann  <sandmann@redhat.com>
1280
1281         * sysprof.c (build_gui): If the glade file doesn't exists pop up 
1282         an alert suggesting running 'make install'
1283
1284         * sysprof.c: Remove some commented out code
1285
1286 Sat Sep 17 14:35:32 2005  Soeren Sandmann  <sandmann@redhat.com>
1287
1288         * Release 1.0 (this comment was added post facto)
1289         
1290         * Bump version numbers
1291         * README: update
1292         * TODO: Updates
1293
1294 Sun Sep  4 19:38:51 2005  Soeren Sandmann  <sandmann@redhat.com>
1295
1296         * TODO: Updates
1297
1298 Tue Aug 30 16:57:33 2005  Søren Sandmann  <sandmann@redhat.com>
1299
1300         * configure.ac: Complain if we can't find /lib/modules/`uname
1301         -r`/build/Makefile. 
1302
1303         * process.c (process_lookup_symbol): Take an address of 0x1 to
1304         mean "in kernel".
1305
1306         * module/sysprof-module.c (timer_notify): When reporting in-kernel
1307         time, give the current pid instead of -1.
1308
1309         * TODO: updates
1310
1311 Mon Aug 15 20:39:11 2005  Soeren Sandmann  <sandmann@redhat.com>
1312
1313         * binfile.c, process.c, profile.c: Fix some warnings.
1314
1315 Mon Aug  1 23:49:51 2005  Soeren Sandmann  <sandmann@redhat.com>
1316
1317         * module/sysprof-module.c (REG_INS_PTR): Add support for
1318         amd64/x86-64. Patch from Mike Frysinger.
1319
1320 Sun Jul 10 10:51:52 2005  Soeren Sandmann  <sandmann@redhat.com>
1321
1322         * binfile.c: Various minor clean-ups
1323
1324 Sat Jul  9 23:20:39 2005  Soeren Sandmann  <sandmann@redhat.com>
1325
1326         * binfile.c (bin_file_new): Cache BinFiles by filename.
1327
1328         * stackstash.c (stack_stash_free): Plug leak
1329
1330         * process.c (process_free_maps): Plug leak
1331
1332         * module/Makefile (install): Check that depmod exists before
1333         running it.
1334
1335 Sun Jun 19 15:42:34 2005  Søren Sandmann  <sandmann@redhat.com>
1336
1337         * module/sysprof-module.c (SAMPLES_PER_SECOND): Set to 200.
1338
1339         * sysprof.c (on_about_activated): Add version information
1340
1341         * configure.ac: Bump version to 0.91
1342         
1343         * README: Updates
1344
1345 Sat Jun 18 22:45:04 2005  Søren Sandmann  <sandmann@redhat.com>
1346
1347         * TODO: Updates
1348
1349         * configure.ac: Check for Linux 2.6.11
1350
1351         * process.c (get_pidname): Present pid=-1 as [kernel].
1352
1353         * module/sysprof-module.c: Use register_timer_hook() instead of
1354         a kernel timer. Set trace.pid to -1 if interrupt happens in
1355         kernel.
1356
1357 Sun Jun 12 20:30:37 2005  Soeren Sandmann  <sandmann@redhat.com>
1358
1359         * sysprof.c (build_gui): Disable type-ahead search for all the
1360         tree views.
1361         
1362         * sysprof.c (on_object_selection_changed): Call it from here
1363
1364         * sysprof.c (expand_descendants_tree): New function that
1365         determines what nodes to expand in the descendatns view. 
1366
1367 Sun Jun 12 13:37:15 2005  Soeren Sandmann  <sandmann@redhat.com>
1368
1369         * TODO: Updates
1370
1371 Thu Jun  9 13:28:33 2005  Søren Sandmann  <sandmann@redhat.com>
1372
1373         * TODO: Updates
1374
1375 Thu May 26 01:10:45 2005  Soeren Sandmann  <sandmann@redhat.com>
1376
1377         * sysprof.c (on_callers_row_activated): Grab focus on the callers
1378         view, not the descendants view.
1379         
1380         * sysprof.c (on_read): Add a short "dead" period after a reset,
1381         so that 'samples' will actually be 0 for a while.
1382         
1383 Mon May 23 01:37:26 2005  Soeren Sandmann  <sandmann@redhat.com>
1384
1385         * README: Remove comment about auto* stuff, link to
1386
1387                 http://www.daimi.au.dk/~sandmann/sysprof/
1388
1389 Sun May 23 16:10:00 2005  Soeren Sandmann  <sandmann@redhat.com>
1390
1391         -=-=-=-=-=- Release v. 0.9 -=-=-=-=-=-
1392         
1393 Sun May 22 21:06:36 2005  Soeren Sandmann  <sandmann@redhat.com>
1394
1395         * TODO: Updates
1396
1397 Sat May 21 20:58:59 2005  Soeren Sandmann  <sandmann@redhat.com>
1398
1399         * TODO: update
1400         
1401         * sysprof.c (on_menu_item_activated): New function. 
1402
1403         * sysprof.c (build_gui): Hook up menu items.
1404
1405         * module/sysprof-module.c (init_module): Remove module_init/exit
1406         as they cause build failure on kernels < 2.6.11.
1407
1408 Sat May 21 00:59:38 2005  Søren Sandmann  <sandmann@redhat.com>
1409
1410         * TODO: update
1411
1412 Wed May 18 22:21:52 2005  Søren Sandmann  <sandmann@redhat.com>
1413
1414         * module/sysprof-module.c: Remove ref-counting since it didn't
1415         actually do any good.
1416
1417         * sysprof.c (load_module): Use g_spawn_command_line_sync() instaed
1418         of system().
1419
1420 Sun May 15 11:56:30 2005  Søren Sandmann  <sandmann@redhat.com>
1421
1422         * module/sysprof-module.c: First attempt at making module robust
1423         agains unloading when in use.
1424
1425 Sun May 15 10:24:09 2005  Soeren Sandmann  <sandmann@redhat.com>
1426
1427         * Makefile.am, module/Makefile: Do more-or-less what the automake
1428         manual suggests about foreign subdirectories.
1429
1430 Sat May 14 16:36:32 2005  Søren Sandmann  <sandmann@redhat.com>
1431
1432         * sysprof.c (set_application_title): Update the title bar on
1433         load/save
1434
1435         * treeviewutils.c, sfile.c: Fix compiler warnings
1436
1437         * Makefile.am: define PIXMAPDIR
1438         
1439 Sat May 14 15:49:52 2005  Søren Sandmann  <sandmann@redhat.com>
1440
1441         Auto*ify.
1442         
1443         * TODO: updates
1444
1445         * AUTHORS, INSTALL, Makefile.am, NEWS, configure.ac: New files
1446
1447         * module/Makefile: New file
1448
1449         * module/sysprof-module.c, module/sysprof-module.h: Move these
1450         files to their own directy, as the kernel build system does not
1451         work very well with auto*.
1452
1453         * sysprof.c, autogen.sh: Some auto* changes.
1454         
1455 Sun May  8 16:31:32 2005  Søren Sandmann  <sandmann@redhat.com>
1456
1457         * TODO: more updates
1458
1459         * sysprof.c: Try loading the module before complaining
1460
1461 Sun May  8 15:45:08 2005  Søren Sandmann  <sandmann@redhat.com>
1462
1463         * sysprof-module.c (do_generate): Restore lost wake_up().
1464
1465         * sfile.c: Comment out use of bz2.
1466
1467         * Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR
1468
1469         * sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here.
1470
1471         * TODO: Updates.
1472
1473 Sat May  7 13:57:17 2005  Søren Sandmann  <sandmann@redhat.com>
1474
1475         * sfile.c (sfile_output_free): Implement this function
1476         
1477         * sfile.c (sfile_input_free): Implement this function
1478
1479 Fri May  6 23:38:48 2005  Søren Sandmann  <sandmann@redhat.com>
1480
1481         * sysprof-module.c (do_generate): Another desparate hack to try
1482         and prevent the oops.
1483
1484 Sat Apr 30 16:57:23 2005  Soeren Sandmann  <sandmann@redhat.com>
1485
1486         * process.c (PAGE_SIZE): Use getpagesize()
1487
1488         * TODO: More updates
1489
1490 Sat Apr 30 15:44:12 2005  Søren Sandmann  <sandmann@redhat.com>
1491
1492         * TODO: Updates
1493
1494         * sysprof-module.c (get_regs): Change the way we get registers for
1495         a task so that it works with 2.6.11
1496
1497 Sat Apr 23 19:17:18 2005  Søren Sandmann  <sandmann@redhat.com>
1498
1499         * TODO: Updates
1500
1501 Sat Apr 23 19:12:52 2005  Søren Sandmann  <sandmann@redhat.com>
1502
1503         * profile.c: Store a pointer to the root of the call tree
1504
1505         * profile.c (profile_load): Call sfile_input_free()
1506
1507         * sfile.c (sformat_free): Implement this function
1508
1509 Sat Apr 23 18:38:46 2005  Søren Sandmann  <sandmann@redhat.com>
1510
1511         * sfile.c (post_process_read_instructions): Check pointer types
1512
1513         * sfile.c (post_process_instructions_recurse): Delete this unused function
1514
1515 Sat Apr 23 17:49:33 2005  Søren Sandmann  <sandmann@redhat.com>
1516
1517         * sysprof-module.c (page_readable): New function to check if the
1518         page is readable before reading. Noop on kernel <= 2.6.11
1519
1520         * sysprof-module.c (get_mm, put_mm): New functions to confine
1521         #ifdefs. 
1522
1523 Sat Apr 23 17:48:22 2005  Søren Sandmann  <sandmann@redhat.com>
1524
1525         * Makefile (MODCFLAGS): Disable optimization as I suspect
1526         the oops is related to miscompilation.
1527
1528 Fri Apr 22 00:09:16 2005  Soeren Sandmann  <sandmann@redhat.com>
1529
1530         * sysprof-module.c (read_user_space): On >= 2.6.11 check that the
1531         pages are present and readable before reading them.
1532
1533 Tue Apr 19 23:26:45 2005  Kristian Høgsberg  <krh@bitplanet.net>
1534
1535         * Makefile (check): Add simple check target that runs a sanity
1536         check of the build environment.
1537
1538 Sun Apr 17 00:20:41 2005  Soeren Sandmann  <sandmann@redhat.com>
1539
1540         * sysprof.c (on_open_clicked): Factor out some stuff in their own
1541         functions.
1542
1543         * sysprof.c (load_file): Idle handler to load files given on the
1544         command line.
1545
1546         * sysprof.c (main): If a filename is passed on the command line,
1547         load it in an idle handler.
1548
1549 Sun Apr 17 00:19:03 2005  Soeren Sandmann  <sandmann@redhat.com>
1550
1551         * TODO: Updates
1552
1553 Sat Apr 16 19:51:48 2005  Soeren Sandmann  <sandmann@redhat.com>
1554
1555         * sysprof-module.c (read_user_space): Read a whole page at a time.
1556
1557 Sat Apr 16 14:15:55 2005  Soeren Sandmann  <sandmann@redhat.com>
1558
1559         * TODO: Update
1560         
1561         * sysprof-module.c (x_access_process_vm): On kernel 2.6.9 and
1562         later use get_task_mm()/mmput() instead of directly accessing
1563         task->mm.
1564
1565 Sat Apr 16 01:54:18 2005  Søren Sandmann  <sandmann@redhat.com>
1566
1567         * TODO: Add backtrace for kernel oops.
1568
1569 Fri Apr 15 16:37:45 2005  Soeren Sandmann  <sandmann@redhat.com>
1570
1571         * TODO: updates
1572
1573         * sysprof.c (sorry): If you hit profile when the module isn't
1574         loaded, pop up an annoying dialog.
1575
1576         * sysprof-module.c: Clean-ups, remove various unused abstractions.
1577
1578 Sat Apr  9 17:49:13 2005  Søren Sandmann  <sandmann@redhat.com>
1579
1580         * COPYING: Add a copy of the GPL
1581
1582 Sat Apr  9 17:04:50 2005  Søren Sandmann  <sandmann@redhat.com>
1583
1584         * Makefile: Remove debug spew
1585
1586         * *: Add copyright notices
1587
1588 Fri Apr  8 21:30:02 2005  Søren Sandmann  <sandmann@redhat.com>
1589
1590         * TODO: More updates
1591
1592 Fri Apr  8 20:48:58 2005  Søren Sandmann  <sandmann@redhat.com>
1593
1594         * sysprof.c (build_gui): Load the icon, hook up "about"
1595         activation.
1596
1597         * sysprof.c (on_about_activated): New function. Show an about
1598         dialog.
1599
1600         * sysprof.c (struct Application): Add an icon field
1601
1602         * TODO: Updates
1603         
1604         * sysprof-icon.png: Icon, drawn by Diana Fong
1605
1606 Tue Apr  5 23:01:02 2005  Søren Sandmann  <sandmann@redhat.com>
1607
1608         * binfile.c (read_symbols): Put back the weird loop, and stop
1609         pretending I understand this. This time use SEC_ALLOC instead of
1610         SEC_LOAD.
1611
1612 Tue Apr  5 20:13:44 2005  Søren Sandmann  <sandmann@redhat.com>
1613
1614         * process.c (process_ensure_map): Add commented out debug spew.
1615
1616         * process.c (process_lookup_symbol): Remove all should_offset()
1617         function and all references to it.
1618
1619         * binfile.c (bin_file_lookup_symbol): Document that address must
1620         be in file coordinates.
1621
1622         * binfile.c (read_symbols): Remove misguided code that tried to
1623         guess the load address of the file. Instead, do all computations
1624         in "file coordinates". Also fix a memory leak. Add commented out
1625         debug spew.
1626
1627         * binfile.c (separate_debug_file_exists): Fix signedness
1628
1629 Tue Apr  5 14:34:43 2005  Søren Sandmann  <sandmann@redhat.com>
1630
1631         * sysprof-module.c (x_access_process_vm): Make it compile with
1632         kernel 2.6.11
1633
1634         * TODO: updates
1635
1636 Mon Apr  4 00:57:11 2005  Soeren Sandmann  <sandmann@redhat.com>
1637
1638         * sysprof.c: Busy cursors in many more places.
1639
1640         * TODO: updates
1641
1642 Sun Apr  3 23:28:45 2005  Soeren Sandmann  <sandmann@redhat.com>
1643
1644         * sysprof-module.c (do_generate): Re-schedule the timeout here
1645         instead of in on_timer().
1646         
1647         * sysprof-module.c (on_timer): Only block tasks in the
1648         TASK_RUNNING state. 
1649
1650 Sun Apr  3 17:03:33 2005  Soeren Sandmann  <sandmann@redhat.com>
1651
1652         * sysprof-module.c (queue_generate_stack_trace): Put current
1653         process to sleep.
1654
1655         * sysprof-module.c (do_generate): Wake up the traced process
1656
1657 Thu Mar 31 23:09:09 2005  Soeren Sandmann  <sandmann@redhat.com>
1658
1659         * sysprof.c (build_gui): Remove stray %
1660
1661 Thu Mar 31 21:18:13 2005  Søren Sandmann  <sandmann@redhat.com>
1662
1663         * treeviewutils.c (add_double_format_column): Right justify numbers
1664
1665         * sysprof.c (build_gui): Add a space after the numbers
1666
1667         * sysprof.c (on_callers_row_activated): Focus object view
1668
1669         * sysprof.c (on_descendants_row_activated): Focus new descendants
1670         tree. 
1671
1672 Thu Mar 31 19:51:51 2005  Søren Sandmann  <sandmann@redhat.com>
1673
1674         * sysprof-module.c (do_generate): Walk all threads, not just all
1675         processes.
1676
1677         * TODO: Add disk profiling ideas
1678
1679 Thu Mar 31 00:19:47 2005  Soeren Sandmann  <sandmann@redhat.com>
1680
1681         * sysprof.c (set_busy): Make this function work
1682
1683         * sysprof.c (on_profile_toggled): Use it here
1684
1685         * sysprof.c (on_object_selection_changed): And here
1686
1687         * profile.c (add_trace_to_tree): Use GPtrArrays instead of
1688         GHashTable and GList.
1689
1690 Mon Mar 28 11:09:02 2005  Soeren Sandmann  <sandmann@redhat.com>
1691
1692         * TODO: updates
1693
1694 Sat Mar 26 19:26:52 2005  Søren Sandmann  <sandmann@redhat.com>
1695
1696         * sysprof.c: Show the right number of samples afte Open; remove
1697         shadows from menu bars and toolbars; some other tweaks.
1698
1699 Sat Mar 26 11:26:00 2005  Soeren Sandmann  <sandmann@redhat.com>
1700
1701         * TODO: Updates
1702
1703         * sfile.c (add_string): Use g_markup_escape_text() to escape the
1704         string before adding it to the file.
1705
1706         * sysprof.c (empty_file_descriptor): New function to make sure 
1707         samples generated before profiling started are ignored. 
1708         (set_busy): New commented out function to set a busy cursor.
1709
1710 Fri Mar 25 21:31:08 2005  Søren Sandmann  <sandmann@redhat.com>
1711
1712         * sysprof.c (update_sensitivity): Comment out sensitivity of reset button.
1713
1714 Fri Mar 25 21:25:31 2005  Søren Sandmann  <sandmann@redhat.com>
1715
1716         * sysprof.c (get_current_object): Return NULL if nothing is
1717         selected.
1718
1719 Fri Mar 25 20:54:08 2005  Søren Sandmann  <sandmann@redhat.com>
1720
1721         * TODO: More updates
1722
1723 Fri Mar 25 20:25:44 2005  Søren Sandmann  <sandmann@redhat.com>
1724
1725         * README: Require gtk+ 2.6
1726
1727         * treeviewutils.c (add_plain_text_column): Ellipsisize text columns.
1728
1729 Fri Mar 25 19:39:24 2005  Søren Sandmann  <sandmann@redhat.com>
1730
1731         * TODO: Remove "loading and saving"
1732
1733         * sysprof.glade: Add ellipsises to Open and Save menu items.
1734
1735         * sysprof.c (overwrite_file): Add this function, cutted-and-pasted
1736         from evince.
1737
1738         * sysprof.c (on_save_as_clicked, on_open_clicked): Use
1739         GtkFileChoosers to pick the names.
1740
1741         * sysprof.c: Various GUI updates.
1742
1743 Fri Mar 25 19:36:28 2005  Søren Sandmann  <sandmann@redhat.com>
1744
1745         * sfile.c (bz2_compress): Add this function  Don't actually make
1746         any produce use of it.
1747
1748         * profile.c (make_hash_table): Get rid of warning
1749
1750 Thu Mar 24 19:09:33 2005  Søren Sandmann  <sandmann@redhat.com>
1751
1752         * sysprof.c: Various GUI updates 
1753
1754         * TODO: update
1755         
1756         * sfile.[ch] (sformat_new_optional): Add some notes about an
1757         "optional" construction.
1758
1759 Wed Mar 23 00:04:07 2005  Soeren Sandmann  <sandmann@redhat.com>
1760
1761         Primitive loading and saving.
1762         
1763         * sysprof.c (on_open_clicked): Hook up loading.
1764
1765         * sfile.c: Add a copy of g_file_replace() from glib CVS HEAD.
1766
1767         * sfile.c (add_string): Escape and quote the string
1768
1769         * sfile.c (sfile_load): Initialize current_instruction and
1770         instructions_by_location
1771
1772         * sfile.c (post_process_instructions_recurse): Handle NULL
1773         pointers properly.
1774
1775         * sfile.c (handle_begin_element, handle_end_element, handle_text):
1776         Move error handling here from state_transition_begin/text/end.
1777
1778         * sfile.c (handle_text): Discard whitespace-only strings
1779
1780         * sfile.c (sfile_get_pointer, sfile_get_integer,
1781         sfile_get_string): expect both begin, value, and end transitions.
1782
1783         * sfile.c (hook_up_pointers): Only treat instructions as pointer
1784         values when they are. Handle NULL targets properly. 
1785
1786         * sfile.c (get_number): Fix a few read-freed-data bugs
1787
1788         * profile.c (profile_load): Call sfile_end_get() for the profile;
1789         build the nodes_by_objects hash table. Build the call tree.
1790
1791         * profile.c (create_format): Don't store next pointer, but do
1792         store total, self and toplevel.
1793
1794         * profile.c (make_hash_table): New function to build
1795         nodes_by_object hashtable from loaded data
1796
1797 Sat Mar 12 11:05:19 2005  Soeren Sandmann  <sandmann@redhat.com>
1798
1799         * sysprof-module.c: Fix small bug in add_timeout()
1800         * sysprof.c (build_gui): More descriptive tree labels
1801         * TODO: update
1802
1803 Thu Mar 10 16:37:52 2005  Søren Sandmann  <sandmann@redhat.com>
1804
1805         * sysprof.c (build_gui): s/Cummulative/Cumulative/. Pointed out by
1806         Ian McIntosh.
1807
1808 Mon Mar  7 14:47:09 2005  Søren Sandmann  <sandmann@redhat.com>
1809
1810         * README: Add note that you need to compile the module with
1811         the same compiler that compiled the kernel.
1812
1813 Sun Mar  6 22:56:21 2005  Soeren Sandmann  <sandmann@redhat.com>
1814
1815         * sfile.c: Generate id's for objects and pointers.
1816
1817 Sat Mar  5 01:09:33 2005  Soeren Sandmann  <sandmann@redhat.com>
1818
1819         * sfile.c: Bug fixes. Add actual generation.
1820
1821 Fri Mar  4 13:47:13 2005  Søren Sandmann  <sandmann@redhat.com>
1822
1823         * sysprof.c: Remove include of non-existing tracing.h
1824
1825 Thu Mar  3 23:48:13 2005  Soeren Sandmann  <sandmann@redhat.com>
1826
1827         * profile.c (profile_load): Write this function.
1828
1829         * sfile.c: Add support for user defined record and list types.
1830         Simplify logic a lot.
1831
1832 Wed Mar  2 23:39:50 2005  Soeren Sandmann  <sandmann@redhat.com>
1833
1834         * profile.[ch], sfile.[ch]: Experiment with a
1835         file-format-description format.
1836
1837         * sysprof.c: Add commented out code using /proc/ based
1838         timeout.
1839         
1840 Fri Jan 21 11:23:54 2005  Søren Sandmann  <sandmann@redhat.com>
1841
1842         * README: Some updates - add note about SMP kernels.
1843
1844         * sysprof-module.c: Go back to just sampling the current
1845         process.
1846
1847         * ChangeLog: I guess these do make sense, so start one.