public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Provide fine grained control over printing stack library/source paths.
Date: Tue, 10 Jun 2008 22:46:00 -0000	[thread overview]
Message-ID: <20080610224613.14507.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  a67d402d632120a8333704285870220e35a87328 (commit)
      from  a41c8b2d53e4cfe4173f75b717d0c9ced0449982 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit a67d402d632120a8333704285870220e35a87328
Author: Andrew Cagney <cagney@toil.yyz.redhat.com>
Date:   Tue Jun 10 18:43:00 2008 -0400

    Provide fine grained control over printing stack library/source paths.
    
    frysk-core/frysk/bindir/ChangeLog
    2008-06-10  Andrew Cagney  <cagney@redhat.com>
    
    	* TestFstack.java (testBackTrace,
    	testBackTraceWithDebugNamesAndParams): Check for from <exe>.
    
    frysk-core/frysk/debuginfo/ChangeLog
    2008-06-10  Andrew Cagney  <cagney@redhat.com>
    
    	* PrintDebugInfoStackOptions.java (printSourcePaths): New.
    	(setPrintPaths(boolean)): New.
    	* DebugInfoFrame.java: Update.
    	* TestFrameDebugInfo.java: Use setPrintPaths.
    
    frysk-core/frysk/hpd/ChangeLog
    2008-06-10  Andrew Cagney  <cagney@redhat.com>
    
    	* StackCommands.java: Use setPrintPaths.
    
    frysk-core/frysk/stack/ChangeLog
    2008-06-10  Andrew Cagney  <cagney@redhat.com>
    
    	* Frame.java (toPrint): Use printLibraryPaths.
    	* PrintStackOptions.java (printLibraryPaths): Replace printFullPaths.
    	(setPrintPaths(boolean)): New.
    
    frysk-core/frysk/util/ChangeLog
    2008-06-10  Andrew Cagney  <cagney@redhat.com>
    
    	* TestStackTraceAction.java: Use setPrintPaths.
    	* stack-options.xml: Add paths, lib-paths, src-paths, values to
    	print options.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/bindir/ChangeLog                  |    8 +++--
 frysk-core/frysk/bindir/TestFstack.java            |    4 +-
 frysk-core/frysk/debuginfo/ChangeLog               |    5 +++
 frysk-core/frysk/debuginfo/DebugInfoFrame.java     |    2 +-
 .../debuginfo/PrintDebugInfoStackOptions.java      |   20 +++++++++++
 frysk-core/frysk/debuginfo/TestFrameDebugInfo.java |    6 ++--
 frysk-core/frysk/hpd/ChangeLog                     |    4 ++
 frysk-core/frysk/hpd/StackCommands.java            |    2 +-
 frysk-core/frysk/stack/ChangeLog                   |    4 ++
 frysk-core/frysk/stack/Frame.java                  |    2 +-
 frysk-core/frysk/stack/PrintStackOptions.java      |   21 +++++++----
 frysk-core/frysk/util/ChangeLog                    |    4 ++
 frysk-core/frysk/util/StackPrintUtil.java          |   10 ++++--
 frysk-core/frysk/util/TestStackTraceAction.java    |    2 +-
 frysk-core/frysk/util/stack-options.xml            |   37 ++++++++++++++-----
 15 files changed, 99 insertions(+), 32 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog
index ce774a0..29df5ba 100644
--- a/frysk-core/frysk/bindir/ChangeLog
+++ b/frysk-core/frysk/bindir/ChangeLog
@@ -1,8 +1,10 @@
 2008-06-10  Andrew Cagney  <cagney@redhat.com>
 
-	* TestFstack.java (testBackTrace,
-	testBackTraceWithDebugNamesAndParams): Check for from <exe>.
-
+	* TestFstack.java (testBackTraceWithFullPath): Specify "paths",
+	not "full-path".
+	
+	* TestFstack.java (testBackTrace)
+	(testBackTraceWithDebugNamesAndParams): Check for from <exe>.
 	* TestFstack.java (testBackTraceWithRich()): Mark as unresolved;
 	bug 6616.
 	* ferror.java: Use PrintDebugInfoStackOptions; don't specify the
diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java
index fbcb730..952f12d 100644
--- a/frysk-core/frysk/bindir/TestFstack.java
+++ b/frysk-core/frysk/bindir/TestFstack.java
@@ -94,9 +94,9 @@ public class TestFstack extends TestLib {
 	e.expect("\\#1");
     }
 
-    public void testBackTraceWithFullPath () {
+    public void testBackTraceWithFullPath() {
 	TearDownExpect e = fstack("funit-stack-outlined", new String[] {
-		"-rich", "-print", "full-path"
+		"-rich", "-print", "paths"
 	    });
         e.expect (getCanonicalRootSrcDir()
 		  + ".*"
diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog
index 8c2186b..16d23f3 100644
--- a/frysk-core/frysk/debuginfo/ChangeLog
+++ b/frysk-core/frysk/debuginfo/ChangeLog
@@ -1,5 +1,10 @@
 2008-06-10  Andrew Cagney  <cagney@redhat.com>
 
+	* PrintDebugInfoStackOptions.java (printSourcePaths): New.
+	(setPrintPaths(boolean)): New.
+	* DebugInfoFrame.java: Update.
+	* TestFrameDebugInfo.java: Use setPrintPaths.
+
 	* DebugInfoFrame.java (toPrint): Print the library using
 	Frame.printLibraryName.
 	
diff --git a/frysk-core/frysk/debuginfo/DebugInfoFrame.java b/frysk-core/frysk/debuginfo/DebugInfoFrame.java
index 3a0482e..586ed65 100644
--- a/frysk-core/frysk/debuginfo/DebugInfoFrame.java
+++ b/frysk-core/frysk/debuginfo/DebugInfoFrame.java
@@ -199,7 +199,7 @@ public class DebugInfoFrame extends FrameDecorator {
 	    }
 	    writer.print(") at ");
 	    SourceLocation line = this.getLine();
-	    if (options.printFullPaths()) {
+	    if (options.printSourcePaths()) {
 		writer.print(line.getFile().getPath());
 	    } else {
 		writer.print(line.getFile().getName());
diff --git a/frysk-core/frysk/debuginfo/PrintDebugInfoStackOptions.java b/frysk-core/frysk/debuginfo/PrintDebugInfoStackOptions.java
index c2110e1..486eae3 100644
--- a/frysk-core/frysk/debuginfo/PrintDebugInfoStackOptions.java
+++ b/frysk-core/frysk/debuginfo/PrintDebugInfoStackOptions.java
@@ -52,6 +52,7 @@ public class PrintDebugInfoStackOptions extends PrintStackOptions {
     private boolean printInlineFunctions;
     private boolean printDebugNames;
     private boolean printValues;
+    private boolean printSourcePaths;
     
     /**
      * Clear all options.
@@ -86,6 +87,14 @@ public class PrintDebugInfoStackOptions extends PrintStackOptions {
     }
 
     /**
+     * Print the full path to any source file.
+     */
+    public void setPrintPaths(boolean printPaths) {
+	super.setPrintPaths(printPaths);
+	setPrintSourcePaths(printPaths);
+    }
+
+    /**
      * Print the parameter list (see also printValues).
      */
     public boolean printParameters() {
@@ -137,6 +146,17 @@ public class PrintDebugInfoStackOptions extends PrintStackOptions {
 	this.printDebugNames = printDebugNames;
     }
 
+    /**
+     * Print the full path to source files (instead of just the file
+     * name).
+     */
+    public boolean printSourcePaths() {
+	return printSourcePaths;
+    }
+    public void setPrintSourcePaths(boolean printSourcePaths) {
+	this.printSourcePaths = printSourcePaths;
+    }
+
     public boolean abiOnly() {
 	return ! (printLocals
 		  || printInlineFunctions
diff --git a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java
index ec0c65d..74eead7 100644
--- a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java
+++ b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java
@@ -88,7 +88,7 @@ public class TestFrameDebugInfo extends TestLib {
     options.setNumberOfFrames(20);
     options.setPrintParameters(true);
     options.setPrintLocals(true);
-    options.setPrintFullPaths(true);
+    options.setPrintPaths(true);
     DebugInfoStackFactory.printStackTrace(new PrintWriter(stringWriter),frame, options);
       
     String string = stringWriter.getBuffer().toString();
@@ -310,7 +310,7 @@ public class TestFrameDebugInfo extends TestLib {
     options.setNumberOfFrames(0);
     options.setPrintParameters(true);
     options.setPrintLocals(true);
-    options.setPrintFullPaths(true);
+    options.setPrintPaths(true);
     DebugInfoStackFactory.printVirtualTaskStackTrace(new PrintWriter(stringWriter), task, options);
     
     assertTrue("contains inline", stringWriter.getBuffer().toString().contains("inline"));
@@ -329,7 +329,7 @@ public class TestFrameDebugInfo extends TestLib {
     options.setNumberOfFrames(0); 
     options.setPrintParameters(true);
     options.setPrintLocals(true);
-    options.setPrintFullPaths(true);
+    options.setPrintPaths(true);
     
     DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task);
     frame = frame.getOuterDebugInfoFrame();
diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
index 8b619f7..9fb2ad2 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,3 +1,7 @@
+2008-06-10  Andrew Cagney  <cagney@redhat.com>
+
+	* StackCommands.java: Use setPrintPaths.
+
 2008-06-10  Rick Moseley  <rmoseley@redhat.com>
 
 	* StartRun.java: Do not kill core procs.
diff --git a/frysk-core/frysk/hpd/StackCommands.java b/frysk-core/frysk/hpd/StackCommands.java
index 9e80d37..16f183a 100644
--- a/frysk-core/frysk/hpd/StackCommands.java
+++ b/frysk-core/frysk/hpd/StackCommands.java
@@ -75,7 +75,7 @@ abstract class StackCommands extends ParameterizedCommand {
 	printStackOptions.setNumberOfFrames(stopLevel);
 	printStackOptions.setPrintParameters(true);
 	printStackOptions.setPrintLocals(options.printLocals);
-	printStackOptions.setPrintFullPaths(true);
+	printStackOptions.setPrintPaths(true);
 	
 	DebugInfoStackFactory.printStackTrace(cli.outWriter, frame,
 					      printStackOptions);
diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog
index 367f17a..e766365 100644
--- a/frysk-core/frysk/stack/ChangeLog
+++ b/frysk-core/frysk/stack/ChangeLog
@@ -1,5 +1,9 @@
 2008-06-10  Andrew Cagney  <cagney@redhat.com>
 
+	* Frame.java (toPrint): Use printLibraryPaths.
+	* PrintStackOptions.java (printLibraryPaths): Replace printFullPaths.
+	(setPrintPaths(boolean)): New.
+
 	* Frame.java (printLibraryName(PrintWriter,PrintStackOptions)): New.
 	(toPrint(PrintWriter,PrintStackOptions)): Use.
 	
diff --git a/frysk-core/frysk/stack/Frame.java b/frysk-core/frysk/stack/Frame.java
index 2ad9ea5..5405ae7 100644
--- a/frysk-core/frysk/stack/Frame.java
+++ b/frysk-core/frysk/stack/Frame.java
@@ -175,7 +175,7 @@ public abstract class Frame {
 		    writer.print(library);
 		} else {
 		    // Should there be separate libraryFullPath?
-		    if (options.printFullPaths()) {
+		    if (options.printLibraryPaths()) {
 			writer.print(library);
 		    } else {
 			// Discard the path
diff --git a/frysk-core/frysk/stack/PrintStackOptions.java b/frysk-core/frysk/stack/PrintStackOptions.java
index ea400f2..2e3f161 100644
--- a/frysk-core/frysk/stack/PrintStackOptions.java
+++ b/frysk-core/frysk/stack/PrintStackOptions.java
@@ -45,7 +45,7 @@ public class PrintStackOptions {
 
     private int numberOfFrames = 10;
 
-    private boolean printFullPaths;
+    private boolean printLibraryPaths;
     private boolean printLibraryNames;
     
     public PrintStackOptions() {
@@ -57,7 +57,7 @@ public class PrintStackOptions {
      * produced.
      */
     public void clear() {
-	printFullPaths = false;
+	printLibraryPaths = false;
 	printLibraryNames = false;
     }
     
@@ -67,11 +67,18 @@ public class PrintStackOptions {
      */
     public void setAbi() {
 	clear();
-	printFullPaths = false;
+	printLibraryPaths = false;
 	printLibraryNames = true;
     }
 
     /**
+     * Include the full path to any files.
+     */
+    public void setPrintPaths(boolean printPaths) {
+	setPrintLibraryPaths(printPaths);
+    }
+
+    /**
      * Specify the number of frames to include in the back-trace, 0 to
      * include all frames.
      */
@@ -82,11 +89,11 @@ public class PrintStackOptions {
 	return numberOfFrames;
     }
 
-    public void setPrintFullPaths(boolean printFullPaths) {
-	this.printFullPaths = printFullPaths;
+    public void setPrintLibraryPaths(boolean printLibraryPaths) {
+	this.printLibraryPaths = printLibraryPaths;
     }
-    public boolean printFullPaths() {
-	return printFullPaths;
+    public boolean printLibraryPaths() {
+	return printLibraryPaths;
     }
 
     public void setPrintLibraryNames(boolean printLibraryNames) {
diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog
index 2e2f1c6..bb8009f 100644
--- a/frysk-core/frysk/util/ChangeLog
+++ b/frysk-core/frysk/util/ChangeLog
@@ -1,5 +1,9 @@
 2008-06-10  Andrew Cagney  <cagney@redhat.com>
 
+	* TestStackTraceAction.java: Use setPrintPaths.
+	* stack-options.xml: Add paths, lib-paths, src-paths, values to
+	print options.
+	
 	* TestStackTraceAction.java: Use PrintDebugInfoStackOptions.
 	* StackPrintUtil.java: Ditto.
 	* StacktraceAction.java: Ditto.
diff --git a/frysk-core/frysk/util/StackPrintUtil.java b/frysk-core/frysk/util/StackPrintUtil.java
index 6f1f100..c654b26 100644
--- a/frysk-core/frysk/util/StackPrintUtil.java
+++ b/frysk-core/frysk/util/StackPrintUtil.java
@@ -94,7 +94,7 @@ public class StackPrintUtil {
 		  ("print", "select the back-trace information to display\n"
 		   + "OPTION is:\n"
 		   + "debug-names: print debug-info names (e.g., DWARF)\n"
-		   + "full-path: include the full (untruncated) path to files\n"
+		   + "paths: include the full path to source files (src-paths) and libraries (lib-paths)e"
 		   + "inline: include inlined frames\n"
 		   + "locals: include each function's local variables\n"
 		   //+ "params: include function parameters\n"
@@ -114,8 +114,12 @@ public class StackPrintUtil {
 			}
 			if (name.equals("debug-names")) {
 			    options.setPrintDebugNames(val);
-			} else if (name.equals("full-path")) {
-			    options.setPrintFullPaths(val);
+			} else if (name.equals("paths")) {
+			    options.setPrintPaths(val);
+			} else if (name.equals("lib-paths")) {
+			    options.setPrintLibraryPaths(val);
+			} else if (name.equals("src-paths")) {
+			    options.setPrintSourcePaths(val);
 			} else if (name.equals("inline")) {
 			    options.setPrintInlineFunctions(val);
 			} else if (name.equals("locals")) {
diff --git a/frysk-core/frysk/util/TestStackTraceAction.java b/frysk-core/frysk/util/TestStackTraceAction.java
index 5951727..42fe49b 100644
--- a/frysk-core/frysk/util/TestStackTraceAction.java
+++ b/frysk-core/frysk/util/TestStackTraceAction.java
@@ -80,7 +80,7 @@ public class TestStackTraceAction extends TestLib {
 			      int numSecondaryThreads) {
 	PrintDebugInfoStackOptions options = new PrintDebugInfoStackOptions();
 	options.setNumberOfFrames(20);
-	options.setPrintFullPaths(true);
+	options.setPrintPaths(true);
 	options.setPrintLibraryNames(true);
 
 	StringWriter stringWriter = new StringWriter();
diff --git a/frysk-core/frysk/util/stack-options.xml b/frysk-core/frysk/util/stack-options.xml
index 90eeab4..5555d01 100644
--- a/frysk-core/frysk/util/stack-options.xml
+++ b/frysk-core/frysk/util/stack-options.xml
@@ -74,19 +74,36 @@
     </varlistentry>
 
     <varlistentry>
-      <term><option>-print <replaceable>print-option</replaceable>,...</option></term>
+      <term>
+	<option>-print <replaceable>print-option</replaceable>,...</option>
+      </term>
       <listitem>
-	<para>Specify the level of detail to include in a stack
+	<para>
+	  Specify the level of detail to include in a stack
 	  back-trace.  <replaceable>print-option</replaceable> can be
-	  any of: debug-names - use debug information, such as DWARF,
-	  to determine the name of functions; full-path - do not
-	  truncate file paths; inline - include in-line function in
-	  back-trace; locals - to include local variables from each
-	  frame; params - include the values of any parameters.  To
-	  negate a <replaceable>print-option</replaceable> prefix it
-	  with "-".</para></listitem>
+	  any of:
+	</para>
+
+	<para>debug-names: use debug information, such as DWARF, to
+	determine the name of functions</para>
+
+	<para>paths: include the full path to source files and
+	libraries</para>
+
+	<para>inline: include in-line function in back-trace</para>
+
+	<para>locals: to include local variables from each
+	frame</para>
+
+	<para>params: include the function parameters</para>
+	
+	<para>
+	  To negate a <replaceable>print-option</replaceable> prefix
+	  it with "-".
+	</para>
+
+      </listitem>
     </varlistentry>
-    
   </variablelist>
 
 </refsect2>


hooks/post-receive
--
frysk system monitor/debugger


                 reply	other threads:[~2008-06-10 22:46 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080610224613.14507.qmail@sourceware.org \
    --to=cagney@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).