1 2008-02-16 Soren Sandmann <sandmann@redhat.com>
3 * module/sysprof-module.c (nt_memcpy): Add a memcpy() that uses
5 (copy_kernel_stack): Add commented-out use of it here.
7 2007-11-20 Soren Sandmann <sandmann@daimi.au.dk>
9 * binfile.c (find_separate_debug_file): Use hash table instead of
12 2007-11-18 Soren Sandmann <sandmann@daimi.au.dk>
14 * module/sysprof-module.c (heuristic_trace): Make heuristic stack
15 scanning more accurate
17 Sun Nov 18 18:12:09 2007 Søren Sandmann <sandmann@redhat.com>
19 * module/sysprof-module.c (heuristic_trace): Crude heuristic stack
22 * module/sysprof-module.c (copy_kernel_stack): New function
24 Sun Nov 18 13:23:39 2007 Søren Sandmann <sandmann@redhat.com>
26 * module/sysprof-module.c (sysprof_read): Return ssize_t instead
29 * module/sysprof-module.c (heuristic_trace): Beginning of
30 heuristic user stack scanning.
32 2007-11-17 Soren Sandmann <sandmann@daimi.au.dk>
34 * collector.c (collector_create_profile): Don't collect traces here.
36 2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
38 * module/sysprof-module.c (n_traces_available): Formatting
40 * module/sysprof-module.c (sysprof_poll): Require 16 traces rather
43 2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
47 * module/sysprof-module.c (sysprof_poll): Only select readable
48 when there is at least eight traces available
50 * collector.c (collect_traces): New function, old on_read()
52 * collector.c (collector_create_profile): Collect traces here as
55 2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
59 * process.c (process_locate_map): Move map to front
61 * profile.c (profile_load): Ignore the toplevel field in the file
62 since we can compute it ourselves.
64 * stackstash.c (stack_stash_decorate): New function
66 * stackstash.c (stack_stash_add_trace): Decorate the tree lazily
67 instead of on each sample.
69 2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
71 * process.c (look_for_vmlinux): Use an array instead of a
72 list. Look for vmlinux in the source directory.
74 * elfparser.c (elf_parser_get_crc32): Only use MADV_DONTNEED if
75 the data is file-backed.
79 Various formatting fixes
81 2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
83 * profile.c (add_trace_to_tree): Make this a two-pass
84 algorithm, one pass to add the trace, and one to do the
87 2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
89 * sfile.c: Fix some spelling errors
91 * profile.[ch], sysprof.[ch]: Change "non_recursive" to
92 "cumulative" to match the UI
94 * profile.c (add_trace_to_tree): Add a couple of asserts.
98 2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
100 * elfparser.c (read_table): Don't discard weak symbols.
102 * elfparser.c (elf_parser_lookup_symbol): If the symbol has
103 unknown size, don't check that the address is in range.
105 2007-10-21 Soren Sandmann <sandmann@daimi.au.dk>
107 * module/Makefile: Remove CFLAGS reminiscence of 2.4 support.
109 2007-10-20 Soren Sandmann <sandmann@daimi.au.dk>
111 * collector.c (on_read): Call callback with an extra boolean
112 indicating whether the sample read was the first one
114 * collector.c (add_trace_to_stash): Allocate addresses on the
117 * sysprof.c (on_new_sample): Only call update_sensitivity() on the
120 * stackstash.c (stack_stash_add_trace): Move match to front
122 2007-09-16 Soren Sandmann <sandmann@daimi.au.dk>
124 * process.c (process_lookup_kernel_symbol): Add support for
125 looking up kernel symbols from /proc/kallsyms
127 * sysprof-text.c (dump_data): Print note that the file is being
130 * module/sysprof-module.[ch] (timer_notify): Send a copy of the
131 kernel stack to userspace.
133 * collector.c: Do kernel symbol lookups.
135 2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
137 * profile.c (profile_get_size): Compute the size by simply summing
138 the size of the siblings. They are toplevel by definition, and
139 this works if the siblings for some reason has the same address.
141 2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
143 * treeviewutils.c (process_iter): Reformat and fix various minor
146 2007-08-25 Soren Sandmann <sandmann@daimi.au.dk>
148 * treeviewutils.c (tree_view_set_model_with_default_sort): Work
149 around GTK+ bug 405625.
151 2007-08-04 Soren Sandmann <sandmann@daimi.au.dk>
153 * sysprof.c: Update to use new tree view API.
155 * treeviewutils.c: Do customized sorting to get default sort
156 orders on columns. Workaround for GTK+ bug 333791.
158 2007-03-24 Soren Sandmann <sandmann@daimi.au.dk>
160 * elfparser.c (elf_parser_get_crc32): madvise()
162 2007-03-24 Soren Sandmann <sandmann@daimi.au.dk>
164 * sysprof.c (update_screenshot_window): Update screenshot window
165 in an idle handler to deal with the case where someone presses
168 Mon Mar 5 16:55:39 2007 Søren Sandmann <sandmann@redhat.com>
170 * binfile.c (already_warned): New function. Only warn once about
173 2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
175 * sysprof-text.c (dump_data): Make this function static
177 2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
179 * collector.c (collector_create_profile): Remove FIXME.
181 2007-03-02 Soren Sandman <sandmann@daimi.au.dk>
183 * process.c (free_process): Free the undefined symbol
185 2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
187 * process.c (process_get_vdso_bytes): Make a copy of the vdso
188 bytes to make valgrind a little quieter.
190 * binparser.c: Note to self: Save the file, *then* commit.
192 2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
194 Fix two leaks, both pointed out by Kjartan Maraas
196 * binparser.c (bin_parser_free): Free the record list
198 * elfparser.c (elf_parser_free): Free the symbol table.
200 2007-02-24 Soren Sandmann <sandmann@daimi.au.dk>
204 * binparser.[ch]: Get rid of BIN_UINTn types; replace with single
205 BIN_UINT, where the user must provide the width
207 * elfparser.c: Update to new binparser API
209 2007-02-24 Soren Sandman <sandmann@daimi.au.dk>
211 * binparser.[ch]: Switch to a simpler conceptual model.
212 * elfparser.c: Update to binparser API changes.
215 Fri Feb 9 16:53:29 2007 Søren Sandmann <sandmann@redhat.com>
217 * Update copyright notices
219 Fri Feb 9 16:16:34 2007 Søren Sandmann <sandmann@redhat.com>
221 * elfparser.c (struct ElfSym): Don't store the size of the symbol.
222 (elf_parser_lookup_symbol): Look it up here instaed.
224 * binfile.c (bin_file_free): Use pre-decrement instead of
226 (bin_file_check_inode): Clarify the warning a little
228 Mon Jan 22 17:42:29 2007 Søren Sandmann <sandmann@redhat.com>
230 * sysprof-icon-32.png
231 * sysprof.c: Add a 32x32 version (also from Diana) of the icon.
233 Mon Jan 22 16:37:12 2007 Søren Sandmann <sandmann@redhat.com>
235 * sysprof-icon-16/24/48.png:
236 * sysprof.c: Add new icons from Diana.
238 2007-01-05 Behdad Esfahbod <behdad@gnome.org>
240 * module/Makefile: Correct $PWD usage, so make install works from
243 2006-12-09 Soren Sandmann <sandmann@daimi.au.dk>
245 * module/sysprof-module.c: Add forgotten put_cpu_var().
246 * sfile.c (build_instructions): Parse in chunks of 65536 to
249 2006-11-23 Soren Sandmann <sandmann@daimi.au.dk>
251 * process.c (read_maps): Set inode for vdso to 0.
253 * binfile.c (read_inode): Return -1 on error, 0 on vdso
254 (bin_file_new): Only read the inode if the file actually exists
256 (bin_file_check_inode): Return FALSE if there is no file.
258 2006-11-22 Soren Sandmann <sandmann@daimi.au.dk>
260 * sfile.c (sfile_load): Use GMappedFile instead
261 g_file_get_contents().
262 (build_instructions): Pass length instead of -1.
263 (sfile_output_save): Use g_file_set_contents() instead of
266 2006-11-22 Soren Sandmann <sandmann@daimi.au.dk>
268 * profile.c (add_trace_to_tree): Move match to front
269 (add_trace_to_tree): Break as soon as a recursive call is found.
271 * stackstash.c (do_callback): Manual tail call optimization.
273 2006-11-20 Soren Sandmann <sandmann@daimi.au.dk>
275 * sysprof.c (ensure_profile): reset the collector after generating
278 * stackstash.c (struct StackStash): Add cached_nodes and blocks.
279 (stack_node_new): Allocate stack nodes in blocks.
281 2006-11-19 Soren Sandmann <sandmann@redhat.com>
283 * profile.c (profile_load): Use stack allocated variables to avoid
284 taking addresses of bitfields.
286 * stackstash.h (struct StackNode): Store toplevel as bitfield
288 2006-11-19 Soren Sandmann <sandmann@redhat.com>
290 * profile.c (profile_load): Use stack_node_new() o
291 (profile_load): Use set_root() instead of new_from_root();
293 * stackstash.c (stack_stash_new_from_root): Delete this function
294 (stack_stash_set_root): Add this function
295 (stack_node_new): Export this function
297 2006-11-19 Soren Sandmann <sandmann@redhat.com>
299 * binparser.h: Declare bin_parser_free();
301 * elfparser.c (elf_parser_get_crc32): Use madvise(DONT_NEED) on
304 * process.c (struct Process): Remove do_offset.
306 Thu Nov 9 17:55:24 2006 Søren Sandmann <sandmann@redhat.com>
310 Thu Nov 9 17:31:17 2006 Søren Sandmann <sandmann@redhat.com>
312 * binfile.c (get_debug_file): Start with "/usr", not
313 "usr". Pointed out by Tim Rowley.
315 * binparser.c (bin_parser_align): Pass byte_width on instead of
318 Thu Nov 9 16:47:35 2006 Søren Sandmann <sandmann@redhat.com>
320 Look in the correct directory for debug info files. (Tim Rowley)
322 * binfile.c (N_TRIES): Add this instead of hardcoding '3'
324 * binfile.c (get_debug_file): Also look in "/usr/lib/debug", in
325 addition to "$(libdir)/debug".
327 * binfile.c: Comment out the debug spew.
329 Thu Nov 9 16:17:11 2006 Søren Sandmann <sandmann@redhat.com>
331 * binfile.c: Add debug spew.
333 Thu Nov 9 16:01:47 2006 Søren Sandmann <sandmann@redhat.com>
335 * sysprof-text.c (main): Die immediately if the output file is a
338 * autogen.sh (DIE): Also work when automake-1.9 is installed.
340 2006-11-02 Soren Sandmann <sandmann@daimi.au.dk>
342 * sysprof.c (disable_g_slice): New function
344 * sysprof.c (main): Call it from here.
346 2006-11-02 Soren Sandmann <sandmann@daimi.au.dk>
350 * binparser.c (bin_parser_free): Add this function
352 * elfparser.c (elf_parser_free): Call bin_parser_free()
354 * sysprof.c (compute_text_width, add_text): Plug leaks
356 * collector.c (add_trace_to_stash): Copy n_addresses to a stack
357 variable instead of reading it out of the mmap'ed area all the
358 time. (That way if there is an overrun, we won't write too much
359 into the address array).
361 2006-10-26 Soren Sandmann <sandmann@daimi.au.dk>
363 * module/sysprof-module.h (struct SysprofStackTrace): Increase the
364 max number of addresses to 1021, reorganise SysprofMmapArea to
365 make the traces naturally page aligned.
369 2006-10-26 Soren Sandmann <sandmann@daimi.au.dk>
371 * collector.c (resolve_symbols): Combine processes with identical
374 2006-10-25 Soren Sandmann <sandmann@daimi.au.dk>
376 * profile.c (add_trace_to_tree): Make the pointer array static to
377 improve cache behavior and reduce calls to malloc().
379 * process.c (lookup_kernel_symbol): Remove obsolete comment.
381 2006-10-25 Soren Sandmann <sandmann@daimi.au.dk>
383 * process.c (free_maps): Take a pointer to a variable that will be
386 * process.c: Stop coalescing processes with the same cmdline.
390 2006-10-24 Soren Sandmann <sandmann@daimi.au.dk>
392 * process.c (page_size): replace PAGE_SIZE macro with this function.
394 * binfile.c: Remove obsolete comment.
396 2006-10-24 Soren Sandmann <sandmann@daimi.au.dk>
398 * process.c (struct Process): Use an array instead of list of
401 2006-10-23 Soren Sandmann <sandmann@daimi.au.dk>
403 * module/sysprof-module.c (init_module): Use PAGE_SIZE - 1 instead
406 2006-10-22 Soren Sandmann <sandmann@daimi.au.dk>
408 Communicate traces to userspace through shared memory instead of
411 * module/sysprof-module.c: Store the traces in a SysprofMmapArea.
412 (sysprof_mmap): Implement this method.
413 (sysprof_nopage): Implement this.
414 (sysprof_read): Just reset the tail pointer and return zero.
416 * module/sysprof-module.h (struct SysprofMmapArea): New
419 * collector.c (collector_stop): Unmap the device
420 (in_dead_period): New function
421 (on_read): Read the traces out of mmap()ed area instead of reading
422 them. Call read() to prevent poll() from firing.
423 (struct Collector): New members map_area and current.
425 * Makefile.am (insert-module): Prefix modprobe with /sbin
427 * collector.c (open_fd): mmap() the sysprof device.
429 2006-10-11 Soren Sandmann <sandmann@daimi.au.dk>
431 * profile.c (profile_list_callers): Skip nodes that don't have a
434 2006-10-09 Soren Sandmann <sandmann@daimi.au.dk>
436 * profile.c (profile_list_callers): Make this function return a
437 list of immediate callers again.
439 * sysprof.c (build_gui): Change label back to "Callers"
441 * process.c (get_kernel_symbols): Only attempt to read the kernel
444 2006-10-09 Soren Sandmann <sandmann@redhat.com>
446 * binfile.c (bin_file_get_inode): Remove this function
448 * binfile.c (bin_file_check_inode): New function. Only print inode
449 warning once per BinFile.
451 * process.c (process_get_vdso_bytes): Remove debug spew
453 2006-10-09 Soren Sandmann <ssp@localhost.localdomain>
455 * process.c (process_get_vdso_bytes): New function.
457 * elfparser.c (parser_new_from_data): export this function as
458 elf_parser_new_from_data().
460 * binfile.c (read_inode): Don't stat if filename is
461 '[vdso]'. Instead just return -1;
462 (bin_file_new): Use elf_parser_new_from_data() when the file is
465 * process.c (read_maps): Change the offset of the vdso map to 0
468 * elfparser.c (elf_parser_lookup_symbol): Remove unused 'size'
471 * binfile.c (find_separate_debug_file): Deal with cycles in the
474 * configure.ac: Set version to 1.1.0. Print warning about HEAD.
476 2006-10-08 Soren Sandmann <ssp@localhost.localdomain>
478 * binfile.c: Don't include bfd.h
480 2006-10-08 Soren Sandmann <sandmann@redhat.com>
482 * sysprof.c (process_options): New function to support --version option
484 2006-10-08 Soren Sandmann <sandmann@redhat.com>
486 * elfparser.c (struct ElfParser): Add a cache of the text section.
488 * binparser.c (struct BinParser): Add a cache of a bin record to
489 get rid of malloc()/free() overhead.
491 * elfparser.c (struct ElfSym): Cache the size of the symbol
493 2006-10-08 Soren Sandmann <sandmann@redhat.com>
495 * elfparser.c: Remove now unused load-address heuristic
497 * comment out debug spew
499 2006-10-08 Soren Sandmann <sandmann@redhat.com>
501 * elfparser.c (read_symbols): Use "SHT_DYNSYM" for ".dynsym".
503 2006-10-08 Soren Sandmann <sandmann@daimi.au.dk>
505 * binfile.c (find_separate_debug_file): Support _debuglink
508 * elfparser.c: Check that the sections have valid types before
511 2006-10-08 Soren Sandmann <sandmann@daimi.au.dk>
513 * Delete various debug spew
515 2006-10-07 Soren Sandmann <sandmann@daimi.au.dk>
517 Deal with address offsets. Address lookup is now:
519 - First convert the address to an offset into the file
520 - Then convert to an offset into the text segment
521 - Then add the load address of the text segment (found in the
523 - Then finally lookup the result in the symbol table.
525 * elfparser.c (elf_parser_get_text_offset): New function
527 * elfparser.c (elf_parser_lookup_symbol): Treat addresses as
528 offsets into the text segment.
530 * binfile.c (bin_file_new): Store the offset of the text section
531 of the actual binary (not the debug one)
533 (bin_file_lookup_symbol): Subtract text_offset before passing
534 address to elf parser.
536 * module/sysprof-module.c: Remove include of linux/config.h
538 2006-08-27 Soren Sandmann <sandmann@redhat.com>
540 * binparser.c: Remove old commented out code
541 * module/sysprof-module.c: Add commented out code accessing entire
544 2006-08-27 Soren Sandmann <sandmann@redhat.com>
546 * module/Makefile ($(MODULE).o): Add dependency on sysprof-module.h
548 * elfparser.c (elf_parser_get_eh_frame): Add this function.
549 Remove some commented out code.
551 Sat Aug 26 19:05:51 2006 Søren Sandmann <sandmann@redhat.com>
553 * Formatting fixes in header files.
555 2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
557 * elfparser.c: Update to new API
559 * binparser.h: Delete commented out declarations. Add new
562 * binparser.c: Delete ParserFrame, replace with one current
564 (convert_uint): Make static
565 (bin_parser_get_uint): Delete this function
566 (bin_parser_get_string): Change this function to use current
567 offset instead of frame offset.
568 (bin_parser_goto): New function
569 (bin_parser_align): New function
570 (bin_parser_get_uint32): New function
571 (bin_parser_begin): Delete this function
572 (bin_parser_end): Delete this function
573 (bin_parser_index): Delete this function
574 (bin_record_get_string_indirect): Make this function use _goto()
575 instead of _begin()/_end()
576 (bin_parser_get_offset): Make this function return current offset
578 2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
580 * binparser.[ch]: Add new struct BinRecord. Comment out functions
581 related to formats. Add new functions to get fields out of
584 * elfparser.c: Update to new API.
586 2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
588 * binparser.h: Add new bin_record() functions
589 * binparser.c: Implement them.
591 2006-08-22 Soren Sandmann <sandmann@daimi.au.dk>
593 * collector.c (unique_dup): Demangle instead of strdup.
595 2006-08-21 Soren Sandmann <sandmann@redhat.com>
598 (elf_parser_get_sym_name): Rename elf_sym_get_* to
599 elf_parser_get_sym_* and make these functions take a parser.
600 (parser_from_sym): Delete this function.
601 (elf_parser_new): Don't add to all_elf_parsers
602 (elf_parser_free): Don't remove from all_elf_parsers
603 (elf_parser_new): Rename to parser_new_from_file()
604 (elf_parser_new_from_file): Rename to elf_parser_new
606 * binfile.c: Update for new elfparser API
610 2006-08-21 Soren Sandmann <sandmann@redhat.com>
612 * binfile.c (struct BinFile): Add ref_count and filename
613 (bin_files): Add map from filenames to BinFiles
614 (bin_file_new): First look for BinFile in the cache.
615 (bin_file_free): If refcount reaches 0, remove BinFile from cache.
619 2006-08-21 Soren Sandmann <sandmann@redhat.com>
621 * process.c (process_lookup_symbol): Pass map->bin_file to
624 * binfile.h (bin_symbol_get_name): Add BinFile parameter
626 * elfparser.c (elf_demangle): Use options DMGL_PARAMS | DMGL_ANSI
630 * binfile.c: Rewrite this file to use ElfParser instead of libbfd.
632 * configure.ac: Drop dependencies on libbfd and libiberty.
634 2006-08-21 Soren Sandmann <sandmann@redhat.com>
638 * elfparser.c (elf_parser_lookup_symbol): Change sense of size
641 2006-08-20 Soren Sandmann <sandmann@redhat.com>
643 * elfparser.c (elf_parser_get_crc32): Initialize crc to 0xffffffff
644 and invert it before returning.
646 * elfparser.h: Declare elf_parser_get_debug_link()
648 2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
650 * elfparser.c (elf_parser_get_load_address): Comment out debug spew.
651 (elf_parser_lookup_symbol): Add check that address is actually
652 within the bounds of the found function.
654 2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
656 * process.h: Make process_lookup_symbol() return a string. Delete
657 process_lookup_symbol_with_filename().
659 * process.c (struct Process): Make "undefined" a string
660 (lookup_kernel_symbol): Return a string
661 (process_lookup_symbol): Return a string, not a symbol
663 * collector.c (unique_dup): Take a string instead of a
665 (lookup_symbol): Make sym a string instead of a Symbol.
667 * binfile.c (bin_symbol_get_name): New function.
669 * binfile.[ch] (struct BinSymbol): Rename Symbol to BinSymbol and
670 make it an opaque structure.
672 * binfile.[ch]: Remove unused symbol operations
674 2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
676 * elfparser.c (elf_parser_new_from_file): New function
678 2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
680 * elfparser.c (elf_parser_get_debug_link): New function
682 * elfparser.c: Delete SymbolTable typedef
684 * binparser.[ch] (bin_parser_get_data): New function
685 (bin_parser_get_length): New function
687 * elfparser.[ch] (elf_parser_get_crc32): New function
691 * elfparser.c (elf_parser_lookup_symbol): Offset passed in
692 addresses by the load address.
694 * elfparser.c (elf_parser_get_load_address): New function to
695 compute the load address of the beginning of the file.
697 2006-08-20 Soren Sandmann <sandmann@redhat.com>
699 * elfparser.c (elf_sym_get_name): Read the name out of the file
700 instead of out of the struct.
702 * elfparser.c (struct ElfSym): Store an offset instead of the
705 * elfparser.c (all_elf_parsers): Keep track of all elf parsers
708 2006-08-20 Soren Sandmann <sandmann@redhat.com>
710 * Makefile.am, demangle.c: New file, made out of files from
711 libiberty in binutils.
713 * binfile.c: Use the new sysprof_cplus_demangle() function
715 * elfparser.[ch]: Add code to lookup symbols. Add demangling
718 * testelf.c: Various tests
720 2006-08-19 Soren Sandmann <sandmann@redhat.com>
722 * elfparser.c: Many cleanups.
724 2006-08-16 Soren Sandmann <sandmann@redhat.com>
726 * testelf.c: Really add this file.
728 2006-08-15 Soren Sandmann <sandmann@redhat.com>
730 Add beginning of an ELF parser.
732 * binparser.[ch]: New files
733 * elfparser.[ch]: New files
734 * testelf.c: New file
735 * Makefile.am (testelf_SOURCES): Add new testelf program.
737 Sat Aug 12 16:13:05 2006 Søren Sandmann <sandmann@redhat.com>
739 * module/sysprof-module.c: Make n_samples per-cpu. Add an atomic
740 variable in_timer_notify and use it to lock out simultaneous timer
743 * stackstash.c (decorate_node): Make decorate_node() static
747 Fri Aug 11 11:41:15 2006 Søren Sandmann <sandmann@redhat.com>
751 2006-08-08 Soren Sandmann <ssp@localhost.localdomain>
753 * sysprof.c (main): Make the load_file() idle low priority to
754 avoid weird toolbar flash.
756 * TODO, NEWS, README: updates.
758 2006-07-31 Paolo Borelli <pborelli@katamail.com>
760 * sysprof.c (expand_descendants_tree): small cleanup.
762 2006-07-31 Soren Sandmann <sandmann@redhat.com>
764 * stackstash.[ch]: Add a destroy notifier to StackStash
766 * collector.c (collector_create_profile): Pass g_free as destroy
769 * collector.c (collector_reset): Pass NULL as destroy notifier
771 * profile.c (profile_load): Pass g_free here.
773 * profile.c (struct Profile): Remove unused "Node" typedef
775 * collector.c (resolve_symbols): Free the array here.
777 * TODO: various updates.
779 2006-07-30 Soren Sandmann <sandmann@redhat.com>
781 * signal-handler.c: Simplify this file a bit, and make it not rely
782 on atomic pointer writes.
784 2006-07-18 Bastien Nocera <hadess@hadess.net>
786 * configure.ac: we need at least glib 2.6.0 for the gstdio.h functions
788 2006-06-05 Soren Sandmann <sandmann@redhat.com>
792 Sat Apr 22 15:08:01 2006 Soeren Sandmann <sandmann@redhat.com>
795 * profile.c, sfile.c, sformat.c: Various formatting fixes.
797 Wed Apr 5 11:26:30 2006 Søren Sandmann <sandmann@redhat.com>
801 Mon Mar 27 23:04:30 2006 Soeren Sandmann <sandmann@redhat.com>
805 * sfile.c (handle_{begin,end}_element): Don't generate begin/end
806 instructions for value elements.
808 * sfile.c (build_instructions): Remove debugging spew.
810 Mon Mar 27 21:44:04 2006 Soeren Sandmann <sandmann@redhat.com>
812 * sformat.[ch]: New files containing a simplified and sanitized
813 version of the state machine and type system from sfile.c.
815 * sfile.c: Move the state machine and type management to separate
816 files. Make the amount of memory used during loading and saving
819 * stackstash.c (stack_stash_new_from_root): Make this function
820 store the root again.
822 Mon Mar 27 09:55:01 2006 Søren Sandmann <sandmann@redhat.com>
826 2006-03-11 Soren Sandmann <sandmann@redhat.com>
830 * stackstash.[ch]: Make stackstash refcounted
832 * collector.c, profile.c: Update for refcounted stackstash, plug
835 * collector.c (open_fd): Remove FIXME comment
837 2006-03-05 Soeren Sandmann <sandmann@redhat.com>
839 * sysprof-text.c, collector.c, sysprof.c: Do proper
842 Fri Mar 3 22:28:03 2006 Soeren Sandmann <sandmann@redhat.com>
844 * process.c (process_lookup_symbol): Check that the inodes match.
846 * binfile.c (read_symbols): Read the inode of the file
848 * binfile.c (read_symbols): Close the bfd if the symbol table
851 Thu Mar 2 22:54:37 2006 Soeren Sandmann <sandmann@redhat.com>
853 * treeviewutils.c (tree_view_foreach_visible): Handle NULL models.
855 * sysprof.glade, sysprof.c: Revert back to three pane layout.
857 2006-02-17 Bastien Nocera <hadess@hadess.net>
860 * module/sysprof-module.c: (timer_notify), (sysprof_open),
861 (sysprof_release): more ifdef's to make it work with Red Hat
862 Enterprise Linux 4's 2.6.9-based kernel
864 Sat Feb 4 23:53:05 2006 Søren Sandmann <sandmann@redhat.com>
866 * sysprof.glade: Remove ancestors pane in favor of radiobuttons in
869 * sysprof.c: Corresponding changes.
873 Wed Jan 25 11:24:04 2006 Søren Sandmann <sandmann@redhat.com>
877 Mon Jan 16 11:12:13 2006 Søren Sandmann <sandmann@redhat.com>
881 Sun Jan 15 20:22:20 2006 Soeren Sandmann <sandmann@redhat.com>
883 * module/sysprof-module.c (init_module): Print out sysprof version
886 Sun Jan 15 00:24:02 2006 Soeren Sandmann <sandmann@redhat.com>
890 * sysprof.c (build_gui): Rename 'callers' column 'ancestors'
892 * profile.c (profile_list_callers): Make this function list all
893 ancestors of the function. Also make it report correct numbers
896 * profile.c (profile_create_descendants): Remove debug spew
898 Sat Jan 14 18:24:43 2006 Soeren Sandmann <sandmann@redhat.com>
900 * configure.ac, Makefile.am: Only build GUI when the necessary
901 dependencies are found.
903 * sysprof.c (compute_text_width): Remove unused variable
905 * profile.c (build_object_list): Follow next instead of siblings.
907 Fri Jan 13 23:11:33 2006 Søren Sandmann <sandmann@redhat.com>
911 Fri Jan 13 22:59:48 2006 Soeren Sandmann <sandmann@redhat.com>
913 * module/sysprof-module.c (sysprof_open): Initialize retval.
915 * module/sysprof-module.c (sysprof_read): Copy contents of trace,
916 not tail to the buffer.
918 Wed Jan 11 20:31:11 2006 Søren Sandmann <sandmann@redhat.com>
920 * process.c (read_maps): Also make offset a gulong (Samuel Mimram)
922 Wed Jan 11 17:51:54 2006 Søren Sandmann <sandmann@redhat.com>
924 * collector.c: Remove debug spew.
928 Mon Jan 9 09:58:25 2006 Soeren Sandmann <sandmann@redhat.com>
930 * module/sysprof-module.c (timer_notify): Remove START_OF_STACK
933 Mon Jan 9 00:59:21 2006 Soeren Sandmann <sandmann@redhat.com>
935 * process.c (read_maps): Use gulong for addresses. Bug reported by
938 Sun Jan 8 03:22:22 2006 Soeren Sandmann <sandmann@redhat.com>
940 * process.c (process_flush_caches): Resurrect this function.
942 * collector.c (collector_reset): Call it from here
944 Sun Jan 8 02:19:34 2006 Soeren Sandmann <sandmann@redhat.com>
948 Thu Jan 5 17:52:10 2006 Søren Sandmann <sandmann@redhat.com>
950 * TODO: small updates
951 * sysprof.c: cosmetic updates
952 * module/sysprof-module.c: cosmetic updates
954 2005-12-20 Kristian Høgsberg <krh@redhat.com>
956 * module/sysprof-module.c: Remove left over debug print out and
957 add support for multiple clients (readers).
959 Tue Dec 20 16:03:29 2005 Soeren Sandmann <sandmann@redhat.com>
963 * sysprof-text.c (main): Make it try and load the module before
966 2005-12-20 Kristian Høgsberg <krh@redhat.com>
968 * Makefile.am: Dist and install udev rule.
970 * collector.c: (open_fd):
971 * sysprof-text.c: (no_module):
972 * sysprof.c: (on_start_toggled): Update device filename.
974 * 60-sysprof.rules: New udev rule file to set permissions for
977 * module/sysprof-module.c: Switch kernel module to use a misc char
978 device instead. Start and stop the timer on device open and
979 close instead of module load and unload.
981 Tue Dec 20 12:19:34 2005 Søren Sandmann <sandmann@redhat.com>
983 * configure.ac: Add backslashes, pointed out by Ralph Siemsen.
985 Mon Dec 19 17:39:09 2005 Søren Sandmann <sandmann@redhat.com>
987 * sysprof.c (add_text): Make the tree tree-shapeed.
989 Mon Dec 19 15:15:48 2005 Søren Sandmann <sandmann@redhat.com>
991 * module/sysprof-module.c (timer_notify): A few formatting
992 fixes. Hopefully make it work with x86-64.
994 2005-11-29 Soeren Sandmann <sandmann@redhat.com>
996 * sysprof.c (on_descendants_row_expanded_or_collapsed): New
997 function. Update screenshot window when rows are expanded and
1000 2005-11-23 Soeren Sandmann <sandmann@redhat.com>
1002 * sysprof.c (update_screenshot_window): Update the screenshot
1005 Wed Nov 23 00:44:34 2005 Soeren Sandmann <sandmann@redhat.com>
1007 * module/sysprof-module.c: Various cleanups
1011 Tue Nov 22 23:38:09 2005 Soeren Sandmann <sandmann@redhat.com>
1013 * module/sysprof-module.c: Remove unused pages_present()
1016 2005-11-18 Matthias Clasen <mclasen@redhat.com>
1018 * configure.ac: Make configure work.
1020 2005-11-13 Soeren Sandmann <sandmann@redhat.com>
1022 * process.c: Add some experimental (and unused) code to look up
1025 Sat Nov 12 23:39:29 2005 Soeren Sandmann <sandmann@redhat.com>
1027 * sysprof.c (set_sizes): Put the vertical splitter at 3/8 *
1030 * configure.ac: Disable warning.
1032 Sat Nov 12 19:44:43 2005 Søren Sandmann <sandmann@redhat.com>
1034 * module/sysprof-module.c (read_frame): New function that uses
1035 copy_from_user_inatomic() as check_user_pages_readable() has
1036 disappeared in recent kernels.
1038 * module/sysprof-module.c (timer_notify): Use it here.
1042 * configure.ac: Change the wording of the CVS HEAD warning as this
1043 change seems to also have fixed the lockup with rawhide kernels.
1045 Wed Nov 9 00:24:11 2005 Soeren Sandmann <sandmann@redhat.com>
1047 * treeviewutils.[ch]: Add new tree_view_foreach_visible()
1050 * sysprof.c: Add update_screenshot_window() function.
1052 Mon Nov 7 23:42:26 2005 Soeren Sandmann <sandmann@redhat.com>
1054 * sysprof.c: Add beginning of a screenshot
1057 * sysprof.glade: Add screenshot window plus menu items.
1059 * stackstash.c: Remove unused function stack_node_list_leaves()
1061 * xmlstore.c: Various crack
1063 Sun Nov 6 23:03:49 2005 Soeren Sandmann <sandmann@redhat.com>
1065 * profile.c (add_trace_to_tree): Test for !prev instead of !next.
1067 Sun Nov 6 Soeren Sandmann <sandmann@redhat.com>
1071 * collector.c (on_read): Only call back when a new sample actually
1074 * collector.c (collector_stop): close the filedescriptor
1076 * sysprof.c (on_start_toggled): Change sense of test.
1078 * sysprof.c (ensure_profile): Stop the collector.
1080 * sysprof.c (on_reset_clicked): Stop the collector when state
1083 Sun Nov 6 18:31:23 2005 Soeren Sandmann <sandmann@redhat.com>
1085 * stackstash.c (stack_stash_foreach):
1086 * stackstash.c (stack_node_foreach_trace): Make these function
1087 call back with GLists rather than GSLists.
1089 * profile.c (add_trace_to_tree): Iterate backwards instead of
1092 Sun Nov 6 17:06:52 2005 Soeren Sandmann <sandmann@redhat.com>
1094 * profile.c (add_trace_to_tree): Turn this function into a
1097 * stackstash.c (stack_node_foreach_trace): Make this function take
1098 a StackFunction, and reimplement with do_callback().
1100 Sat Nov 5 18:06:40 2005 Soeren Sandmann <sandmann@redhat.com>
1102 * profile.c (profile_create_descendants): Use callbacks from
1105 * stackstash.c (stack_node_foreach_trace): New function
1106 * stackstash.c (do_node_callback): New function
1108 Sat Nov 5 12:39:33 2005 Soeren Sandmann <sandmann@redhat.com>
1110 * profile.c (add_trace_to_tree): Don't compute the total field.
1112 * profile.h (struct ProfileDescendant): Remove 'total' field.
1114 * sysprof.c: Delete DESCENDANTS_TOTAL column and everything
1117 * profile.c: Remove commented out code
1119 * sfile.c (handle_text): Don't copy the text
1121 2005-11-04 Soren Sandmann <sandmann@redhat.com>
1123 * collector.[ch]: Add copyright statement.
1125 * collector.c (on_read): Handle time getting set backwards.
1127 * collector.c: Remove unused empty_filedescriptor() function.
1129 2005-11-03 Soren Sandmann <sandmann@redhat.com>
1131 * configure.ac: Make the message about the kernel source package
1132 more informative. Code from Kjetil Torgrim Homme.
1134 * sysprof.c (on_start_toggled): Only delete the data if the
1135 profiling can actually be started.
1137 2005-11-01 Soeren Sandmann <sandmann@redhat.com>
1139 * sysprof.c (on_start_toggled): Update GUI after showing error
1142 * sysprof.glade: Rename File menu Profiler, move
1143 Start/Profile/Reset here, delete View menu.
1145 Mon Oct 31 23:41:33 2005 Soeren Sandmann <sandmann@redhat.com>
1147 * stackstash.h (struct StackNode): Add "total" field.
1149 * stackstash.c (stack_stash_add_trace): Keep track of the
1152 * profile.c (profile_get_size): Sum the totals of the siblings
1153 instead of all the children.
1155 * profile.c (build_object_list): Correctly compute obj->self
1157 * profile.c (profile_load): Don't ignore the node->total field.
1159 * profile.c (serialize_call_tree): Save node->total instead of the
1162 * profile.c (compute_total): Use n->total instead of computing it
1165 * profile.c: Remove unused sum_children() function.
1169 * process.c (process_get_from_pid): Plug leak.
1171 Mon Oct 31 21:36:37 2005 Søren Sandmann <sandmann@redhat.com>
1173 * sysprof.c (fill_main_list): free the profile objects.
1175 * sysprof.c (struct Application): Remove unused variable.
1177 Mon Oct 31 00:22:58 2005 Soeren Sandmann <sandmann@redhat.com>
1179 * sysprof.c (set_application_title): Use APPLICATION_NAME macro
1181 * sysprof.c (load_file): Don't leak the FileOpenData
1185 2005-10-30 Soren Sandmann <sandmann@redhat.com>
1187 * configure.ac, Makefile.am: Don't link sysprof-text to gtk+.
1189 2005-10-30 Soren Sandmann <sandmann@redhat.com>
1191 * Merge stackstash-reorg branch into HEAD
1193 2005-10-30 Soren Sandmann <sandmann@redhat.com>
1195 * Makefile.am, sysprof.c, sysprof-text.c, collector.[ch]: Rename
1196 profiler -> collector
1198 2005-10-30 Soren Sandmann <sandmann@redhat.com>
1200 * profile.c (profile_load): Reenable loading.
1202 2005-10-30 Soren Sandmann <sandmann@redhat.com>
1204 * profile.c (profile_save): Reenable saving.
1206 Sat Oct 29 21:37:42 2005 Soeren Sandmann <sandmann@redhat.com>
1208 * stackstash.c (stack_stash_foreach): Rename
1209 stack_stash_foreach_reversed() to stack_stash_foreach(). Delete
1210 the old, unused stack_stash_foreach().
1212 * stackstash.h: Remove stack_stash_foreach_reversed().
1214 * profiler.c: Use new name.
1216 Sat Oct 29 18:37:37 2005 Søren Sandmann <sandmann@redhat.com>
1220 Sat Oct 29 17:38:01 2005 Søren Sandmann <sandmann@redhat.com>
1222 * stackstash.[ch]: Add stack_stash_get_root().
1224 * profile.c (profile_get_size): Make this function work again.
1226 Sat Oct 29 16:58:22 2005 Søren Sandmann <sandmann@redhat.com>
1228 * profile.c: Delete all the obsolete stuff related to call tree.
1232 Sat Oct 29 16:52:32 2005 Søren Sandmann <sandmann@redhat.com>
1236 * profile.c: Comment out a lot of unused stuff. Also temporarily
1237 comment out loading and saving.
1239 Sat Oct 29 16:45:34 2005 Søren Sandmann <sandmann@redhat.com>
1241 * profile.c (compute_total): New function.
1243 * profile.c (profile_list_callers): Port this function over to use
1246 Sat Oct 29 16:22:28 2005 Søren Sandmann <sandmann@redhat.com>
1248 * profile.c (build_object_list): Make this function allocate
1251 * stackstash.[ch]: Add stack_stash_foreach_by_address()
1253 * profile.c (profile_get_objects): Use it here to reimplement
1254 profile_get_objects() in terms of the stackstash.
1256 Sat Oct 29 15:33:07 2005 Søren Sandmann <sandmann@redhat.com>
1258 * profile.c (profile_new): Add stash field to profile.
1260 * stackstash.[ch]: Add stack_node_list_leaves();
1262 * profile.c (profile_create_descendants): Port this function over
1263 to use StackNodes instead.
1265 Sat Oct 29 14:43:00 2005 Søren Sandmann <sandmann@redhat.com>
1267 Fix crash pointed reported by Rudi Chiarito.
1269 * stackstash.c (stack_stash_add_trace): Just return if
1272 * sysprof.c (on_read): Only trace if n_addresses != 0.
1274 Sat Oct 29 03:47:03 2005 Soeren Sandmann <sandmann@redhat.com>
1276 * profile.[ch], sysprof.c: Get rid of ProfileObject for callers
1281 Sat Oct 29 02:57:34 2005 Soeren Sandmann <sandmann@redhat.com>
1283 * stackstash.[ch]: Export the StackNode struct, add new
1284 nodes_by_data hashtable to StackStash object, keep track of
1285 whether objects are toplevels.
1287 * TODO: some updates.
1289 Sat Oct 29 14:29:55 2005 Søren Sandmann <sandmann@redhat.com>
1291 * README, TODO: updates
1293 Fri Oct 14 11:44:43 2005 Søren Sandmann <sandmann@redhat.com>
1295 * configure.ac: Add a warning about known bugs in the kernel
1296 module in this branch.
1300 Tue Oct 11 22:40:24 2005 Soeren Sandmann <sandmann@redhat.com>
1302 * module/sysprof-module.c (SAMPLES_PER_SECOND): Add back these
1303 constants, but this time make sure we won't divide by 0 or
1306 Mon Oct 10 22:50:57 2005 Soeren Sandmann <sandmann@redhat.com>
1308 * Merge in changes from HEAD
1310 Thu Oct 6 22:28:39 2005 Soeren Sandmann <sandmann@redhat.com>
1312 * stackstash.c (do_callback): Call stack func if node->size > 0,
1313 not if node->children != NULL
1314 * stackstash.c (do_reversed_callback): same
1315 * profile.c (generate_presentation_name): Delete this function
1316 * profile.c (generate_key): Delete this function.
1318 Wed Oct 5 23:57:08 2005 Soeren Sandmann <sandmann@redhat.com>
1322 * profile.c (generate_call_tree): Delete all the process stuff
1324 * profile.c (node_add_trace): Delete process argument
1326 * profile.c (lookup_profile_object): Don't generate a string key,
1327 just use the address directly.
1329 * profile.c (ensure_profile_object): Use the address as
1332 * profiler.c (profiler_create_profile): Pass in the resolved
1335 Sun Oct 2 21:08:16 2005 Soeren Sandmann <sandmann@redhat.com>
1337 * sysprof.c (on_delete): Work around glib bug 317775
1339 * sysprof-text.c (signal_handler): Work around glib bug 317775
1341 Sun Oct 2 16:31:37 2005 Soeren Sandmann <sandmann@redhat.com>
1343 * stackstash.c (stack_stash_foreach_reversed): Add this function
1345 * process.c: Add a per-process undefined symbol.
1347 * profiler.c (resolve_symbols): Add code to do symbol resolution
1352 Sat Oct 1 18:32:52 2005 Soeren Sandmann <sandmann@redhat.com>
1354 * profile.h, sysprof.c: Remove some unnecessary includes.
1356 Sat Oct 1 18:12:44 2005 Soeren Sandmann <sandmann@redhat.com>
1358 * profiler.[ch]: Add profiler_get_n_samples(); add unused
1359 empty_file_descriptor()
1361 * profile.h: Add include guards
1363 * process.[ch]: Delete process_flush_caches();
1365 * helper.[ch]: Remove these files
1367 * sysprof.c: Use the new profiler class.
1369 * sysprof-text.c: Use the new profiler class
1371 * Makefile.am: Various cleanups.
1373 Sat Oct 1 17:05:43 2005 Soeren Sandmann <sandmann@redhat.com>
1375 * profiler.[ch]: New files containing a profiler class with code
1376 that can be shared between gui and command line.
1378 * sysprof.c (main): Remove some commented out code
1380 * stackstash.c (do_callback): Store the trace on the stack instead
1381 of allocating it dynamically.
1383 Sat Oct 1 01:50:15 2005 Soeren Sandmann <sandmann@redhat.com>
1385 * stackstash.c (sstack_stash_add_trace): Simplify this function a
1388 * helper.c: Include "process.h"
1390 Sat Oct 1 01:29:06 2005 Soeren Sandmann <sandmann@redhat.com>
1392 * profile.c (generate_object_table, generate_call_tree): Don't
1393 take the process as an argument. Instead dig it out of the
1396 * helper.c (add_trace_to_stash): New file, that adds a stacktrace
1397 and a process to a stackstash.
1399 * stackstash.[ch]: Remove all traces of the concept of
1400 Process. Simplify stack_node_add_trace() somewhat.
1402 Mon Oct 10 22:49:03 2005 Soeren Sandmann <sandmann@redhat.com>
1404 * module/sysprof-module.c: Delete lots of commented-out code.
1406 Mon Oct 10 14:33:50 2005 Søren Sandmann <sandmann@redhat.com>
1408 * configure.ac: Add --disable-kernel-module option. Patch from
1411 Mon Oct 10 13:00:20 2005 Robert Love <rml@novell.com>
1413 * module/sysprof-module.c: Don't use INTERVAL or SAMPLES_PER_SECOND
1414 now that we use register_timer_hook(), which hits off the timer
1415 interrupt at HZ freqency (1/250 second on x86).
1417 Sat Oct 1 01:21:57 2005 Soeren Sandmann <sandmann@redhat.com>
1421 Wed Sep 28 12:08:32 2005 Søren Sandmann <sandmann@redhat.com>
1423 * sysprof-text.c: Add my name to the copyright statement
1425 Tue Sep 27 01:33:33 2005 Soeren Sandmann <sandmann@redhat.com>
1427 * process.c (process_lookup_symbol): If the address is 0x01, treat
1428 as kernel, regardless of whether we have a map for that address or
1431 * module/sysprof-module.c (timer_notify): Take a stack trace of
1432 the current process, even when we are in kernel mode. This way we
1433 can assign kernel activity to individual user space stacktraces.
1437 Sat Sep 24 14:41:23 2005 Soeren Sandmann <sandmann@redhat.com>
1439 * configure.ac: Bump version number to 1.1.0
1441 * signal-handler.c: Many, mostly cosmetic, cleanups
1443 * sysprof-text.c: uninstall signal handlers when exiting
1445 Sat Sep 24 00:01:42 2005 Soeren Sandmann <sandmann@redhat.com>
1447 * Nakefile.am, sysprof-text.c: New non-GUI version, written
1448 by Lorenzo Colitti, with some changes by me.
1450 * signal-handler.[ch]: New files that provide a way to get UNIX
1451 signals into a glib main loop.
1453 * README: add Lorenzo to credits
1455 Fri Sep 23 20:46:40 2005 Soeren Sandmann <sandmann@redhat.com>
1457 * sysprof.c (build_gui): If the glade file doesn't exists pop up
1458 an alert suggesting running 'make install'
1460 * sysprof.c: Remove some commented out code
1462 Sat Sep 17 14:35:32 2005 Soeren Sandmann <sandmann@redhat.com>
1464 * Release 1.0 (this comment was added post facto)
1466 * Bump version numbers
1470 Sun Sep 4 19:38:51 2005 Soeren Sandmann <sandmann@redhat.com>
1474 Tue Aug 30 16:57:33 2005 Søren Sandmann <sandmann@redhat.com>
1476 * configure.ac: Complain if we can't find /lib/modules/`uname
1479 * process.c (process_lookup_symbol): Take an address of 0x1 to
1482 * module/sysprof-module.c (timer_notify): When reporting in-kernel
1483 time, give the current pid instead of -1.
1487 Mon Aug 15 20:39:11 2005 Soeren Sandmann <sandmann@redhat.com>
1489 * binfile.c, process.c, profile.c: Fix some warnings.
1491 Mon Aug 1 23:49:51 2005 Soeren Sandmann <sandmann@redhat.com>
1493 * module/sysprof-module.c (REG_INS_PTR): Add support for
1494 amd64/x86-64. Patch from Mike Frysinger.
1496 Sun Jul 10 10:51:52 2005 Soeren Sandmann <sandmann@redhat.com>
1498 * binfile.c: Various minor clean-ups
1500 Sat Jul 9 23:20:39 2005 Soeren Sandmann <sandmann@redhat.com>
1502 * binfile.c (bin_file_new): Cache BinFiles by filename.
1504 * stackstash.c (stack_stash_free): Plug leak
1506 * process.c (process_free_maps): Plug leak
1508 * module/Makefile (install): Check that depmod exists before
1511 Sun Jun 19 15:42:34 2005 Søren Sandmann <sandmann@redhat.com>
1513 * module/sysprof-module.c (SAMPLES_PER_SECOND): Set to 200.
1515 * sysprof.c (on_about_activated): Add version information
1517 * configure.ac: Bump version to 0.91
1521 Sat Jun 18 22:45:04 2005 Søren Sandmann <sandmann@redhat.com>
1525 * configure.ac: Check for Linux 2.6.11
1527 * process.c (get_pidname): Present pid=-1 as [kernel].
1529 * module/sysprof-module.c: Use register_timer_hook() instead of
1530 a kernel timer. Set trace.pid to -1 if interrupt happens in
1533 Sun Jun 12 20:30:37 2005 Soeren Sandmann <sandmann@redhat.com>
1535 * sysprof.c (build_gui): Disable type-ahead search for all the
1538 * sysprof.c (on_object_selection_changed): Call it from here
1540 * sysprof.c (expand_descendants_tree): New function that
1541 determines what nodes to expand in the descendatns view.
1543 Sun Jun 12 13:37:15 2005 Soeren Sandmann <sandmann@redhat.com>
1547 Thu Jun 9 13:28:33 2005 Søren Sandmann <sandmann@redhat.com>
1551 Thu May 26 01:10:45 2005 Soeren Sandmann <sandmann@redhat.com>
1553 * sysprof.c (on_callers_row_activated): Grab focus on the callers
1554 view, not the descendants view.
1556 * sysprof.c (on_read): Add a short "dead" period after a reset,
1557 so that 'samples' will actually be 0 for a while.
1559 Mon May 23 01:37:26 2005 Soeren Sandmann <sandmann@redhat.com>
1561 * README: Remove comment about auto* stuff, link to
1563 http://www.daimi.au.dk/~sandmann/sysprof/
1565 Sun May 23 16:10:00 2005 Soeren Sandmann <sandmann@redhat.com>
1567 -=-=-=-=-=- Release v. 0.9 -=-=-=-=-=-
1569 Sun May 22 21:06:36 2005 Soeren Sandmann <sandmann@redhat.com>
1573 Sat May 21 20:58:59 2005 Soeren Sandmann <sandmann@redhat.com>
1577 * sysprof.c (on_menu_item_activated): New function.
1579 * sysprof.c (build_gui): Hook up menu items.
1581 * module/sysprof-module.c (init_module): Remove module_init/exit
1582 as they cause build failure on kernels < 2.6.11.
1584 Sat May 21 00:59:38 2005 Søren Sandmann <sandmann@redhat.com>
1588 Wed May 18 22:21:52 2005 Søren Sandmann <sandmann@redhat.com>
1590 * module/sysprof-module.c: Remove ref-counting since it didn't
1591 actually do any good.
1593 * sysprof.c (load_module): Use g_spawn_command_line_sync() instaed
1596 Sun May 15 11:56:30 2005 Søren Sandmann <sandmann@redhat.com>
1598 * module/sysprof-module.c: First attempt at making module robust
1599 agains unloading when in use.
1601 Sun May 15 10:24:09 2005 Soeren Sandmann <sandmann@redhat.com>
1603 * Makefile.am, module/Makefile: Do more-or-less what the automake
1604 manual suggests about foreign subdirectories.
1606 Sat May 14 16:36:32 2005 Søren Sandmann <sandmann@redhat.com>
1608 * sysprof.c (set_application_title): Update the title bar on
1611 * treeviewutils.c, sfile.c: Fix compiler warnings
1613 * Makefile.am: define PIXMAPDIR
1615 Sat May 14 15:49:52 2005 Søren Sandmann <sandmann@redhat.com>
1621 * AUTHORS, INSTALL, Makefile.am, NEWS, configure.ac: New files
1623 * module/Makefile: New file
1625 * module/sysprof-module.c, module/sysprof-module.h: Move these
1626 files to their own directy, as the kernel build system does not
1627 work very well with auto*.
1629 * sysprof.c, autogen.sh: Some auto* changes.
1631 Sun May 8 16:31:32 2005 Søren Sandmann <sandmann@redhat.com>
1633 * TODO: more updates
1635 * sysprof.c: Try loading the module before complaining
1637 Sun May 8 15:45:08 2005 Søren Sandmann <sandmann@redhat.com>
1639 * sysprof-module.c (do_generate): Restore lost wake_up().
1641 * sfile.c: Comment out use of bz2.
1643 * Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR
1645 * sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here.
1649 Sat May 7 13:57:17 2005 Søren Sandmann <sandmann@redhat.com>
1651 * sfile.c (sfile_output_free): Implement this function
1653 * sfile.c (sfile_input_free): Implement this function
1655 Fri May 6 23:38:48 2005 Søren Sandmann <sandmann@redhat.com>
1657 * sysprof-module.c (do_generate): Another desparate hack to try
1658 and prevent the oops.
1660 Sat Apr 30 16:57:23 2005 Soeren Sandmann <sandmann@redhat.com>
1662 * process.c (PAGE_SIZE): Use getpagesize()
1664 * TODO: More updates
1666 Sat Apr 30 15:44:12 2005 Søren Sandmann <sandmann@redhat.com>
1670 * sysprof-module.c (get_regs): Change the way we get registers for
1671 a task so that it works with 2.6.11
1673 Sat Apr 23 19:17:18 2005 Søren Sandmann <sandmann@redhat.com>
1677 Sat Apr 23 19:12:52 2005 Søren Sandmann <sandmann@redhat.com>
1679 * profile.c: Store a pointer to the root of the call tree
1681 * profile.c (profile_load): Call sfile_input_free()
1683 * sfile.c (sformat_free): Implement this function
1685 Sat Apr 23 18:38:46 2005 Søren Sandmann <sandmann@redhat.com>
1687 * sfile.c (post_process_read_instructions): Check pointer types
1689 * sfile.c (post_process_instructions_recurse): Delete this unused function
1691 Sat Apr 23 17:49:33 2005 Søren Sandmann <sandmann@redhat.com>
1693 * sysprof-module.c (page_readable): New function to check if the
1694 page is readable before reading. Noop on kernel <= 2.6.11
1696 * sysprof-module.c (get_mm, put_mm): New functions to confine
1699 Sat Apr 23 17:48:22 2005 Søren Sandmann <sandmann@redhat.com>
1701 * Makefile (MODCFLAGS): Disable optimization as I suspect
1702 the oops is related to miscompilation.
1704 Fri Apr 22 00:09:16 2005 Soeren Sandmann <sandmann@redhat.com>
1706 * sysprof-module.c (read_user_space): On >= 2.6.11 check that the
1707 pages are present and readable before reading them.
1709 Tue Apr 19 23:26:45 2005 Kristian Høgsberg <krh@bitplanet.net>
1711 * Makefile (check): Add simple check target that runs a sanity
1712 check of the build environment.
1714 Sun Apr 17 00:20:41 2005 Soeren Sandmann <sandmann@redhat.com>
1716 * sysprof.c (on_open_clicked): Factor out some stuff in their own
1719 * sysprof.c (load_file): Idle handler to load files given on the
1722 * sysprof.c (main): If a filename is passed on the command line,
1723 load it in an idle handler.
1725 Sun Apr 17 00:19:03 2005 Soeren Sandmann <sandmann@redhat.com>
1729 Sat Apr 16 19:51:48 2005 Soeren Sandmann <sandmann@redhat.com>
1731 * sysprof-module.c (read_user_space): Read a whole page at a time.
1733 Sat Apr 16 14:15:55 2005 Soeren Sandmann <sandmann@redhat.com>
1737 * sysprof-module.c (x_access_process_vm): On kernel 2.6.9 and
1738 later use get_task_mm()/mmput() instead of directly accessing
1741 Sat Apr 16 01:54:18 2005 Søren Sandmann <sandmann@redhat.com>
1743 * TODO: Add backtrace for kernel oops.
1745 Fri Apr 15 16:37:45 2005 Soeren Sandmann <sandmann@redhat.com>
1749 * sysprof.c (sorry): If you hit profile when the module isn't
1750 loaded, pop up an annoying dialog.
1752 * sysprof-module.c: Clean-ups, remove various unused abstractions.
1754 Sat Apr 9 17:49:13 2005 Søren Sandmann <sandmann@redhat.com>
1756 * COPYING: Add a copy of the GPL
1758 Sat Apr 9 17:04:50 2005 Søren Sandmann <sandmann@redhat.com>
1760 * Makefile: Remove debug spew
1762 * *: Add copyright notices
1764 Fri Apr 8 21:30:02 2005 Søren Sandmann <sandmann@redhat.com>
1766 * TODO: More updates
1768 Fri Apr 8 20:48:58 2005 Søren Sandmann <sandmann@redhat.com>
1770 * sysprof.c (build_gui): Load the icon, hook up "about"
1773 * sysprof.c (on_about_activated): New function. Show an about
1776 * sysprof.c (struct Application): Add an icon field
1780 * sysprof-icon.png: Icon, drawn by Diana Fong
1782 Tue Apr 5 23:01:02 2005 Søren Sandmann <sandmann@redhat.com>
1784 * binfile.c (read_symbols): Put back the weird loop, and stop
1785 pretending I understand this. This time use SEC_ALLOC instead of
1788 Tue Apr 5 20:13:44 2005 Søren Sandmann <sandmann@redhat.com>
1790 * process.c (process_ensure_map): Add commented out debug spew.
1792 * process.c (process_lookup_symbol): Remove all should_offset()
1793 function and all references to it.
1795 * binfile.c (bin_file_lookup_symbol): Document that address must
1796 be in file coordinates.
1798 * binfile.c (read_symbols): Remove misguided code that tried to
1799 guess the load address of the file. Instead, do all computations
1800 in "file coordinates". Also fix a memory leak. Add commented out
1803 * binfile.c (separate_debug_file_exists): Fix signedness
1805 Tue Apr 5 14:34:43 2005 Søren Sandmann <sandmann@redhat.com>
1807 * sysprof-module.c (x_access_process_vm): Make it compile with
1812 Mon Apr 4 00:57:11 2005 Soeren Sandmann <sandmann@redhat.com>
1814 * sysprof.c: Busy cursors in many more places.
1818 Sun Apr 3 23:28:45 2005 Soeren Sandmann <sandmann@redhat.com>
1820 * sysprof-module.c (do_generate): Re-schedule the timeout here
1821 instead of in on_timer().
1823 * sysprof-module.c (on_timer): Only block tasks in the
1826 Sun Apr 3 17:03:33 2005 Soeren Sandmann <sandmann@redhat.com>
1828 * sysprof-module.c (queue_generate_stack_trace): Put current
1831 * sysprof-module.c (do_generate): Wake up the traced process
1833 Thu Mar 31 23:09:09 2005 Soeren Sandmann <sandmann@redhat.com>
1835 * sysprof.c (build_gui): Remove stray %
1837 Thu Mar 31 21:18:13 2005 Søren Sandmann <sandmann@redhat.com>
1839 * treeviewutils.c (add_double_format_column): Right justify numbers
1841 * sysprof.c (build_gui): Add a space after the numbers
1843 * sysprof.c (on_callers_row_activated): Focus object view
1845 * sysprof.c (on_descendants_row_activated): Focus new descendants
1848 Thu Mar 31 19:51:51 2005 Søren Sandmann <sandmann@redhat.com>
1850 * sysprof-module.c (do_generate): Walk all threads, not just all
1853 * TODO: Add disk profiling ideas
1855 Thu Mar 31 00:19:47 2005 Soeren Sandmann <sandmann@redhat.com>
1857 * sysprof.c (set_busy): Make this function work
1859 * sysprof.c (on_profile_toggled): Use it here
1861 * sysprof.c (on_object_selection_changed): And here
1863 * profile.c (add_trace_to_tree): Use GPtrArrays instead of
1864 GHashTable and GList.
1866 Mon Mar 28 11:09:02 2005 Soeren Sandmann <sandmann@redhat.com>
1870 Sat Mar 26 19:26:52 2005 Søren Sandmann <sandmann@redhat.com>
1872 * sysprof.c: Show the right number of samples afte Open; remove
1873 shadows from menu bars and toolbars; some other tweaks.
1875 Sat Mar 26 11:26:00 2005 Soeren Sandmann <sandmann@redhat.com>
1879 * sfile.c (add_string): Use g_markup_escape_text() to escape the
1880 string before adding it to the file.
1882 * sysprof.c (empty_file_descriptor): New function to make sure
1883 samples generated before profiling started are ignored.
1884 (set_busy): New commented out function to set a busy cursor.
1886 Fri Mar 25 21:31:08 2005 Søren Sandmann <sandmann@redhat.com>
1888 * sysprof.c (update_sensitivity): Comment out sensitivity of reset button.
1890 Fri Mar 25 21:25:31 2005 Søren Sandmann <sandmann@redhat.com>
1892 * sysprof.c (get_current_object): Return NULL if nothing is
1895 Fri Mar 25 20:54:08 2005 Søren Sandmann <sandmann@redhat.com>
1897 * TODO: More updates
1899 Fri Mar 25 20:25:44 2005 Søren Sandmann <sandmann@redhat.com>
1901 * README: Require gtk+ 2.6
1903 * treeviewutils.c (add_plain_text_column): Ellipsisize text columns.
1905 Fri Mar 25 19:39:24 2005 Søren Sandmann <sandmann@redhat.com>
1907 * TODO: Remove "loading and saving"
1909 * sysprof.glade: Add ellipsises to Open and Save menu items.
1911 * sysprof.c (overwrite_file): Add this function, cutted-and-pasted
1914 * sysprof.c (on_save_as_clicked, on_open_clicked): Use
1915 GtkFileChoosers to pick the names.
1917 * sysprof.c: Various GUI updates.
1919 Fri Mar 25 19:36:28 2005 Søren Sandmann <sandmann@redhat.com>
1921 * sfile.c (bz2_compress): Add this function Don't actually make
1922 any produce use of it.
1924 * profile.c (make_hash_table): Get rid of warning
1926 Thu Mar 24 19:09:33 2005 Søren Sandmann <sandmann@redhat.com>
1928 * sysprof.c: Various GUI updates
1932 * sfile.[ch] (sformat_new_optional): Add some notes about an
1933 "optional" construction.
1935 Wed Mar 23 00:04:07 2005 Soeren Sandmann <sandmann@redhat.com>
1937 Primitive loading and saving.
1939 * sysprof.c (on_open_clicked): Hook up loading.
1941 * sfile.c: Add a copy of g_file_replace() from glib CVS HEAD.
1943 * sfile.c (add_string): Escape and quote the string
1945 * sfile.c (sfile_load): Initialize current_instruction and
1946 instructions_by_location
1948 * sfile.c (post_process_instructions_recurse): Handle NULL
1951 * sfile.c (handle_begin_element, handle_end_element, handle_text):
1952 Move error handling here from state_transition_begin/text/end.
1954 * sfile.c (handle_text): Discard whitespace-only strings
1956 * sfile.c (sfile_get_pointer, sfile_get_integer,
1957 sfile_get_string): expect both begin, value, and end transitions.
1959 * sfile.c (hook_up_pointers): Only treat instructions as pointer
1960 values when they are. Handle NULL targets properly.
1962 * sfile.c (get_number): Fix a few read-freed-data bugs
1964 * profile.c (profile_load): Call sfile_end_get() for the profile;
1965 build the nodes_by_objects hash table. Build the call tree.
1967 * profile.c (create_format): Don't store next pointer, but do
1968 store total, self and toplevel.
1970 * profile.c (make_hash_table): New function to build
1971 nodes_by_object hashtable from loaded data
1973 Sat Mar 12 11:05:19 2005 Soeren Sandmann <sandmann@redhat.com>
1975 * sysprof-module.c: Fix small bug in add_timeout()
1976 * sysprof.c (build_gui): More descriptive tree labels
1979 Thu Mar 10 16:37:52 2005 Søren Sandmann <sandmann@redhat.com>
1981 * sysprof.c (build_gui): s/Cummulative/Cumulative/. Pointed out by
1984 Mon Mar 7 14:47:09 2005 Søren Sandmann <sandmann@redhat.com>
1986 * README: Add note that you need to compile the module with
1987 the same compiler that compiled the kernel.
1989 Sun Mar 6 22:56:21 2005 Soeren Sandmann <sandmann@redhat.com>
1991 * sfile.c: Generate id's for objects and pointers.
1993 Sat Mar 5 01:09:33 2005 Soeren Sandmann <sandmann@redhat.com>
1995 * sfile.c: Bug fixes. Add actual generation.
1997 Fri Mar 4 13:47:13 2005 Søren Sandmann <sandmann@redhat.com>
1999 * sysprof.c: Remove include of non-existing tracing.h
2001 Thu Mar 3 23:48:13 2005 Soeren Sandmann <sandmann@redhat.com>
2003 * profile.c (profile_load): Write this function.
2005 * sfile.c: Add support for user defined record and list types.
2006 Simplify logic a lot.
2008 Wed Mar 2 23:39:50 2005 Soeren Sandmann <sandmann@redhat.com>
2010 * profile.[ch], sfile.[ch]: Experiment with a
2011 file-format-description format.
2013 * sysprof.c: Add commented out code using /proc/ based
2016 Fri Jan 21 11:23:54 2005 Søren Sandmann <sandmann@redhat.com>
2018 * README: Some updates - add note about SMP kernels.
2020 * sysprof-module.c: Go back to just sampling the current
2023 * ChangeLog: I guess these do make sense, so start one.