Sat Mar 29 11:14:38 2008 Søren Sandmann * unwind.[ch], testunwind.c: Beginning of a dwarf unwinder. Sat Mar 29 08:05:46 2008 Søren Sandmann * module/sysprof-module.c: x86 merge happened in 2.6.25 2008-03-23 Soren Sandmann * sysprof.c (queue_show_samples): Update samples immediately when reset and start is clicked. 2008-03-20 Soren Sandmann * module/sysprof-module.c (trace_kernel): Use kernel builtin tracer instead of copying everything ourselves. 2008-03-20 Soren Sandmann * module/sysprof-module.c: Support for 2.6.24 and newer 2008-02-23 Soren Sandmann * process.c (process_lookup_symbol): Initialize offset to 1. Don't do kernel lookup for unmapped addresses. 2008-02-17 Soren Sandmann * collector.c (lookup_symbol): Add commented out code to reject callback. * elfparser.c (struct ElfParser): Store the filename if any (elf_parser_get_sym_address): Subtract the load address, so the result will be an offset into the text section. * process.[ch] (process_lookup_symbol): Add an offset out-argument * binfile.[ch] (bin_symbol_get_address): New function * TODO: updates 2008-02-16 Soren Sandmann * module/sysprof-module.c (nt_memcpy): Add a memcpy() that uses nontemporal writes. (copy_kernel_stack): Add commented-out use of it here. 2007-11-20 Soren Sandmann * binfile.c (find_separate_debug_file): Use hash table instead of list. 2007-11-18 Soren Sandmann * module/sysprof-module.c (heuristic_trace): Make heuristic stack scanning more accurate Sun Nov 18 18:12:09 2007 Søren Sandmann * module/sysprof-module.c (heuristic_trace): Crude heuristic stack scanning on x86-64. * module/sysprof-module.c (copy_kernel_stack): New function Sun Nov 18 13:23:39 2007 Søren Sandmann * module/sysprof-module.c (sysprof_read): Return ssize_t instead of int. * module/sysprof-module.c (heuristic_trace): Beginning of heuristic user stack scanning. 2007-11-17 Soren Sandmann * collector.c (collector_create_profile): Don't collect traces here. 2007-11-16 Soren Sandmann * module/sysprof-module.c (n_traces_available): Formatting * module/sysprof-module.c (sysprof_poll): Require 16 traces rather than 8. 2007-11-16 Soren Sandmann * TODO: updates * module/sysprof-module.c (sysprof_poll): Only select readable when there is at least eight traces available * collector.c (collect_traces): New function, old on_read() * collector.c (collector_create_profile): Collect traces here as well. 2007-11-16 Soren Sandmann * TODO: Updates * process.c (process_locate_map): Move map to front * profile.c (profile_load): Ignore the toplevel field in the file since we can compute it ourselves. * stackstash.c (stack_stash_decorate): New function * stackstash.c (stack_stash_add_trace): Decorate the tree lazily instead of on each sample. 2007-10-22 Soren Sandmann * process.c (look_for_vmlinux): Use an array instead of a list. Look for vmlinux in the source directory. * elfparser.c (elf_parser_get_crc32): Only use MADV_DONTNEED if the data is file-backed. * TODO: updates. Various formatting fixes 2007-10-22 Soren Sandmann * profile.c (add_trace_to_tree): Make this a two-pass algorithm, one pass to add the trace, and one to do the accounting. 2007-10-22 Soren Sandmann * sfile.c: Fix some spelling errors * profile.[ch], sysprof.[ch]: Change "non_recursive" to "cumulative" to match the UI * profile.c (add_trace_to_tree): Add a couple of asserts. * TODO: updates 2007-10-22 Soren Sandmann * elfparser.c (read_table): Don't discard weak symbols. * elfparser.c (elf_parser_lookup_symbol): If the symbol has unknown size, don't check that the address is in range. 2007-10-21 Soren Sandmann * module/Makefile: Remove CFLAGS reminiscence of 2.4 support. 2007-10-20 Soren Sandmann * collector.c (on_read): Call callback with an extra boolean indicating whether the sample read was the first one * collector.c (add_trace_to_stash): Allocate addresses on the stack if possible. * sysprof.c (on_new_sample): Only call update_sensitivity() on the first sample. * stackstash.c (stack_stash_add_trace): Move match to front 2007-09-16 Soren Sandmann * process.c (process_lookup_kernel_symbol): Add support for looking up kernel symbols from /proc/kallsyms * sysprof-text.c (dump_data): Print note that the file is being saved. * module/sysprof-module.[ch] (timer_notify): Send a copy of the kernel stack to userspace. * collector.c: Do kernel symbol lookups. 2007-08-26 Soren Sandmann * profile.c (profile_get_size): Compute the size by simply summing the size of the siblings. They are toplevel by definition, and this works if the siblings for some reason has the same address. 2007-08-26 Soren Sandmann * treeviewutils.c (process_iter): Reformat and fix various minor issues. 2007-08-25 Soren Sandmann * treeviewutils.c (tree_view_set_model_with_default_sort): Work around GTK+ bug 405625. 2007-08-04 Soren Sandmann * sysprof.c: Update to use new tree view API. * treeviewutils.c: Do customized sorting to get default sort orders on columns. Workaround for GTK+ bug 333791. 2007-03-24 Soren Sandmann * elfparser.c (elf_parser_get_crc32): madvise() 2007-03-24 Soren Sandmann * sysprof.c (update_screenshot_window): Update screenshot window in an idle handler to deal with the case where someone presses "Shift Right Arrow" Mon Mar 5 16:55:39 2007 Søren Sandmann * binfile.c (already_warned): New function. Only warn once about bad CRC's. 2007-03-02 Soren Sandmann * sysprof-text.c (dump_data): Make this function static 2007-03-02 Soren Sandmann * collector.c (collector_create_profile): Remove FIXME. 2007-03-02 Soren Sandman * process.c (free_process): Free the undefined symbol 2007-03-02 Soren Sandmann * process.c (process_get_vdso_bytes): Make a copy of the vdso bytes to make valgrind a little quieter. * binparser.c: Note to self: Save the file, *then* commit. 2007-03-02 Soren Sandmann Fix two leaks, both pointed out by Kjartan Maraas * binparser.c (bin_parser_free): Free the record list * elfparser.c (elf_parser_free): Free the symbol table. 2007-02-24 Soren Sandmann * TODO: Updates * binparser.[ch]: Get rid of BIN_UINTn types; replace with single BIN_UINT, where the user must provide the width * elfparser.c: Update to new binparser API 2007-02-24 Soren Sandman * binparser.[ch]: Switch to a simpler conceptual model. * elfparser.c: Update to binparser API changes. * TODO: updates Fri Feb 9 16:53:29 2007 Søren Sandmann * Update copyright notices Fri Feb 9 16:16:34 2007 Søren Sandmann * elfparser.c (struct ElfSym): Don't store the size of the symbol. (elf_parser_lookup_symbol): Look it up here instaed. * binfile.c (bin_file_free): Use pre-decrement instead of post-decrement. (bin_file_check_inode): Clarify the warning a little Mon Jan 22 17:42:29 2007 Søren Sandmann * sysprof-icon-32.png * sysprof.c: Add a 32x32 version (also from Diana) of the icon. Mon Jan 22 16:37:12 2007 Søren Sandmann * sysprof-icon-16/24/48.png: * sysprof.c: Add new icons from Diana. 2007-01-05 Behdad Esfahbod * module/Makefile: Correct $PWD usage, so make install works from inside module/. 2006-12-09 Soren Sandmann * module/sysprof-module.c: Add forgotten put_cpu_var(). * sfile.c (build_instructions): Parse in chunks of 65536 to improve locality. 2006-11-23 Soren Sandmann * process.c (read_maps): Set inode for vdso to 0. * binfile.c (read_inode): Return -1 on error, 0 on vdso (bin_file_new): Only read the inode if the file actually exists and is an elf file. (bin_file_check_inode): Return FALSE if there is no file. 2006-11-22 Soren Sandmann * sfile.c (sfile_load): Use GMappedFile instead g_file_get_contents(). (build_instructions): Pass length instead of -1. (sfile_output_save): Use g_file_set_contents() instead of cut-and-pasted copy. 2006-11-22 Soren Sandmann * profile.c (add_trace_to_tree): Move match to front (add_trace_to_tree): Break as soon as a recursive call is found. * stackstash.c (do_callback): Manual tail call optimization. 2006-11-20 Soren Sandmann * sysprof.c (ensure_profile): reset the collector after generating the profile. * stackstash.c (struct StackStash): Add cached_nodes and blocks. (stack_node_new): Allocate stack nodes in blocks. 2006-11-19 Soren Sandmann * profile.c (profile_load): Use stack allocated variables to avoid taking addresses of bitfields. * stackstash.h (struct StackNode): Store toplevel as bitfield 2006-11-19 Soren Sandmann * profile.c (profile_load): Use stack_node_new() o (profile_load): Use set_root() instead of new_from_root(); * stackstash.c (stack_stash_new_from_root): Delete this function (stack_stash_set_root): Add this function (stack_node_new): Export this function 2006-11-19 Soren Sandmann * binparser.h: Declare bin_parser_free(); * elfparser.c (elf_parser_get_crc32): Use madvise(DONT_NEED) on the file. * process.c (struct Process): Remove do_offset. Thu Nov 9 17:55:24 2006 Søren Sandmann * TODO (-): udpate Thu Nov 9 17:31:17 2006 Søren Sandmann * binfile.c (get_debug_file): Start with "/usr", not "usr". Pointed out by Tim Rowley. * binparser.c (bin_parser_align): Pass byte_width on instead of hardcoding 4. Thu Nov 9 16:47:35 2006 Søren Sandmann Look in the correct directory for debug info files. (Tim Rowley) * binfile.c (N_TRIES): Add this instead of hardcoding '3' * binfile.c (get_debug_file): Also look in "/usr/lib/debug", in addition to "$(libdir)/debug". * binfile.c: Comment out the debug spew. Thu Nov 9 16:17:11 2006 Søren Sandmann * binfile.c: Add debug spew. Thu Nov 9 16:01:47 2006 Søren Sandmann * sysprof-text.c (main): Die immediately if the output file is a directory. * autogen.sh (DIE): Also work when automake-1.9 is installed. 2006-11-02 Soren Sandmann * sysprof.c (disable_g_slice): New function * sysprof.c (main): Call it from here. 2006-11-02 Soren Sandmann Valgrind: * binparser.c (bin_parser_free): Add this function * elfparser.c (elf_parser_free): Call bin_parser_free() * sysprof.c (compute_text_width, add_text): Plug leaks * collector.c (add_trace_to_stash): Copy n_addresses to a stack variable instead of reading it out of the mmap'ed area all the time. (That way if there is an overrun, we won't write too much into the address array). 2006-10-26 Soren Sandmann * module/sysprof-module.h (struct SysprofStackTrace): Increase the max number of addresses to 1021, reorganise SysprofMmapArea to make the traces naturally page aligned. * TODO: Update 2006-10-26 Soren Sandmann * collector.c (resolve_symbols): Combine processes with identical commandlines here. 2006-10-25 Soren Sandmann * profile.c (add_trace_to_tree): Make the pointer array static to improve cache behavior and reduce calls to malloc(). * process.c (lookup_kernel_symbol): Remove obsolete comment. 2006-10-25 Soren Sandmann * process.c (free_maps): Take a pointer to a variable that will be set to 0. * process.c: Stop coalescing processes with the same cmdline. * TODO: updates. 2006-10-24 Soren Sandmann * process.c (page_size): replace PAGE_SIZE macro with this function. * binfile.c: Remove obsolete comment. 2006-10-24 Soren Sandmann * process.c (struct Process): Use an array instead of list of maps. 2006-10-23 Soren Sandmann * module/sysprof-module.c (init_module): Use PAGE_SIZE - 1 instead of 4096. 2006-10-22 Soren Sandmann Communicate traces to userspace through shared memory instead of copying. * module/sysprof-module.c: Store the traces in a SysprofMmapArea. (sysprof_mmap): Implement this method. (sysprof_nopage): Implement this. (sysprof_read): Just reset the tail pointer and return zero. * module/sysprof-module.h (struct SysprofMmapArea): New structure. * collector.c (collector_stop): Unmap the device (in_dead_period): New function (on_read): Read the traces out of mmap()ed area instead of reading them. Call read() to prevent poll() from firing. (struct Collector): New members map_area and current. * Makefile.am (insert-module): Prefix modprobe with /sbin * collector.c (open_fd): mmap() the sysprof device. 2006-10-11 Soren Sandmann * profile.c (profile_list_callers): Skip nodes that don't have a parent. 2006-10-09 Soren Sandmann * profile.c (profile_list_callers): Make this function return a list of immediate callers again. * sysprof.c (build_gui): Change label back to "Callers" * process.c (get_kernel_symbols): Only attempt to read the kernel symbols once. 2006-10-09 Soren Sandmann * binfile.c (bin_file_get_inode): Remove this function * binfile.c (bin_file_check_inode): New function. Only print inode warning once per BinFile. * process.c (process_get_vdso_bytes): Remove debug spew 2006-10-09 Soren Sandmann * process.c (process_get_vdso_bytes): New function. * elfparser.c (parser_new_from_data): export this function as elf_parser_new_from_data(). * binfile.c (read_inode): Don't stat if filename is '[vdso]'. Instead just return -1; (bin_file_new): Use elf_parser_new_from_data() when the file is [vdso]. * process.c (read_maps): Change the offset of the vdso map to 0 and the inode to -1. * elfparser.c (elf_parser_lookup_symbol): Remove unused 'size' variable. * binfile.c (find_separate_debug_file): Deal with cycles in the debuglink graph. * configure.ac: Set version to 1.1.0. Print warning about HEAD. 2006-10-08 Soren Sandmann * binfile.c: Don't include bfd.h 2006-10-08 Soren Sandmann * sysprof.c (process_options): New function to support --version option 2006-10-08 Soren Sandmann * elfparser.c (struct ElfParser): Add a cache of the text section. * binparser.c (struct BinParser): Add a cache of a bin record to get rid of malloc()/free() overhead. * elfparser.c (struct ElfSym): Cache the size of the symbol 2006-10-08 Soren Sandmann * elfparser.c: Remove now unused load-address heuristic * comment out debug spew 2006-10-08 Soren Sandmann * elfparser.c (read_symbols): Use "SHT_DYNSYM" for ".dynsym". 2006-10-08 Soren Sandmann * binfile.c (find_separate_debug_file): Support _debuglink recursions. * elfparser.c: Check that the sections have valid types before using them. 2006-10-08 Soren Sandmann * Delete various debug spew 2006-10-07 Soren Sandmann Deal with address offsets. Address lookup is now: - First convert the address to an offset into the file - Then convert to an offset into the text segment - Then add the load address of the text segment (found in the debug binary) - Then finally lookup the result in the symbol table. * elfparser.c (elf_parser_get_text_offset): New function * elfparser.c (elf_parser_lookup_symbol): Treat addresses as offsets into the text segment. * binfile.c (bin_file_new): Store the offset of the text section of the actual binary (not the debug one) (bin_file_lookup_symbol): Subtract text_offset before passing address to elf parser. * module/sysprof-module.c: Remove include of linux/config.h 2006-08-27 Soren Sandmann * binparser.c: Remove old commented out code * module/sysprof-module.c: Add commented out code accessing entire stack. 2006-08-27 Soren Sandmann * module/Makefile ($(MODULE).o): Add dependency on sysprof-module.h * elfparser.c (elf_parser_get_eh_frame): Add this function. Remove some commented out code. Sat Aug 26 19:05:51 2006 Søren Sandmann * Formatting fixes in header files. 2006-08-26 Soren Sandmann * elfparser.c: Update to new API * binparser.h: Delete commented out declarations. Add new functions. * binparser.c: Delete ParserFrame, replace with one current offset. (convert_uint): Make static (bin_parser_get_uint): Delete this function (bin_parser_get_string): Change this function to use current offset instead of frame offset. (bin_parser_goto): New function (bin_parser_align): New function (bin_parser_get_uint32): New function (bin_parser_begin): Delete this function (bin_parser_end): Delete this function (bin_parser_index): Delete this function (bin_record_get_string_indirect): Make this function use _goto() instead of _begin()/_end() (bin_parser_get_offset): Make this function return current offset 2006-08-26 Soren Sandmann * binparser.[ch]: Add new struct BinRecord. Comment out functions related to formats. Add new functions to get fields out of BinRecords. * elfparser.c: Update to new API. 2006-08-26 Soren Sandmann * binparser.h: Add new bin_record() functions * binparser.c: Implement them. 2006-08-22 Soren Sandmann * collector.c (unique_dup): Demangle instead of strdup. 2006-08-21 Soren Sandmann * elfparser.[ch] (elf_parser_get_sym_name): Rename elf_sym_get_* to elf_parser_get_sym_* and make these functions take a parser. (parser_from_sym): Delete this function. (elf_parser_new): Don't add to all_elf_parsers (elf_parser_free): Don't remove from all_elf_parsers (elf_parser_new): Rename to parser_new_from_file() (elf_parser_new_from_file): Rename to elf_parser_new * binfile.c: Update for new elfparser API * TODO: updates 2006-08-21 Soren Sandmann * binfile.c (struct BinFile): Add ref_count and filename (bin_files): Add map from filenames to BinFiles (bin_file_new): First look for BinFile in the cache. (bin_file_free): If refcount reaches 0, remove BinFile from cache. * TODO: Updates 2006-08-21 Soren Sandmann * process.c (process_lookup_symbol): Pass map->bin_file to bin_symbol_get_name. * binfile.h (bin_symbol_get_name): Add BinFile parameter * elfparser.c (elf_demangle): Use options DMGL_PARAMS | DMGL_ANSI * TODO: Updates * binfile.c: Rewrite this file to use ElfParser instead of libbfd. * configure.ac: Drop dependencies on libbfd and libiberty. 2006-08-21 Soren Sandmann * TODO: Update * elfparser.c (elf_parser_lookup_symbol): Change sense of size check. 2006-08-20 Soren Sandmann * elfparser.c (elf_parser_get_crc32): Initialize crc to 0xffffffff and invert it before returning. * elfparser.h: Declare elf_parser_get_debug_link() 2006-08-20 Soren Sandmann * elfparser.c (elf_parser_get_load_address): Comment out debug spew. (elf_parser_lookup_symbol): Add check that address is actually within the bounds of the found function. 2006-08-20 Soren Sandmann * process.h: Make process_lookup_symbol() return a string. Delete process_lookup_symbol_with_filename(). * process.c (struct Process): Make "undefined" a string (lookup_kernel_symbol): Return a string (process_lookup_symbol): Return a string, not a symbol * collector.c (unique_dup): Take a string instead of a Symbol. (lookup_symbol): Make sym a string instead of a Symbol. * binfile.c (bin_symbol_get_name): New function. * binfile.[ch] (struct BinSymbol): Rename Symbol to BinSymbol and make it an opaque structure. * binfile.[ch]: Remove unused symbol operations 2006-08-20 Soren Sandmann * elfparser.c (elf_parser_new_from_file): New function 2006-08-20 Soren Sandmann * elfparser.c (elf_parser_get_debug_link): New function * elfparser.c: Delete SymbolTable typedef * binparser.[ch] (bin_parser_get_data): New function (bin_parser_get_length): New function * elfparser.[ch] (elf_parser_get_crc32): New function * TODO: Updates * elfparser.c (elf_parser_lookup_symbol): Offset passed in addresses by the load address. * elfparser.c (elf_parser_get_load_address): New function to compute the load address of the beginning of the file. 2006-08-20 Soren Sandmann * elfparser.c (elf_sym_get_name): Read the name out of the file instead of out of the struct. * elfparser.c (struct ElfSym): Store an offset instead of the name. * elfparser.c (all_elf_parsers): Keep track of all elf parsers created. 2006-08-20 Soren Sandmann * Makefile.am, demangle.c: New file, made out of files from libiberty in binutils. * binfile.c: Use the new sysprof_cplus_demangle() function * elfparser.[ch]: Add code to lookup symbols. Add demangling function * testelf.c: Various tests 2006-08-19 Soren Sandmann * elfparser.c: Many cleanups. 2006-08-16 Soren Sandmann * testelf.c: Really add this file. 2006-08-15 Soren Sandmann Add beginning of an ELF parser. * binparser.[ch]: New files * elfparser.[ch]: New files * testelf.c: New file * Makefile.am (testelf_SOURCES): Add new testelf program. Sat Aug 12 16:13:05 2006 Søren Sandmann * module/sysprof-module.c: Make n_samples per-cpu. Add an atomic variable in_timer_notify and use it to lock out simultaneous timer interrupts. * stackstash.c (decorate_node): Make decorate_node() static * TODO Fri Aug 11 11:41:15 2006 Søren Sandmann * TODO: Updates 2006-08-08 Soren Sandmann * sysprof.c (main): Make the load_file() idle low priority to avoid weird toolbar flash. * TODO, NEWS, README: updates. 2006-07-31 Paolo Borelli * sysprof.c (expand_descendants_tree): small cleanup. 2006-07-31 Soren Sandmann * stackstash.[ch]: Add a destroy notifier to StackStash * collector.c (collector_create_profile): Pass g_free as destroy notifier. * collector.c (collector_reset): Pass NULL as destroy notifier * profile.c (profile_load): Pass g_free here. * profile.c (struct Profile): Remove unused "Node" typedef * collector.c (resolve_symbols): Free the array here. * TODO: various updates. 2006-07-30 Soren Sandmann * signal-handler.c: Simplify this file a bit, and make it not rely on atomic pointer writes. 2006-07-18 Bastien Nocera * configure.ac: we need at least glib 2.6.0 for the gstdio.h functions 2006-06-05 Soren Sandmann * TODO: Updates Sat Apr 22 15:08:01 2006 Soeren Sandmann * TODO: updates * profile.c, sfile.c, sformat.c: Various formatting fixes. Wed Apr 5 11:26:30 2006 Søren Sandmann * TODO: updates Mon Mar 27 23:04:30 2006 Soeren Sandmann * TODO: Updates. * sfile.c (handle_{begin,end}_element): Don't generate begin/end instructions for value elements. * sfile.c (build_instructions): Remove debugging spew. Mon Mar 27 21:44:04 2006 Soeren Sandmann * sformat.[ch]: New files containing a simplified and sanitized version of the state machine and type system from sfile.c. * sfile.c: Move the state machine and type management to separate files. Make the amount of memory used during loading and saving less obscene. * stackstash.c (stack_stash_new_from_root): Make this function store the root again. Mon Mar 27 09:55:01 2006 Søren Sandmann * TODO: updates 2006-03-11 Soren Sandmann * TODO: updates * stackstash.[ch]: Make stackstash refcounted * collector.c, profile.c: Update for refcounted stackstash, plug leak. * collector.c (open_fd): Remove FIXME comment 2006-03-05 Soeren Sandmann * sysprof-text.c, collector.c, sysprof.c: Do proper error-handling. Fri Mar 3 22:28:03 2006 Soeren Sandmann * process.c (process_lookup_symbol): Check that the inodes match. * binfile.c (read_symbols): Read the inode of the file * binfile.c (read_symbols): Close the bfd if the symbol table could not be read. Thu Mar 2 22:54:37 2006 Soeren Sandmann * treeviewutils.c (tree_view_foreach_visible): Handle NULL models. * sysprof.glade, sysprof.c: Revert back to three pane layout. 2006-02-17 Bastien Nocera * configure.ac: * module/sysprof-module.c: (timer_notify), (sysprof_open), (sysprof_release): more ifdef's to make it work with Red Hat Enterprise Linux 4's 2.6.9-based kernel Sat Feb 4 23:53:05 2006 Søren Sandmann * sysprof.glade: Remove ancestors pane in favor of radiobuttons in the right pane. * sysprof.c: Corresponding changes. * TODO: Updates Wed Jan 25 11:24:04 2006 Søren Sandmann * TODO: Updates Mon Jan 16 11:12:13 2006 Søren Sandmann * TODO: Updates Sun Jan 15 20:22:20 2006 Soeren Sandmann * module/sysprof-module.c (init_module): Print out sysprof version at module load time. Sun Jan 15 00:24:02 2006 Soeren Sandmann * TODO: Updates * sysprof.c (build_gui): Rename 'callers' column 'ancestors' * profile.c (profile_list_callers): Make this function list all ancestors of the function. Also make it report correct numbers again. * profile.c (profile_create_descendants): Remove debug spew Sat Jan 14 18:24:43 2006 Soeren Sandmann * configure.ac, Makefile.am: Only build GUI when the necessary dependencies are found. * sysprof.c (compute_text_width): Remove unused variable * profile.c (build_object_list): Follow next instead of siblings. Fri Jan 13 23:11:33 2006 Søren Sandmann * TODO: updates Fri Jan 13 22:59:48 2006 Soeren Sandmann * module/sysprof-module.c (sysprof_open): Initialize retval. * module/sysprof-module.c (sysprof_read): Copy contents of trace, not tail to the buffer. Wed Jan 11 20:31:11 2006 Søren Sandmann * process.c (read_maps): Also make offset a gulong (Samuel Mimram) Wed Jan 11 17:51:54 2006 Søren Sandmann * collector.c: Remove debug spew. * TODO: updates Mon Jan 9 09:58:25 2006 Soeren Sandmann * module/sysprof-module.c (timer_notify): Remove START_OF_STACK check. Mon Jan 9 00:59:21 2006 Soeren Sandmann * process.c (read_maps): Use gulong for addresses. Bug reported by Martin Reddy. Sun Jan 8 03:22:22 2006 Soeren Sandmann * process.c (process_flush_caches): Resurrect this function. * collector.c (collector_reset): Call it from here Sun Jan 8 02:19:34 2006 Soeren Sandmann * TODO: update Thu Jan 5 17:52:10 2006 Søren Sandmann * TODO: small updates * sysprof.c: cosmetic updates * module/sysprof-module.c: cosmetic updates 2005-12-20 Kristian Høgsberg * module/sysprof-module.c: Remove left over debug print out and add support for multiple clients (readers). Tue Dec 20 16:03:29 2005 Soeren Sandmann * TODO: Updates * sysprof-text.c (main): Make it try and load the module before complaining. 2005-12-20 Kristian Høgsberg * Makefile.am: Dist and install udev rule. * collector.c: (open_fd): * sysprof-text.c: (no_module): * sysprof.c: (on_start_toggled): Update device filename. * 60-sysprof.rules: New udev rule file to set permissions for sysprof char device. * module/sysprof-module.c: Switch kernel module to use a misc char device instead. Start and stop the timer on device open and close instead of module load and unload. Tue Dec 20 12:19:34 2005 Søren Sandmann * configure.ac: Add backslashes, pointed out by Ralph Siemsen. Mon Dec 19 17:39:09 2005 Søren Sandmann * sysprof.c (add_text): Make the tree tree-shapeed. Mon Dec 19 15:15:48 2005 Søren Sandmann * module/sysprof-module.c (timer_notify): A few formatting fixes. Hopefully make it work with x86-64. 2005-11-29 Soeren Sandmann * sysprof.c (on_descendants_row_expanded_or_collapsed): New function. Update screenshot window when rows are expanded and collapsed. 2005-11-23 Soeren Sandmann * sysprof.c (update_screenshot_window): Update the screenshot window. Wed Nov 23 00:44:34 2005 Soeren Sandmann * module/sysprof-module.c: Various cleanups * TODO: updates Tue Nov 22 23:38:09 2005 Soeren Sandmann * module/sysprof-module.c: Remove unused pages_present() function. 2005-11-18 Matthias Clasen * configure.ac: Make configure work. 2005-11-13 Soeren Sandmann * process.c: Add some experimental (and unused) code to look up kernel symbols. Sat Nov 12 23:39:29 2005 Soeren Sandmann * sysprof.c (set_sizes): Put the vertical splitter at 3/8 * screen_width. * configure.ac: Disable warning. Sat Nov 12 19:44:43 2005 Søren Sandmann * module/sysprof-module.c (read_frame): New function that uses copy_from_user_inatomic() as check_user_pages_readable() has disappeared in recent kernels. * module/sysprof-module.c (timer_notify): Use it here. * TODO: Updates * configure.ac: Change the wording of the CVS HEAD warning as this change seems to also have fixed the lockup with rawhide kernels. Wed Nov 9 00:24:11 2005 Soeren Sandmann * treeviewutils.[ch]: Add new tree_view_foreach_visible() function. * sysprof.c: Add update_screenshot_window() function. Mon Nov 7 23:42:26 2005 Soeren Sandmann * sysprof.c: Add beginning of a screenshot window. * sysprof.glade: Add screenshot window plus menu items. * stackstash.c: Remove unused function stack_node_list_leaves() * xmlstore.c: Various crack Sun Nov 6 23:03:49 2005 Soeren Sandmann * profile.c (add_trace_to_tree): Test for !prev instead of !next. Sun Nov 6 Soeren Sandmann * TODO: updates * collector.c (on_read): Only call back when a new sample actually arrived. * collector.c (collector_stop): close the filedescriptor * sysprof.c (on_start_toggled): Change sense of test. * sysprof.c (ensure_profile): Stop the collector. * sysprof.c (on_reset_clicked): Stop the collector when state becomes INITIAL. Sun Nov 6 18:31:23 2005 Soeren Sandmann * stackstash.c (stack_stash_foreach): * stackstash.c (stack_node_foreach_trace): Make these function call back with GLists rather than GSLists. * profile.c (add_trace_to_tree): Iterate backwards instead of copying the list. Sun Nov 6 17:06:52 2005 Soeren Sandmann * profile.c (add_trace_to_tree): Turn this function into a StackFunction. * stackstash.c (stack_node_foreach_trace): Make this function take a StackFunction, and reimplement with do_callback(). Sat Nov 5 18:06:40 2005 Soeren Sandmann * profile.c (profile_create_descendants): Use callbacks from stackstash. * stackstash.c (stack_node_foreach_trace): New function * stackstash.c (do_node_callback): New function Sat Nov 5 12:39:33 2005 Soeren Sandmann * profile.c (add_trace_to_tree): Don't compute the total field. * profile.h (struct ProfileDescendant): Remove 'total' field. * sysprof.c: Delete DESCENDANTS_TOTAL column and everything related to it. * profile.c: Remove commented out code * sfile.c (handle_text): Don't copy the text 2005-11-04 Soren Sandmann * collector.[ch]: Add copyright statement. * collector.c (on_read): Handle time getting set backwards. * collector.c: Remove unused empty_filedescriptor() function. 2005-11-03 Soren Sandmann * configure.ac: Make the message about the kernel source package more informative. Code from Kjetil Torgrim Homme. * sysprof.c (on_start_toggled): Only delete the data if the profiling can actually be started. 2005-11-01 Soeren Sandmann * sysprof.c (on_start_toggled): Update GUI after showing error message. * sysprof.glade: Rename File menu Profiler, move Start/Profile/Reset here, delete View menu. Mon Oct 31 23:41:33 2005 Soeren Sandmann * stackstash.h (struct StackNode): Add "total" field. * stackstash.c (stack_stash_add_trace): Keep track of the aggregate size. * profile.c (profile_get_size): Sum the totals of the siblings instead of all the children. * profile.c (build_object_list): Correctly compute obj->self * profile.c (profile_load): Don't ignore the node->total field. * profile.c (serialize_call_tree): Save node->total instead of the computed total * profile.c (compute_total): Use n->total instead of computing it from scratch. * profile.c: Remove unused sum_children() function. * TODO: Updates * process.c (process_get_from_pid): Plug leak. Mon Oct 31 21:36:37 2005 Søren Sandmann * sysprof.c (fill_main_list): free the profile objects. * sysprof.c (struct Application): Remove unused variable. Mon Oct 31 00:22:58 2005 Soeren Sandmann * sysprof.c (set_application_title): Use APPLICATION_NAME macro * sysprof.c (load_file): Don't leak the FileOpenData * TODO: updates 2005-10-30 Soren Sandmann * configure.ac, Makefile.am: Don't link sysprof-text to gtk+. 2005-10-30 Soren Sandmann * Merge stackstash-reorg branch into HEAD 2005-10-30 Soren Sandmann * Makefile.am, sysprof.c, sysprof-text.c, collector.[ch]: Rename profiler -> collector 2005-10-30 Soren Sandmann * profile.c (profile_load): Reenable loading. 2005-10-30 Soren Sandmann * profile.c (profile_save): Reenable saving. Sat Oct 29 21:37:42 2005 Soeren Sandmann * stackstash.c (stack_stash_foreach): Rename stack_stash_foreach_reversed() to stack_stash_foreach(). Delete the old, unused stack_stash_foreach(). * stackstash.h: Remove stack_stash_foreach_reversed(). * profiler.c: Use new name. Sat Oct 29 18:37:37 2005 Søren Sandmann * TODO: Updates Sat Oct 29 17:38:01 2005 Søren Sandmann * stackstash.[ch]: Add stack_stash_get_root(). * profile.c (profile_get_size): Make this function work again. Sat Oct 29 16:58:22 2005 Søren Sandmann * profile.c: Delete all the obsolete stuff related to call tree. * TODO: update Sat Oct 29 16:52:32 2005 Søren Sandmann * TODO: Updates * profile.c: Comment out a lot of unused stuff. Also temporarily comment out loading and saving. Sat Oct 29 16:45:34 2005 Søren Sandmann * profile.c (compute_total): New function. * profile.c (profile_list_callers): Port this function over to use StackNodes instead. Sat Oct 29 16:22:28 2005 Søren Sandmann * profile.c (build_object_list): Make this function allocate the ProfileObjects. * stackstash.[ch]: Add stack_stash_foreach_by_address() * profile.c (profile_get_objects): Use it here to reimplement profile_get_objects() in terms of the stackstash. Sat Oct 29 15:33:07 2005 Søren Sandmann * profile.c (profile_new): Add stash field to profile. * stackstash.[ch]: Add stack_node_list_leaves(); * profile.c (profile_create_descendants): Port this function over to use StackNodes instead. Sat Oct 29 14:43:00 2005 Søren Sandmann Fix crash pointed reported by Rudi Chiarito. * stackstash.c (stack_stash_add_trace): Just return if n_addrs is 0. * sysprof.c (on_read): Only trace if n_addresses != 0. Sat Oct 29 03:47:03 2005 Soeren Sandmann * profile.[ch], sysprof.c: Get rid of ProfileObject for callers and descendants. * TODO: updates. Sat Oct 29 02:57:34 2005 Soeren Sandmann * stackstash.[ch]: Export the StackNode struct, add new nodes_by_data hashtable to StackStash object, keep track of whether objects are toplevels. * TODO: some updates. Sat Oct 29 14:29:55 2005 Søren Sandmann * README, TODO: updates Fri Oct 14 11:44:43 2005 Søren Sandmann * configure.ac: Add a warning about known bugs in the kernel module in this branch. * TODO: updates. Tue Oct 11 22:40:24 2005 Soeren Sandmann * module/sysprof-module.c (SAMPLES_PER_SECOND): Add back these constants, but this time make sure we won't divide by 0 or anything like that. Mon Oct 10 22:50:57 2005 Soeren Sandmann * Merge in changes from HEAD Thu Oct 6 22:28:39 2005 Soeren Sandmann * stackstash.c (do_callback): Call stack func if node->size > 0, not if node->children != NULL * stackstash.c (do_reversed_callback): same * profile.c (generate_presentation_name): Delete this function * profile.c (generate_key): Delete this function. Wed Oct 5 23:57:08 2005 Soeren Sandmann * TODO: Updates * profile.c (generate_call_tree): Delete all the process stuff * profile.c (node_add_trace): Delete process argument * profile.c (lookup_profile_object): Don't generate a string key, just use the address directly. * profile.c (ensure_profile_object): Use the address as presentation name. * profiler.c (profiler_create_profile): Pass in the resolved stash. Sun Oct 2 21:08:16 2005 Soeren Sandmann * sysprof.c (on_delete): Work around glib bug 317775 * sysprof-text.c (signal_handler): Work around glib bug 317775 Sun Oct 2 16:31:37 2005 Soeren Sandmann * stackstash.c (stack_stash_foreach_reversed): Add this function * process.c: Add a per-process undefined symbol. * profiler.c (resolve_symbols): Add code to do symbol resolution here. * TODO: Updates Sat Oct 1 18:32:52 2005 Soeren Sandmann * profile.h, sysprof.c: Remove some unnecessary includes. Sat Oct 1 18:12:44 2005 Soeren Sandmann * profiler.[ch]: Add profiler_get_n_samples(); add unused empty_file_descriptor() * profile.h: Add include guards * process.[ch]: Delete process_flush_caches(); * helper.[ch]: Remove these files * sysprof.c: Use the new profiler class. * sysprof-text.c: Use the new profiler class * Makefile.am: Various cleanups. Sat Oct 1 17:05:43 2005 Soeren Sandmann * profiler.[ch]: New files containing a profiler class with code that can be shared between gui and command line. * sysprof.c (main): Remove some commented out code * stackstash.c (do_callback): Store the trace on the stack instead of allocating it dynamically. Sat Oct 1 01:50:15 2005 Soeren Sandmann * stackstash.c (sstack_stash_add_trace): Simplify this function a lot. * helper.c: Include "process.h" Sat Oct 1 01:29:06 2005 Soeren Sandmann * profile.c (generate_object_table, generate_call_tree): Don't take the process as an argument. Instead dig it out of the stacktrace. * helper.c (add_trace_to_stash): New file, that adds a stacktrace and a process to a stackstash. * stackstash.[ch]: Remove all traces of the concept of Process. Simplify stack_node_add_trace() somewhat. Mon Oct 10 22:49:03 2005 Soeren Sandmann * module/sysprof-module.c: Delete lots of commented-out code. Mon Oct 10 14:33:50 2005 Søren Sandmann * configure.ac: Add --disable-kernel-module option. Patch from Pascal Terjan. Mon Oct 10 13:00:20 2005 Robert Love * module/sysprof-module.c: Don't use INTERVAL or SAMPLES_PER_SECOND now that we use register_timer_hook(), which hits off the timer interrupt at HZ freqency (1/250 second on x86). Sat Oct 1 01:21:57 2005 Soeren Sandmann * TODO: Update Wed Sep 28 12:08:32 2005 Søren Sandmann * sysprof-text.c: Add my name to the copyright statement Tue Sep 27 01:33:33 2005 Soeren Sandmann * process.c (process_lookup_symbol): If the address is 0x01, treat as kernel, regardless of whether we have a map for that address or not. * module/sysprof-module.c (timer_notify): Take a stack trace of the current process, even when we are in kernel mode. This way we can assign kernel activity to individual user space stacktraces. * TODO: updates. Sat Sep 24 14:41:23 2005 Soeren Sandmann * configure.ac: Bump version number to 1.1.0 * signal-handler.c: Many, mostly cosmetic, cleanups * sysprof-text.c: uninstall signal handlers when exiting Sat Sep 24 00:01:42 2005 Soeren Sandmann * Nakefile.am, sysprof-text.c: New non-GUI version, written by Lorenzo Colitti, with some changes by me. * signal-handler.[ch]: New files that provide a way to get UNIX signals into a glib main loop. * README: add Lorenzo to credits Fri Sep 23 20:46:40 2005 Soeren Sandmann * sysprof.c (build_gui): If the glade file doesn't exists pop up an alert suggesting running 'make install' * sysprof.c: Remove some commented out code Sat Sep 17 14:35:32 2005 Soeren Sandmann * Release 1.0 (this comment was added post facto) * Bump version numbers * README: update * TODO: Updates Sun Sep 4 19:38:51 2005 Soeren Sandmann * TODO: Updates Tue Aug 30 16:57:33 2005 Søren Sandmann * configure.ac: Complain if we can't find /lib/modules/`uname -r`/build/Makefile. * process.c (process_lookup_symbol): Take an address of 0x1 to mean "in kernel". * module/sysprof-module.c (timer_notify): When reporting in-kernel time, give the current pid instead of -1. * TODO: updates Mon Aug 15 20:39:11 2005 Soeren Sandmann * binfile.c, process.c, profile.c: Fix some warnings. Mon Aug 1 23:49:51 2005 Soeren Sandmann * module/sysprof-module.c (REG_INS_PTR): Add support for amd64/x86-64. Patch from Mike Frysinger. Sun Jul 10 10:51:52 2005 Soeren Sandmann * binfile.c: Various minor clean-ups Sat Jul 9 23:20:39 2005 Soeren Sandmann * binfile.c (bin_file_new): Cache BinFiles by filename. * stackstash.c (stack_stash_free): Plug leak * process.c (process_free_maps): Plug leak * module/Makefile (install): Check that depmod exists before running it. Sun Jun 19 15:42:34 2005 Søren Sandmann * module/sysprof-module.c (SAMPLES_PER_SECOND): Set to 200. * sysprof.c (on_about_activated): Add version information * configure.ac: Bump version to 0.91 * README: Updates Sat Jun 18 22:45:04 2005 Søren Sandmann * TODO: Updates * configure.ac: Check for Linux 2.6.11 * process.c (get_pidname): Present pid=-1 as [kernel]. * module/sysprof-module.c: Use register_timer_hook() instead of a kernel timer. Set trace.pid to -1 if interrupt happens in kernel. Sun Jun 12 20:30:37 2005 Soeren Sandmann * sysprof.c (build_gui): Disable type-ahead search for all the tree views. * sysprof.c (on_object_selection_changed): Call it from here * sysprof.c (expand_descendants_tree): New function that determines what nodes to expand in the descendatns view. Sun Jun 12 13:37:15 2005 Soeren Sandmann * TODO: Updates Thu Jun 9 13:28:33 2005 Søren Sandmann * TODO: Updates Thu May 26 01:10:45 2005 Soeren Sandmann * sysprof.c (on_callers_row_activated): Grab focus on the callers view, not the descendants view. * sysprof.c (on_read): Add a short "dead" period after a reset, so that 'samples' will actually be 0 for a while. Mon May 23 01:37:26 2005 Soeren Sandmann * README: Remove comment about auto* stuff, link to http://www.daimi.au.dk/~sandmann/sysprof/ Sun May 23 16:10:00 2005 Soeren Sandmann -=-=-=-=-=- Release v. 0.9 -=-=-=-=-=- Sun May 22 21:06:36 2005 Soeren Sandmann * TODO: Updates Sat May 21 20:58:59 2005 Soeren Sandmann * TODO: update * sysprof.c (on_menu_item_activated): New function. * sysprof.c (build_gui): Hook up menu items. * module/sysprof-module.c (init_module): Remove module_init/exit as they cause build failure on kernels < 2.6.11. Sat May 21 00:59:38 2005 Søren Sandmann * TODO: update Wed May 18 22:21:52 2005 Søren Sandmann * module/sysprof-module.c: Remove ref-counting since it didn't actually do any good. * sysprof.c (load_module): Use g_spawn_command_line_sync() instaed of system(). Sun May 15 11:56:30 2005 Søren Sandmann * module/sysprof-module.c: First attempt at making module robust agains unloading when in use. Sun May 15 10:24:09 2005 Soeren Sandmann * Makefile.am, module/Makefile: Do more-or-less what the automake manual suggests about foreign subdirectories. Sat May 14 16:36:32 2005 Søren Sandmann * sysprof.c (set_application_title): Update the title bar on load/save * treeviewutils.c, sfile.c: Fix compiler warnings * Makefile.am: define PIXMAPDIR Sat May 14 15:49:52 2005 Søren Sandmann Auto*ify. * TODO: updates * AUTHORS, INSTALL, Makefile.am, NEWS, configure.ac: New files * module/Makefile: New file * module/sysprof-module.c, module/sysprof-module.h: Move these files to their own directy, as the kernel build system does not work very well with auto*. * sysprof.c, autogen.sh: Some auto* changes. Sun May 8 16:31:32 2005 Søren Sandmann * TODO: more updates * sysprof.c: Try loading the module before complaining Sun May 8 15:45:08 2005 Søren Sandmann * sysprof-module.c (do_generate): Restore lost wake_up(). * sfile.c: Comment out use of bz2. * Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR * sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here. * TODO: Updates. Sat May 7 13:57:17 2005 Søren Sandmann * sfile.c (sfile_output_free): Implement this function * sfile.c (sfile_input_free): Implement this function Fri May 6 23:38:48 2005 Søren Sandmann * sysprof-module.c (do_generate): Another desparate hack to try and prevent the oops. Sat Apr 30 16:57:23 2005 Soeren Sandmann * process.c (PAGE_SIZE): Use getpagesize() * TODO: More updates Sat Apr 30 15:44:12 2005 Søren Sandmann * TODO: Updates * sysprof-module.c (get_regs): Change the way we get registers for a task so that it works with 2.6.11 Sat Apr 23 19:17:18 2005 Søren Sandmann * TODO: Updates Sat Apr 23 19:12:52 2005 Søren Sandmann * profile.c: Store a pointer to the root of the call tree * profile.c (profile_load): Call sfile_input_free() * sfile.c (sformat_free): Implement this function Sat Apr 23 18:38:46 2005 Søren Sandmann * sfile.c (post_process_read_instructions): Check pointer types * sfile.c (post_process_instructions_recurse): Delete this unused function Sat Apr 23 17:49:33 2005 Søren Sandmann * sysprof-module.c (page_readable): New function to check if the page is readable before reading. Noop on kernel <= 2.6.11 * sysprof-module.c (get_mm, put_mm): New functions to confine #ifdefs. Sat Apr 23 17:48:22 2005 Søren Sandmann * Makefile (MODCFLAGS): Disable optimization as I suspect the oops is related to miscompilation. Fri Apr 22 00:09:16 2005 Soeren Sandmann * sysprof-module.c (read_user_space): On >= 2.6.11 check that the pages are present and readable before reading them. Tue Apr 19 23:26:45 2005 Kristian Høgsberg * Makefile (check): Add simple check target that runs a sanity check of the build environment. Sun Apr 17 00:20:41 2005 Soeren Sandmann * sysprof.c (on_open_clicked): Factor out some stuff in their own functions. * sysprof.c (load_file): Idle handler to load files given on the command line. * sysprof.c (main): If a filename is passed on the command line, load it in an idle handler. Sun Apr 17 00:19:03 2005 Soeren Sandmann * TODO: Updates Sat Apr 16 19:51:48 2005 Soeren Sandmann * sysprof-module.c (read_user_space): Read a whole page at a time. Sat Apr 16 14:15:55 2005 Soeren Sandmann * TODO: Update * sysprof-module.c (x_access_process_vm): On kernel 2.6.9 and later use get_task_mm()/mmput() instead of directly accessing task->mm. Sat Apr 16 01:54:18 2005 Søren Sandmann * TODO: Add backtrace for kernel oops. Fri Apr 15 16:37:45 2005 Soeren Sandmann * TODO: updates * sysprof.c (sorry): If you hit profile when the module isn't loaded, pop up an annoying dialog. * sysprof-module.c: Clean-ups, remove various unused abstractions. Sat Apr 9 17:49:13 2005 Søren Sandmann * COPYING: Add a copy of the GPL Sat Apr 9 17:04:50 2005 Søren Sandmann * Makefile: Remove debug spew * *: Add copyright notices Fri Apr 8 21:30:02 2005 Søren Sandmann * TODO: More updates Fri Apr 8 20:48:58 2005 Søren Sandmann * sysprof.c (build_gui): Load the icon, hook up "about" activation. * sysprof.c (on_about_activated): New function. Show an about dialog. * sysprof.c (struct Application): Add an icon field * TODO: Updates * sysprof-icon.png: Icon, drawn by Diana Fong Tue Apr 5 23:01:02 2005 Søren Sandmann * binfile.c (read_symbols): Put back the weird loop, and stop pretending I understand this. This time use SEC_ALLOC instead of SEC_LOAD. Tue Apr 5 20:13:44 2005 Søren Sandmann * process.c (process_ensure_map): Add commented out debug spew. * process.c (process_lookup_symbol): Remove all should_offset() function and all references to it. * binfile.c (bin_file_lookup_symbol): Document that address must be in file coordinates. * binfile.c (read_symbols): Remove misguided code that tried to guess the load address of the file. Instead, do all computations in "file coordinates". Also fix a memory leak. Add commented out debug spew. * binfile.c (separate_debug_file_exists): Fix signedness Tue Apr 5 14:34:43 2005 Søren Sandmann * sysprof-module.c (x_access_process_vm): Make it compile with kernel 2.6.11 * TODO: updates Mon Apr 4 00:57:11 2005 Soeren Sandmann * sysprof.c: Busy cursors in many more places. * TODO: updates Sun Apr 3 23:28:45 2005 Soeren Sandmann * sysprof-module.c (do_generate): Re-schedule the timeout here instead of in on_timer(). * sysprof-module.c (on_timer): Only block tasks in the TASK_RUNNING state. Sun Apr 3 17:03:33 2005 Soeren Sandmann * sysprof-module.c (queue_generate_stack_trace): Put current process to sleep. * sysprof-module.c (do_generate): Wake up the traced process Thu Mar 31 23:09:09 2005 Soeren Sandmann * sysprof.c (build_gui): Remove stray % Thu Mar 31 21:18:13 2005 Søren Sandmann * treeviewutils.c (add_double_format_column): Right justify numbers * sysprof.c (build_gui): Add a space after the numbers * sysprof.c (on_callers_row_activated): Focus object view * sysprof.c (on_descendants_row_activated): Focus new descendants tree. Thu Mar 31 19:51:51 2005 Søren Sandmann * sysprof-module.c (do_generate): Walk all threads, not just all processes. * TODO: Add disk profiling ideas Thu Mar 31 00:19:47 2005 Soeren Sandmann * sysprof.c (set_busy): Make this function work * sysprof.c (on_profile_toggled): Use it here * sysprof.c (on_object_selection_changed): And here * profile.c (add_trace_to_tree): Use GPtrArrays instead of GHashTable and GList. Mon Mar 28 11:09:02 2005 Soeren Sandmann * TODO: updates Sat Mar 26 19:26:52 2005 Søren Sandmann * sysprof.c: Show the right number of samples afte Open; remove shadows from menu bars and toolbars; some other tweaks. Sat Mar 26 11:26:00 2005 Soeren Sandmann * TODO: Updates * sfile.c (add_string): Use g_markup_escape_text() to escape the string before adding it to the file. * sysprof.c (empty_file_descriptor): New function to make sure samples generated before profiling started are ignored. (set_busy): New commented out function to set a busy cursor. Fri Mar 25 21:31:08 2005 Søren Sandmann * sysprof.c (update_sensitivity): Comment out sensitivity of reset button. Fri Mar 25 21:25:31 2005 Søren Sandmann * sysprof.c (get_current_object): Return NULL if nothing is selected. Fri Mar 25 20:54:08 2005 Søren Sandmann * TODO: More updates Fri Mar 25 20:25:44 2005 Søren Sandmann * README: Require gtk+ 2.6 * treeviewutils.c (add_plain_text_column): Ellipsisize text columns. Fri Mar 25 19:39:24 2005 Søren Sandmann * TODO: Remove "loading and saving" * sysprof.glade: Add ellipsises to Open and Save menu items. * sysprof.c (overwrite_file): Add this function, cutted-and-pasted from evince. * sysprof.c (on_save_as_clicked, on_open_clicked): Use GtkFileChoosers to pick the names. * sysprof.c: Various GUI updates. Fri Mar 25 19:36:28 2005 Søren Sandmann * sfile.c (bz2_compress): Add this function Don't actually make any produce use of it. * profile.c (make_hash_table): Get rid of warning Thu Mar 24 19:09:33 2005 Søren Sandmann * sysprof.c: Various GUI updates * TODO: update * sfile.[ch] (sformat_new_optional): Add some notes about an "optional" construction. Wed Mar 23 00:04:07 2005 Soeren Sandmann Primitive loading and saving. * sysprof.c (on_open_clicked): Hook up loading. * sfile.c: Add a copy of g_file_replace() from glib CVS HEAD. * sfile.c (add_string): Escape and quote the string * sfile.c (sfile_load): Initialize current_instruction and instructions_by_location * sfile.c (post_process_instructions_recurse): Handle NULL pointers properly. * sfile.c (handle_begin_element, handle_end_element, handle_text): Move error handling here from state_transition_begin/text/end. * sfile.c (handle_text): Discard whitespace-only strings * sfile.c (sfile_get_pointer, sfile_get_integer, sfile_get_string): expect both begin, value, and end transitions. * sfile.c (hook_up_pointers): Only treat instructions as pointer values when they are. Handle NULL targets properly. * sfile.c (get_number): Fix a few read-freed-data bugs * profile.c (profile_load): Call sfile_end_get() for the profile; build the nodes_by_objects hash table. Build the call tree. * profile.c (create_format): Don't store next pointer, but do store total, self and toplevel. * profile.c (make_hash_table): New function to build nodes_by_object hashtable from loaded data Sat Mar 12 11:05:19 2005 Soeren Sandmann * sysprof-module.c: Fix small bug in add_timeout() * sysprof.c (build_gui): More descriptive tree labels * TODO: update Thu Mar 10 16:37:52 2005 Søren Sandmann * sysprof.c (build_gui): s/Cummulative/Cumulative/. Pointed out by Ian McIntosh. Mon Mar 7 14:47:09 2005 Søren Sandmann * README: Add note that you need to compile the module with the same compiler that compiled the kernel. Sun Mar 6 22:56:21 2005 Soeren Sandmann * sfile.c: Generate id's for objects and pointers. Sat Mar 5 01:09:33 2005 Soeren Sandmann * sfile.c: Bug fixes. Add actual generation. Fri Mar 4 13:47:13 2005 Søren Sandmann * sysprof.c: Remove include of non-existing tracing.h Thu Mar 3 23:48:13 2005 Soeren Sandmann * profile.c (profile_load): Write this function. * sfile.c: Add support for user defined record and list types. Simplify logic a lot. Wed Mar 2 23:39:50 2005 Soeren Sandmann * profile.[ch], sfile.[ch]: Experiment with a file-format-description format. * sysprof.c: Add commented out code using /proc/ based timeout. Fri Jan 21 11:23:54 2005 Søren Sandmann * README: Some updates - add note about SMP kernels. * sysprof-module.c: Go back to just sampling the current process. * ChangeLog: I guess these do make sense, so start one.