Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.


oprofile Log

Commit Date  
[a1f371] by Gilles Allard Gilles Allard , pushed by Maynard Johnson Maynard Johnson

Fix size problem of oprof_start GUI

On oprof_start startup, "unit mask" sub-window sometimes overlaps "event list"
one ( confusing appearance ). On some systems, the symptom is the unit mask
sub-window is too narrow to fit the entire UM description, thus requiring the
user to manually re-size the whole GUI window manually.

To see this problem, select a long event name that also has some long unit
mask descriptions that would entail auto-resizing of the windows. Then save
and quit, and restart the gui. The windows may be overlapped or may not be
sized correctly to accommodate the long event name and/or long unit mask

This problem occurs if oprof_start is built with Qt4 / Qt3Support.

This patch fixes this.

Signed-off-by: Gilles Allard <>

2013-06-14 18:45:20 Tree
[1b090c] by Gilles Allard Gilles Allard , pushed by Maynard Johnson Maynard Johnson

Don't show irrelevant bits in unit mask sub-window

Check boxes associated to non significant bits in unit mask should not be

This patch prevents from showing irrelevant check boxes in 'Unit mask' sub-

Signed-off-by: Gilles Allard <>

2013-06-13 12:51:57 Tree
[6ee980] by Maynard Johnson Maynard Johnson

Fix Coverity errors found on May 20, 2013 git snapshot

Coverity identified the following errors on scans run from May 7 through
May 20, 2013:

Wrapper object use after free,Memory - illegal accesses,/agents/jvmpi/jvmpi_oprofile.cpp,compiled_method_load(JVMPI_Event *)
Unchecked return value,Error handling issues,/daemon/opd_mangling.c,opd_open_sample_file
Dereference after null check,Null pointer dereferences,/daemon/opd_sfile.c,sfile_hash
Uninitialized scalar field,Uninitialized members,/gui/oprof_start_config.cpp,config_setting::config_setting()
Division or modulo by zero,Integer handling issues,/libdb/db_stat.c,odb_hash_stat
Resource leak,Resource leaks,/libop/op_cpu_type.c,_auxv_fetch
Resource leak,Resource leaks,/libop/op_cpu_type.c,fetch_at_hw_platform
Negative array index read,Memory - illegal accesses,/libop/op_events.c,_is_um_valid_bitmask
Write to pointer after free,Memory - corruptions,/libop/op_events.c,read_events
Read from pointer after free,Memory - illegal accesses,/libop/op_events.c,_is_um_valid_bitmask
Dereference after null check,Null pointer dereferences,/libop/op_mangle.c,op_mangle_filename
Dereference after null check,Null pointer dereferences,/libop/op_mangle.c,op_mangle_filename
Time of check time of use,Security best practices violations,/libopagent/opagent.c,op_open_agent
Improper use of negative value,Integer handling issues,/libperf_events/operf_counter.cpp,operf_record::setup()
Double free,Memory - corruptions,/libperf_events/operf_counter.cpp,operf_record::setup()
Uninitialized pointer read,Memory - illegal accesses,/libperf_events/operf_counter.cpp,<unnamed>::_get_perf_event_from_file(mmap_info &)
Unchecked return value,Error handling issues,/libperf_events/operf_mangling.cpp,"operf_open_sample_file(odb_t *, operf_sfile *, operf_sfile *, int, int)"
Using invalid iterator,API usage errors,/libperf_events/operf_process_info.cpp,operf_process_info::try_disassociate_from_parent(char *)
Non-array delete for scalars,Memory - illegal accesses,/libregex/op_regex.cpp,"<unnamed>::op_regerror(int, const re_pattern_buffer &)"
Resource leak,Resource leaks,/libutil++/op_bfd.cpp,"op_bfd::op_bfd(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, const string_filter &, const extra_images &, bool &)"
Explicit null dereferenced,Null pointer dereferences,/opjitconv/create_bfd.c,fill_symtab
Resource leak,Resource leaks,/opjitconv/opjitconv.c,_cleanup_jitdumps
Use of untrusted string value,Insecure data handling,/opjitconv/opjitconv.c,main
Resource leak,Resource leaks,/pe_profiling/operf.cpp,_get_cpu_for_perf_events_cap()
Dereference null return value,Null pointer dereferences,/pe_profiling/operf.cpp,_process_session_dir()
Incorrect deallocator used,API usage errors,/pe_profiling/operf.cpp,_process_events_list()


This patch fixes those errors.

Signed-off-by: Maynard Johnson <>

2013-05-28 13:19:25 Tree
[00c2ec] by Gilles Allard Gilles Allard , pushed by Maynard Johnson Maynard Johnson

Fix for oprof_start when daemonrc file does not exist

This patch fixes a bug if daemonrc file doesn't exist or doesn't contain a
'BUF_SIZE=' line : initalizes 'buffer_size' to the default value to prevent
unpredictable value.

Signed-off-by: Gilles Allard <>

2013-05-24 12:01:51 Tree
[74abfb] by Maynard Johnson Maynard Johnson

Fix Coverity issues identified against oprofile 0.9.8 release

Signed-off-by: Maynard Johnson <>

2013-05-15 18:14:43 Tree
[fcb818] by Maynard Johnson Maynard Johnson

Remove daemon/liblegacy since 2.4 kernels are no longer supported

A build problem reported by Vineet Gupta (
involving a compile failure of liblegacy code when built under uClibc
made it clear that we missed some things when support for 2.4 kernels
was removed in Oct 2012. The daemon/liblegacy directory is all about
support for 2.4 kernels, so this patch completely removes that directory.
Of course, this caused some breakage elsewhere in the oprofile tree
which needed fixing up.

Signed-off-by: Maynard Johnson <>

2012-12-05 15:55:18 Tree
[8f12d5] by Maynard Johnson Maynard Johnson

Fix configure to not alter user variables and remove non-working --with-gcc option

The configure script for oprofile had a few places
where user variables were being altered in contradiction
to the GNU Automake manual. See the following URL for details:

In brief, user variables are those listed under "Some influential
environment variables" section of the output from 'configure --help'.
These are variables which the user may set prior to invoking configure,
and thus, the configure script should not alter them. This patch
makes use of new internal variables (e.g., OP_LDFLAGS and OP_CPPFLAGS),
which did unfortunately create quite a ripple effect with the
files. But this was unavoidable in order to correct this error.

Additionally, the '--with-gcc' option does not work anymore because
the generated configure script runs the AC_PROG_CC before processing the
"--with-gcc" option, so it fails to find a compiler. Unsure of when
this stopped working (assume it must have worked in 2005 when it was
initially added), but even fairly old distros (e.g., SLES 10) with
autoconf version 2.59 do not process this option as we would want.
If users wish to configure oprofile to use an alternate compiler,
they should pass the compiler pathnames on the configure command line, thusly:
./configure CC=/my-gcc-install/bin/gcc CXX=/my-gcc-instal/g++

Signed-off-by: Maynard Johnson <>

2012-07-13 17:44:49 Tree
[7e4a10] by maynardj maynardj

Signed-off-by: Gert Wollny <>
Acked-by: Maynard Johnson <>

This patch makes changes to oprofile gui files to use qt3Support to facilitate
building with either qt3 or qt4. The configure script now has a new option:
--enable-gui=[qt3|qt4|yes|no]. If not given or set to yes, the gui build
defaults to qt3, which is the same as what it has done in the past.

2011-02-25 17:50:18 Tree
[9529ae] by William Cohen William Cohen

Convert the .cvsignore files into .gitignore files.

2011-02-15 19:50:17 Tree
[4da265] by Maynard johnson Maynard johnson

Handle events that differ only by unit mask - patch 2/2

2009-06-05 15:26:40 Tree
[af7e83] by John Levon John Levon

Split changelog, fix cvsignore

2008-04-28 21:54:40 Tree
[353bda] by William Cohen William Cohen

2008-02-15 Will Cohen <>

* gui/oprof_start_util.cpp
* libutil++/file_manip.cpp
* libutil++/bfd_support.cpp
* libutil++/bfd_spu_support.cpp
* libutil++/op_spu_bfd.cpp
* libutil++/cverb.cpp
* libutil++/child_reader.cpp
* pp/opgprof_options.cpp
* pp/opannotate_options.cpp
* pp/oparchive.cpp
* pp/common_option.cpp
* libpp/sample_container.cpp
* libpp/op_header.cpp
* libpp/profile.cpp
* libabi/opimport.cpp
* libregex/demangle_symbol.cpp: Add includes for gcc 4.3 compatibility.

2008-02-15 18:28:19 Tree
[4fa2f4] by Philippe Elie Philippe Elie

For each events set the gui reseted the highest bit available in the unit mask. So quitting then restarting oprof_start lead to a different counter setup

2005-09-01 20:10:53 Tree
[95dd10] by Philippe Elie Philippe Elie

change op_event.val field from u8 to u32. There is no user visible change as we already used a 32 bit val in struct opd_header

2005-08-14 11:17:36 Tree
[3600ea] by Philippe Elie Philippe Elie

gui: cpu-buffer-size handling

2005-08-10 22:23:12 Tree
[6cc6cd] by Philippe Elie Philippe Elie

implement and document 2.6 buffer watershed

2005-08-08 21:25:05 Tree
[5005ba] by Philippe Elie Philippe Elie

coding style, nothing interresting

2005-08-07 11:15:54 Tree
[3b5dc8] by Philippe Elie Philippe Elie

usability: handle help string when using keyboard to navigate through events list

2005-08-04 19:26:59 Tree
[987aa0] by Philippe Elie Philippe Elie

gui : allow to reset sample files and set callgraph depth

2005-08-03 19:17:32 Tree
[00f158] by Philippe Elie Philippe Elie

gui: hardcode opcontrol setup file to /root, rename get_user_filename() to get_config_filename()

2005-08-03 12:42:50 Tree
[1c0b58] by Philippe Elie Philippe Elie

gui : fix detection of stopped profling, fix a miscounted interrupt nr after a start/stop/start sequence

2005-08-03 12:20:30 Tree
[cb638c] by Philippe Elie Philippe Elie

fix event parsing in the gui according to the 'remove bashism patch'

2005-08-03 09:14:00 Tree
[84cc5a] by John Levon John Levon

a couple more trivial style fixes

2005-03-29 17:56:38 Tree
[fd73ea] by John Levon John Levon

check_style pedantry, no changelog.

2004-01-19 20:00:28 Tree
[d245c3] by Philippe Elie Philippe Elie

move some #include <> from .h to .cpp

2004-01-01 19:39:36 Tree
Older >