- for stack tests use a pragma to reduce optimization level -

frysk-0.4-nooptimize
- prefer a variable definition over its declaration - frysk-0.4-skipdecl
This commit is contained in:
cagney 2010-03-30 18:23:53 +00:00
commit febdccc853
3 changed files with 103 additions and 1 deletions

View file

@ -0,0 +1,56 @@
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c.nooptimize 2010-03-30 11:36:32.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-long-stack.c 2010-03-30 11:41:25.000000000 -0400
@@ -1,4 +1,5 @@
#include <stdlib.h>
+#pragma GCC optimize "O1"
void crash(){
char* c = 0;
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c.nooptimize 2010-03-30 11:24:03.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stack-outlined.c 2010-03-30 11:41:31.000000000 -0400
@@ -38,6 +38,7 @@
// exception.
#include <stdlib.h>
+#pragma GCC optimize "O1"
// See also funit-stack-inlined.c
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c.nooptimize 2010-03-30 11:41:52.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks.c 2010-03-30 11:44:10.000000000 -0400
@@ -1,4 +1,5 @@
#include <stdlib.h>
+#pragma GCC optimize "O1"
void fourth(int param1, int param2, int param3, char* param4){
char* c = 0;
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c.nooptimize 2010-03-30 11:42:00.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-exit.c 2010-03-30 11:42:55.000000000 -0400
@@ -1,4 +1,5 @@
#include <stdlib.h>
+#pragma GCC optimize "O1"
void fourth(){
exit(1);
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c.nooptimize 2010-03-30 11:42:05.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-linenum.c 2010-03-30 11:43:10.000000000 -0400
@@ -1,4 +1,5 @@
#include <stdlib.h>
+#pragma GCC optimize "O1"
void first(int param1, int param2){
char* a = 0;
diff -up frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c.nooptimize frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c
--- frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c.nooptimize 2010-03-30 11:42:08.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/pkglibdir/funit-stacks-values.c 2010-03-30 11:59:03.000000000 -0400
@@ -1,4 +1,5 @@
#include <stdlib.h>
+#pragma GCC optimize "O1"
void third(volatile int param3){
int var4 = 4;asm volatile ("" : "+m" (var4));

36
frysk-0.4-skipdecl.patch Normal file
View file

@ -0,0 +1,36 @@
diff -up frysk-0.4/frysk-core/frysk/scopes/Scope.java.skipdecl frysk-0.4/frysk-core/frysk/scopes/Scope.java
--- frysk-0.4/frysk-core/frysk/scopes/Scope.java.skipdecl 2010-03-30 14:04:28.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/scopes/Scope.java 2010-03-30 14:02:55.000000000 -0400
@@ -48,6 +48,7 @@ import lib.dwfl.DwarfDie;
import frysk.debuginfo.DebugInfoFrame;
import frysk.debuginfo.TypeFactory;
import frysk.value.ObjectDeclaration;
+import lib.dwfl.DwAt;
/**
* A class to represent a Scope.
@@ -215,14 +216,24 @@ public class Scope
public ObjectDeclaration getDeclaredObjectByName(String name){
ObjectDeclaration objectDeclaration = null;
+ ObjectDeclaration declaration = null;
Iterator iterator = this.getObjectDeclarations().iterator();
while (iterator.hasNext()) {
objectDeclaration = (ObjectDeclaration) iterator.next();
if(objectDeclaration.getName().equals(name)){
+ if (objectDeclaration instanceof Variable
+ && ((Variable)objectDeclaration).getVariableDie().getAttrBoolean(DwAt.DECLARATION)) {
+ // If it is only a declaration keep searching;
+ // hopefully there's also a definition.
+ declaration = objectDeclaration;
+ continue;
+ }
return objectDeclaration;
}
}
+ if (declaration != null)
+ return declaration;
iterator = this.getEnums().iterator();
while (iterator.hasNext()) {

View file

@ -1,7 +1,7 @@
Summary: Execution analysis and debugging tool-suite.
Name: frysk
Version: 0.4
Release: 24%{?dist}
Release: 25%{?dist}
# antlrv2 is Public Domain; antlrv3 is BSD.
# getopt is GPLv2 with exception
@ -33,6 +33,8 @@ Patch10: frysk-0.4-noelfmem.patch
Patch11: frysk-0.4-gccjint.patch
Patch12: frysk-0.4-taskstoperr.patch
Patch13: frysk-0.4-lostfork.patch
Patch14: frysk-0.4-nooptimize.patch
Patch15: frysk-0.4-skipdecl.patch
Patch100: frysk-0.4-aclocaljavac.patch
@ -163,6 +165,8 @@ mv frysk-core/frysk/util/ProcStopUtil.java frysk-core/frysk/util/TaskStopUtil.ja
%patch11 -p1 -z .gccjint
%patch12 -p1 -z .taskstoperr
%patch13 -p1 -z .lostfork
%patch14 -p1 -z .nooptimize
%patch15 -p1 -z .skipdecl
%if %{fedora}0 >= 130
%patch100 -p1 -z .aclocaljavac
@ -354,6 +358,12 @@ rm -rf %{buildroot}
%{_mandir}/man1/frysk.1.gz
%changelog
* Tue Mar 30 2010 Andrew Cagney <cagney [at] fedoraproject.org> - 0.4-25
- for stack tests use a pragma to reduce optimization level -
frysk-0.4-nooptimize
- prefer a variable definition over its declaration -
frysk-0.4-skipdecl
* Tue Mar 30 2010 Andrew Cagney <cagney [at] fedoraproject.org> - 0.4-24
- for fcatch et.al. don't exit when outstanding child events -
frysk-0.4-lostfork.patch