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.