From: Philippe E. <ph...@us...> - 2002-06-25 21:59:21
|
Update of /cvsroot/oprofile/oprofile/gui In directory usw-pr-cvs1:/tmp/cvs-serv26435/gui Modified Files: Makefile.in oprof_start.cpp oprof_start.h oprof_start_config.cpp oprof_start_config.h Log Message: gui + utils/op_start: implement --kernel-range gui/Makefile.in: for sub-dir ui to make befaore buidling anything in the gui directory regards, Phil Index: Makefile.in =================================================================== RCS file: /cvsroot/oprofile/oprofile/gui/Makefile.in,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Makefile.in 7 Jun 2002 12:01:55 -0000 1.30 +++ Makefile.in 25 Jun 2002 21:59:18 -0000 1.31 @@ -27,7 +27,7 @@ oprof_start.moc.cpp: oprof_start.h $(MOC) -o $@ oprof_start.h -oprof_start.moc.o: oprof_start.moc.cpp +oprof_start.moc.o: oprof_start.moc.cpp ui/oprof_start.base.h .buildui: $(MAKE) -C ui @@ -47,7 +47,7 @@ $(MAKE) -C ui clean rm -rf .deps $(OBJECTS) $(TARGET) .buildui oprof_start.moc.cpp -$(TARGET): $(OBJECTS) $(LIB_DEPS) +$(TARGET): .buildui $(OBJECTS) $(LIB_DEPS) $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(LIBS) include ../make.deps Index: oprof_start.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/gui/oprof_start.cpp,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- oprof_start.cpp 16 Jun 2002 17:32:14 -0000 1.54 +++ oprof_start.cpp 25 Jun 2002 21:59:18 -0000 1.55 @@ -172,7 +172,15 @@ // setup the configuration page. kernel_filename_edit->setText(config.kernel_filename.c_str()); - map_filename_edit->setText(config.map_filename.c_str()); + + kernel_range_auto_cb->setChecked(config.kernel_range_auto); + kernel_start_edit->setText(QString().setNum(config.kernel_start, 16)); + kernel_end_edit->setText(QString().setNum(config.kernel_end, 16)); + + // if config.kernel_range_auto is off we don't parse vmlinux, we rely + // on op_start to make this job : parsing the output of nm is easy in + // shell script and the only drawback is that we don't show the kernel + // range in the edit range widget. Feel free to ehance this stuff ... buffer_size_edit->setText(QString().setNum(config.buffer_size)); hash_table_size_edit->setText(QString().setNum(config.hash_table_size)); @@ -534,16 +542,6 @@ kernel_filename_edit->setText(result.c_str()); } -/// select the System.map filename -void oprof_start::choose_system_map_filename() -{ - std::string name = map_filename_edit->text().latin1(); - std::string result = do_open_file_or_dir(name, false); - - if (!result.empty()) - map_filename_edit->setText(result.c_str()); -} - // this record the current selected event setting in the event_cfg[] stuff. // FIXME: need validation? void oprof_start::record_selected_event_config() @@ -567,7 +565,11 @@ bool oprof_start::record_config() { config.kernel_filename = kernel_filename_edit->text().latin1(); - config.map_filename = map_filename_edit->text().latin1(); + config.kernel_range_auto = kernel_range_auto_cb->isChecked(); + if (!config.kernel_range_auto) { + config.kernel_start = kernel_start_edit->text().toULong(0, 16); + config.kernel_end = kernel_end_edit->text().toULong(0, 16); + } QString const t = buffer_size_edit->text(); uint temp = t.toUInt(); @@ -832,7 +834,12 @@ } } - args.push_back("--map-file=" + config.map_filename); + if (!config.kernel_range_auto) { + std::ostringstream range; + range << hex << config.kernel_start << "," << config.kernel_end; + args.push_back("--kernel-range=" + range.str()); + } + args.push_back("--vmlinux=" + config.kernel_filename); args.push_back("--kernel-only=" + tostr(config.kernel_only)); args.push_back("--pid-filter=" + tostr(config.pid_filter)); Index: oprof_start.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/gui/oprof_start.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- oprof_start.h 6 Jun 2002 16:18:12 -0000 1.23 +++ oprof_start.h 25 Jun 2002 21:59:18 -0000 1.24 @@ -57,8 +57,6 @@ protected slots: /// select the kernel image filename void choose_kernel_filename(); - /// select the System.map filename - void choose_system_map_filename(); /// flush profiler void on_flush_profiler_data(); /// start profiler Index: oprof_start_config.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/gui/oprof_start_config.cpp,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- oprof_start_config.cpp 6 Jun 2002 16:18:12 -0000 1.23 +++ oprof_start_config.cpp 25 Jun 2002 21:59:18 -0000 1.24 @@ -81,7 +81,11 @@ note_table_size(OP_DEFAULT_NOTE_SIZE), // FIXME: member of config, hardcoded value probably come from ? kernel_filename("/lib/modules/" KVERSION "/build/vmlinux"), - map_filename("/lib/modules/" KVERSION "/build/System.map"), + kernel_range_auto(1), + // kernel_range_auto is "true" by default so on we don't need to put + // sensible value now. + kernel_start(0), + kernel_end(0), kernel_only(0), ignore_daemon_samples(0), verbose(0), @@ -97,13 +101,18 @@ in >> buffer_size; in >> hash_table_size; in >> kernel_filename; - in >> map_filename; + std::string obsolete_map_filename; + in >> obsolete_map_filename; in >> kernel_only; in >> ignore_daemon_samples; in >> verbose; in >> pgrp_filter; in >> note_table_size; in >> separate_samples; + in >> kernel_range_auto; + in >> hex >> kernel_start; + in >> hex >> kernel_end; + in >> dec; } // sanitize needed ? @@ -118,8 +127,8 @@ save_value(out, kernel_filename, def_val.kernel_filename); out << std::endl; - save_value(out, map_filename, def_val.map_filename); - out << std::endl; + std::string obsolete_map_filename("map_filename_obsolete_placeholder"); + out << obsolete_map_filename << std::endl; out << kernel_only << std::endl; out << ignore_daemon_samples << std::endl; @@ -127,6 +136,10 @@ out << pgrp_filter << std::endl; out << note_table_size << std::endl; out << separate_samples << std::endl; + + out << kernel_range_auto << std::endl; + out << hex << kernel_start << std::endl; + out << hex << kernel_end << std::endl; } std::ostream& operator<<(std::ostream& out, config_setting const & object) Index: oprof_start_config.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/gui/oprof_start_config.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- oprof_start_config.h 22 May 2002 03:20:33 -0000 1.16 +++ oprof_start_config.h 25 Jun 2002 21:59:18 -0000 1.17 @@ -51,7 +51,10 @@ uint hash_table_size; uint note_table_size; std::string kernel_filename; - std::string map_filename; + /// must we use kernel_{start,end} or figure them from vmlinux file + int kernel_range_auto; + ulong kernel_start; + ulong kernel_end; int kernel_only; int ignore_daemon_samples; int verbose; |