From mark@sourceware.org Mon Oct 1 09:10:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 01 Oct 2007 09:10:00 -0000 Subject: frysk-core/frysk/ftrace ChangeLog ObjectFile.java Message-ID: <20071001091045.20205.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: mark@sourceware.org 2007-10-01 09:10:45 Modified files: frysk/ftrace : ChangeLog ObjectFile.java Log message: * ObjectFile.java (ObjFBuilder.getTracePoints): Expand ElfSymbol.Loader.loadAll() sequence. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ObjectFile.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From moore@sourceware.org Mon Oct 1 13:56:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Mon, 01 Oct 2007 13:56:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog TestBreakpoints ... Message-ID: <20071001135633.8841.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: moore@sourceware.org 2007-10-01 13:56:33 Modified files: frysk/hpd : ChangeLog TestBreakpoints.java Log message: Add test case for multi-threaded breakpoint continue bug frysk-core/frysk/hpd/ChangeLog: 2007-10-01 Tim Moore * TestBreakpoints.java (testHpdBreakMultiThreadedContinue): New test; see bug 5082. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.106&r2=1.107 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 From swagiaal@sourceware.org Mon Oct 1 15:04:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 01 Oct 2007 15:04:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog TestCppVa ... Message-ID: <20071001150454.11338.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-01 15:04:54 Modified files: frysk/debuginfo: ChangeLog TestCppVariableSearchEngine.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-01 Sami Wagiaalla + + * TestCppVariableSearchEngine.java (verifyVariableLongValue): + Added ngative test. + (verifyVariable): Ditto. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.181&r2=1.182 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 From cagney@sourceware.org Mon Oct 1 15:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 15:56:00 -0000 Subject: frysk-core/frysk/proc ChangeLog IsaPPC.java Message-ID: <20071001155650.5298.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 15:56:50 Modified files: frysk/proc : ChangeLog IsaPPC.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * IsaPPC.java (IsaPPC()): Simplify. (PPCRegister): Delete. (PPCFPRegister): Delete. (gprs(), fprs()): Delete. (gpr, fpr): Delete. (nip, msr, orig_r3, ctr, lnk, xer, ccr, mq, trap, dar): Delete. (dsisr, result): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.811&r2=1.812 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 From cagney@sourceware.org Mon Oct 1 15:59:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 15:59:00 -0000 Subject: frysk-core/frysk/proc ChangeLog FPRegister.java Message-ID: <20071001155932.6235.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 15:59:32 Modified files: frysk/proc : ChangeLog Removed files: frysk/proc : FPRegister.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * FPRegister.java: Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.812&r2=1.813 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/FPRegister.java.diff?cvsroot=frysk&r1=1.3&r2=NONE From cagney@sourceware.org Mon Oct 1 16:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 16:49:00 -0000 Subject: frysk-core/frysk/proc ChangeLog Isa.java IsaIA ... Message-ID: <20071001164956.7794.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 16:49:56 Modified files: frysk/proc : ChangeLog Isa.java IsaIA32.java IsaPowerPC.java IsaX8664.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * Isa.java (RegisterIterator()): Delete. * IsaPowerPC.java (RegisterIterator()): Ditto. * IsaX8664.java (RegisterIterator()): Ditto. * IsaIA32.java (RegisterIterator()): Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.813&r2=1.814 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Isa.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.32&r2=1.33 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPowerPC.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 From cmoller@sourceware.org Mon Oct 1 17:38:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Mon, 01 Oct 2007 17:38:00 -0000 Subject: frysk-utrace/utracer ChangeLog Makefile udb-i3 ... Message-ID: <20071001173835.15915.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-01 17:38:35 Modified files: utracer : ChangeLog Makefile udb-i386.c udb-text-ui.c udb.c utracer/utracer: ChangeLog utracer/utracer/include: utracer.h utracer/utracer/utracer: utracer.c Log message: * udb-i386.c: * udb-text-ui.c: * udb.c: More stuff to isolate Java from the system. * include/utracer.h: * utracer/utracer.c: More stuff to isolate Java from the system. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.43&r2=1.44 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/Makefile.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb-i386.c.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb-text-ui.c.diff?cvsroot=frysk&r1=1.33&r2=1.34 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb.c.diff?cvsroot=frysk&r1=1.28&r2=1.29 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.40&r2=1.41 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/include/utracer.h.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/utracer/utracer.c.diff?cvsroot=frysk&r1=1.14&r2=1.15 From cagney@sourceware.org Mon Oct 1 17:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 17:39:00 -0000 Subject: frysk-core/frysk/proc BankRegister.java Change ... Message-ID: <20071001173911.16484.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 17:39:11 Modified files: frysk/proc : BankRegister.java ChangeLog IsaIA32.java IsaPPC.java IsaPPC64.java IsaPowerPC.java IsaX8664.java Added files: frysk/proc : BankRegisterMap.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * BankRegister.java (register): New. (BankRegister(int,int,int,Register,String)): New; update other constructors. * BankRegisterMap.java: New. * IsaPowerPC.java (registerMap): Change type to BankRegisterMap. (add): Delete. (getRegisterByName()): Update. (IsaPowerPC()): Update. * IsaIA32.java: Ditto. * IsaX8664.java: Ditto. * IsaPPC.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegisterMap.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.814&r2=1.815 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.33&r2=1.34 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPowerPC.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 From swagiaal@sourceware.org Mon Oct 1 20:09:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 01 Oct 2007 20:09:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog DebugInfo ... Message-ID: <20071001200911.7456.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-01 20:09:11 Modified files: frysk/debuginfo: ChangeLog DebugInfoStackFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-01 Sami Wagiaalla + + * DebugInfoStackFactory.java (printStackTrace): Now sets frame + index. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.182&r2=1.183 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 From cagney@sourceware.org Mon Oct 1 21:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 21:06:00 -0000 Subject: frysk-core/frysk/proc ChangeLog LinuxIa32On64. ... Message-ID: <20071001210645.4513.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 21:06:45 Modified files: frysk/proc : ChangeLog LinuxIa32On64.java LinuxPPC32On64.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * LinuxPPC32On64.java (registerMap): Change type to BankRegisterMap. (LinuxIsa32On64()): Simplify. (regDefs): Delete. (RegisterIterator()): Delete (getRegisterByName(String)): Update. * LinuxIa32On64.java (registerMap): Change type to BankRegisterMap. (LinuxIsa32On64()): Simplify. (regDefs): Delete. (RegisterIterator()): Delete. (getRegisterByName(String)): Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.815&r2=1.816 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32On64.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC32On64.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From cagney@sourceware.org Mon Oct 1 22:15:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 22:15:00 -0000 Subject: frysk-core/frysk isa/ChangeLog isa/Register.ja ... Message-ID: <20071001221511.21537.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 22:15:11 Modified files: frysk/isa : ChangeLog Register.java frysk/proc : ChangeLog Task.java frysk/stack : ChangeLog LibunwindAddressSpace.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-01 Andrew Cagney * Register.java (getName()): New. (getType()): New. Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * Task.java (getRegister(Register)): New. (setRegister(Register,long)): New. (getBankRegister(String name)): New. (accessRegister(Register,int,int,byte[],int)): New. Index: frysk-core/frysk/stack/ChangeLog 2007-10-01 Andrew Cagney * LibunwindAddressSpace.java (getReg(int)): Use Task.getRegister(Register). (setReg(int,long)): use Task.setRegister(Register,long). (accessFPReg): Use Task.accessRegister. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/Register.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.816&r2=1.817 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.144&r2=1.145 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.68&r2=1.69 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindAddressSpace.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Mon Oct 1 22:33:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 22:33:00 -0000 Subject: frysk-core/frysk/util ChangeLog LinuxElfCorefi ... Message-ID: <20071001223323.29759.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-01 22:33:23 Modified files: frysk/util : ChangeLog LinuxElfCorefileFactory.java Log message: Index: frysk-core/frysk/util/ChangeLog 2007-10-01 Andrew Cagney * LinuxElfCorefileFactory.java: Re-indent. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.184&r2=1.185 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefileFactory.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Mon Oct 1 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 01 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071001235102.30742.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-01 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.686&r2=1.687 From cagney@sourceware.org Tue Oct 2 02:43:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 02:43:00 -0000 Subject: frysk-core/frysk/proc ChangeLog LinuxIa32On64. ... Message-ID: <20071002024325.23973.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-02 02:43:25 Modified files: frysk/proc : ChangeLog LinuxIa32On64.java LinuxPPC32On64.java Added files: frysk/proc : IndirectBankRegisterMap.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * IndirectBankRegisterMap.java: New. * LinuxIa32On64.java (registerMap): Change type to IndirectBankRegisterMap. (LinuxIa32On64()): Update. (IndirectRegister): Delete. (ConstantRegister): Delete. (getRegisterByNameSuper(String)): Delete. * LinuxPPC32On64.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.817&r2=1.818 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32On64.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC32On64.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From cagney@sourceware.org Tue Oct 2 04:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 04:01:00 -0000 Subject: frysk-gui/frysk debuginfo/ChangeLog debuginfo/ ... Message-ID: <20071002040130.14732.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-02 04:01:30 Modified files: frysk/debuginfo: ChangeLog DebugInfoEvaluator.java RegisterPiece.java frysk/hpd : ChangeLog RegsCommand.java frysk/isa : ChangeLog IA32Registers.java Register.java RegisterGroup.java Registers.java X8664Registers.java frysk/proc : BankRegister.java ChangeLog frysk/stack : ChangeLog Frame.java frysk/gui : ChangeLog frysk/gui/register: RegisterWindow.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-01 Andrew Cagney * DebugInfoEvaluator.java: Update; use Register.getType() and/or Register.getName(). * RegisterPiece.java: Ditto. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-01 Andrew Cagney * RegsCommand.java: Update; use RegisterGroup.getRegisters(). Index: frysk-core/frysk/isa/ChangeLog 2007-10-01 Andrew Cagney * RegisterGroup.java (name, registers): Make private. (getName(), getRegisters()): New. * Register.java (name, type): Make private. * IA32Registers.java: Update. * X8664Registers.java: Update. Index: frysk-core/frysk/proc/ChangeLog 2007-10-01 Andrew Cagney * BankRegister.java: Update; use Register.getName(). Index: frysk-core/frysk/stack/ChangeLog 2007-10-01 Andrew Cagney * Frame.java: Update; use Register.getType(). Index: frysk-gui/frysk/gui/ChangeLog 2007-10-01 Andrew Cagney * register/RegisterWindow.java: Update; use RegisterGroup.getRegisters(), Register.getType(), and Register.getName() Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.183&r2=1.184 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.81&r2=1.82 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/RegisterPiece.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.107&r2=1.108 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/RegsCommand.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/IA32Registers.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/Register.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/RegisterGroup.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/Registers.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/X8664Registers.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.818&r2=1.819 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.69&r2=1.70 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.563&r2=1.564 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/register/RegisterWindow.java.diff?cvsroot=frysk&r1=1.48&r2=1.49 From cagney@sourceware.org Tue Oct 2 15:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 15:13:00 -0000 Subject: frysk-core/frysk/proc BankRegisterMap.java Cha ... Message-ID: <20071002151324.3433.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-02 15:13:23 Modified files: frysk/proc : BankRegisterMap.java ChangeLog IndirectBankRegisterMap.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-02 Andrew Cagney * IndirectBankRegisterMap.java (add(Register)): New. (add(Register,Register)): New. (add(Register[])): New. (add(Register,long)): New. * BankRegisterMap.java (add(int,int,int,Register)): New. (add(int,int,int,Register[])): New. (add(int,int,int,String)): New. (add(BankRegister)): Make protected. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegisterMap.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.819&r2=1.820 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From swagiaal@sourceware.org Tue Oct 2 15:16:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 02 Oct 2007 15:16:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog Subprogra ... Message-ID: <20071002151621.5376.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-02 15:16:21 Modified files: frysk/debuginfo: ChangeLog Subprogram.java TestFrameDebugInfo.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-02 Sami Wagiaalla + + * TestFrameDebugInfo.java (testThatArtificialParametersAreIgnored): + New test. + * Subprogram.java (Subprogram): Now ignores artifitial parameters. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.184&r2=1.185 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Subprogram.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 From swagiaal@sourceware.org Tue Oct 2 18:03:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 02 Oct 2007 18:03:00 -0000 Subject: frysk-sys frysk/debuginfo/ChangeLog frysk/debu ... Message-ID: <20071002180324.4408.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: swagiaal@sourceware.org 2007-10-02 18:03:24 Modified files: frysk/debuginfo: ChangeLog Scope.java TestDie.java lib/dwfl : ChangeLog DwarfDie.java lib/dwfl/cni : DwarfDie.cxx Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-02 Sami Wagiaalla + + * TestDie.java (testGetLine): Now checks line number. + (testGetOriginalDie): New test. + * Scope.java (getDie): New function. Index: frysk-sys/lib/dwfl/ChangeLog +2007-10-02 Sami Wagiaalla + + * cni/DwarfDie.cxx (get_original_die): New function. + * DwarfDie.java (getOriginalDie): New function. + ------------------------------------------------------------------ Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.185&r2=1.186 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Scope.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestDie.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ChangeLog.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/DwarfDie.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/cni/DwarfDie.cxx.diff?cvsroot=frysk&r1=1.5&r2=1.6 From swagiaal@sourceware.org Tue Oct 2 18:06:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 02 Oct 2007 18:06:00 -0000 Subject: frysk-core/frysk/pkglibdir ChangeLog funit-cpp ... Message-ID: <20071002180653.4955.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-02 18:06:53 Modified files: frysk/pkglibdir: ChangeLog Added files: frysk/pkglibdir: funit-cpp-scopes-class.cxx Log message: Index: frysk-core/frysk/pkglibdir/ChangeLog +2007-10-02 Sami Wagiaalla + + * funit-cpp-scopes-class.cxx: New file. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-cpp-scopes-class.cxx.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.124&r2=1.125 From swagiaal@sourceware.org Tue Oct 2 19:27:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 02 Oct 2007 19:27:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog TestDie.java Message-ID: <20071002192704.19705.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-02 19:27:04 Modified files: frysk/debuginfo: ChangeLog TestDie.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-02 Sami Wagiaalla + + * TestDie.java (testGetLine): Removed print statements. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.186&r2=1.187 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestDie.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Tue Oct 2 20:32:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 20:32:00 -0000 Subject: frysk-core/frysk/proc BankRegister.java BankRe ... Message-ID: <20071002203203.24739.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-02 20:32:03 Modified files: frysk/proc : BankRegister.java BankRegisterMap.java ChangeLog IndirectBankRegisterMap.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-02 Andrew Cagney * BankRegister.java (bank, offset, register): Make private. (getBank()): New. (getOffset()): New. (getRegister()): New. * BankRegisterMap.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegisterMap.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.820&r2=1.821 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Tue Oct 2 22:31:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 22:31:00 -0000 Subject: frysk-core/frysk isa/ChangeLog proc/Task.java ... Message-ID: <20071002223150.12324.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-02 22:31:50 Modified files: frysk/isa : ChangeLog frysk/proc : Task.java frysk/proc/dead: ChangeLog LinuxExeTask.java LinuxProc.java LinuxTask.java frysk/proc/dummy: ChangeLog Task.java frysk/proc/live: ChangeLog LinuxTask.java Added files: frysk/isa : ElfMap.java ISA.java TestISA.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-02 Andrew Cagney * ElfMap.java: New. * TestISA.java: New. * ISA.java: New. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-02 Andrew Cagney * LinuxProc.java (sendrecISA()): Add. * LinuxTask.java (sendrecISA()): Add. * LinuxExeTask.java (sendrecISA()): Add. Index: frysk-core/frysk/proc/dummy/ChangeLog 2007-10-02 Andrew Cagney * Task.java (sendrecISA()): Add. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-02 Andrew Cagney * LinuxTask.java (sendrecISA()): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ElfMap.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ISA.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/TestISA.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.145&r2=1.146 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.31&r2=1.32 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeTask.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxProc.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/ChangeLog.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/Task.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxTask.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Tue Oct 2 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 02 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071002235104.7644.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-02 23:51:04 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.687&r2=1.688 From cagney@sourceware.org Wed Oct 3 02:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 02:26:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071003022646.18351.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-03 02:26:46 Modified files: frysk/debuginfo: ChangeLog DwarfRegisterMapFactory.java LocationExpression.java frysk/proc : ChangeLog Task.java frysk/stack : ChangeLog Frame.java LibunwindAddressSpace.java LibunwindFrame.java LibunwindRegisterMapFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-02 Andrew Cagney * LocationExpression.java (isa): New private field. (LocationExpression): Initialize; use through out. * DwarfRegisterMapFactory.java (getRegisterMap): Re-implement using frysk.isa.ISA. (isaToMap): New. Index: frysk-core/frysk/proc/ChangeLog 2007-10-02 Andrew Cagney * Task.java (getRegister(Register), setRegister(Register,long)) (accessRegister(...), getBankRegister(String)): Call getIsa(), not refer to "isa". Index: frysk-core/frysk/stack/ChangeLog 2007-10-02 Andrew Cagney * LibunwindRegisterMapFactory.java (isaToMap): New. (getRegisterMap()): Re-implement using frysk.isa.ISA; * LibunwindAddressSpace.java: Update; use frysk.isa.ISA. * LibunwindFrame.java: Ditto. * Frame.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.187&r2=1.188 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/LocationExpression.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.821&r2=1.822 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.146&r2=1.147 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.70&r2=1.71 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindAddressSpace.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From cmoller@sourceware.org Wed Oct 3 03:21:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Wed, 03 Oct 2007 03:21:00 -0000 Subject: frysk-utrace/utracer/judb Message-ID: <20071003032146.13763.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-03 03:21:46 frysk-utrace/utracer/judb Update of /cvs/frysk/frysk-utrace/utracer/judb In directory sourceware.org:/tmp/cvs-serv13756/judb Log Message: Directory /cvs/frysk/frysk-utrace/utracer/judb added to the repository From cmoller@sourceware.org Wed Oct 3 03:23:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Wed, 03 Oct 2007 03:23:00 -0000 Subject: frysk-utrace/utracer/judb/cni Message-ID: <20071003032325.14075.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-03 03:23:25 frysk-utrace/utracer/judb/cni Update of /cvs/frysk/frysk-utrace/utracer/judb/cni In directory sourceware.org:/tmp/cvs-serv14068/cni Log Message: Directory /cvs/frysk/frysk-utrace/utracer/judb/cni added to the repository From cmoller@sourceware.org Wed Oct 3 03:28:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Wed, 03 Oct 2007 03:28:00 -0000 Subject: frysk-utrace/utracer/judb ChangeLog Judb.java ... Message-ID: <20071003032859.15804.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-03 03:28:59 Added files: utracer/judb : ChangeLog Judb.java Makefile Utrace.java utracer/judb/cni: Utrace.cxx Log message: Initial commit of the utracer wrapper. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/ChangeLog.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Judb.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Makefile.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Utrace.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/cni/Utrace.cxx.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cmoller@sourceware.org Wed Oct 3 03:34:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Wed, 03 Oct 2007 03:34:00 -0000 Subject: frysk-utrace/utracer ChangeLog udb-i386.c udb- ... Message-ID: <20071003033454.16683.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-03 03:34:54 Modified files: utracer : ChangeLog udb-i386.c udb-text-ui.c utracer/utracer: ChangeLog utracer/utracer/include: utracer-errmsgs.h utracer.h utracer/utracer/utracer: Makefile utracer.c Log message: * include/utracer-errmsgs.h: * include/utracer.h: Minor tweaks for the wrapper. * utracer/utracer.c: Minor tweak. * udb-text-ui.c: * udb-i386.c: Minor tinkering. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.44&r2=1.45 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb-i386.c.diff?cvsroot=frysk&r1=1.19&r2=1.20 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb-text-ui.c.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.41&r2=1.42 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/include/utracer-errmsgs.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/include/utracer.h.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/utracer/Makefile.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/utracer/utracer.c.diff?cvsroot=frysk&r1=1.15&r2=1.16 From cagney@sourceware.org Wed Oct 3 03:37:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 03:37:00 -0000 Subject: frysk-gui/frysk debuginfo/ChangeLog debuginfo/ ... Message-ID: <20071003033720.17066.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-03 03:37:19 Modified files: frysk/debuginfo: ChangeLog DebugInfo.java DebugInfoEvaluator.java DebugInfoFrame.java Enumerator.java TestTypeEntry.java TypeEntry.java Variable.java frysk/expr : CExprAnnotator.g frysk/hpd : ChangeLog RegsCommand.java TestRegs.java frysk/isa : ChangeLog RegistersFactory.java frysk/value : ChangeLog StandardTypes.java frysk/gui : ChangeLog frysk/gui/register: RegisterWindow.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-02 Andrew Cagney * Variable.java (getType(ISA)): Replace getType(DebugInfoFrame). * Enumerator.java (getType(ISA)): Replace getType(DebugInfoFrame); note that frysk.value.EnumType is a better alternative. * TypeEntry.java (TypeEntry(ISA)): Replace TypeEntry(Isa). (isa): Delete. * DebugInfoEvaluator.java: Update; StandardTypes indexed by ByteOrder. * DebugInfo.java: Ditto. * TestTypeEntry.java: Ditto. * DebugInfoFrame.java: Update; use Task.getISA. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-02 Andrew Cagney * RegsCommand.java: Update; use frysk.isa.ISA. * TestRegs.java: Ditto. Index: frysk-core/frysk/isa/ChangeLog 2007-10-02 Andrew Cagney * RegistersFactory.java (getRegisters(ISA)): Replace getRegisters(Isa). Index: frysk-core/frysk/value/ChangeLog 2007-10-02 Andrew Cagney * StandardTypes.java: Parameterize with ByteOrder, not ISA. Index: frysk-gui/frysk/gui/ChangeLog 2007-10-02 Andrew Cagney * register/RegisterWindow.java: Update; use frysk.isa.ISA. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.188&r2=1.189 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.31&r2=1.32 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.82&r2=1.83 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Enumerator.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestTypeEntry.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TypeEntry.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Variable.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.108&r2=1.109 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/RegsCommand.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestRegs.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/RegistersFactory.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.139&r2=1.140 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/StandardTypes.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.564&r2=1.565 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/register/RegisterWindow.java.diff?cvsroot=frysk&r1=1.49&r2=1.50 From cagney@sourceware.org Wed Oct 3 03:45:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 03:45:00 -0000 Subject: frysk-sys/lib/unwind ChangeLog RegisterAMD64.j ... Message-ID: <20071003034502.17908.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: cagney@sourceware.org 2007-10-03 03:45:02 Modified files: lib/unwind : ChangeLog Removed files: lib/unwind : RegisterAMD64.java RegisterX86.java Log message: Index: frysk-sys/lib/unwind/ChangeLog 2007-10-02 Andrew Cagney * RegisterX86.java: Delete. * RegisterAMD64.java: Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/ChangeLog.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/RegisterAMD64.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/RegisterX86.java.diff?cvsroot=frysk&r1=1.1&r2=NONE From mark@sourceware.org Wed Oct 3 11:18:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 03 Oct 2007 11:18:00 -0000 Subject: frysk-imports/libunwind ChangeLog src/Makefile ... Message-ID: <20071003111810.26511.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-03 11:18:10 Modified files: libunwind : ChangeLog libunwind/src : Makefile.am libunwind/tests: Makefile.am Log message: * src/Makefile.am: Don't special case libunwind-ptrace. Use upstream .a archive rules. * tests/Makefile.am: Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.61&r2=1.62 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/Makefile.am.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Makefile.am.diff?cvsroot=frysk&r1=1.6&r2=1.7 From mark@sourceware.org Wed Oct 3 13:41:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 03 Oct 2007 13:41:00 -0000 Subject: frysk-imports/libunwind ChangeLog tests/test-a ... Message-ID: <20071003134121.32562.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-03 13:41:21 Modified files: libunwind : ChangeLog libunwind/tests: test-async-sig.c test-ptrace.c Log message: * tests/test-async-sig.c: Remove duplicate nerrors_max (merge error). * tests/test-ptrace.c: Remove duplicate and target_pid_kill definitions (merge error). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.62&r2=1.63 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-async-sig.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-ptrace.c.diff?cvsroot=frysk&r1=1.10&r2=1.11 From tthomas@sourceware.org Wed Oct 3 15:28:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 03 Oct 2007 15:28:00 -0000 Subject: frysk-core/frysk/pkglibdir ChangeLog funit-add ... Message-ID: <20071003152855.29004.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-03 15:28:55 Modified files: frysk/pkglibdir: ChangeLog Added files: frysk/pkglibdir: funit-addresses.c Log message: 2007-10-03 Teresa Thomas * funit-addresses.c: New file. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-addresses.c.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.125&r2=1.126 From swagiaal@sourceware.org Wed Oct 3 16:58:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 03 Oct 2007 16:58:00 -0000 Subject: frysk-imports/elfutils/libdw ChangeLog libdw_v ... Message-ID: <20071003165839.3172.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: swagiaal@sourceware.org 2007-10-03 16:58:39 Modified files: elfutils/libdw : ChangeLog libdw_visit_scopes.c Log message: Index: libdw/ChangeLog +2007-10-03 Sami Wagiaalla + + * libdw_visit_scopes.c (classify_die): Added DW_TAG_structure_type + to the list of tags to match. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdw/ChangeLog.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdw/libdw_visit_scopes.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 From cmoller@sourceware.org Wed Oct 3 17:37:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Wed, 03 Oct 2007 17:37:00 -0000 Subject: frysk-utrace/utracer/judb ChangeLog Judb.java ... Message-ID: <20071003173743.26756.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-03 17:37:43 Modified files: utracer/judb : ChangeLog Judb.java Utrace.java utracer/judb/cni: Utrace.cxx Log message: * Judb.java: Added stuff for reading regs. Cleaned up some stuff. * Utrace.java: * cni/Utrace.cxx: Added stuff for reading regs. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/ChangeLog.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Judb.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Utrace.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/cni/Utrace.cxx.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Wed Oct 3 17:45:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 17:45:00 -0000 Subject: frysk-imports/include ChangeLog frysk-asm.h Message-ID: <20071003174553.29413.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: cagney@sourceware.org 2007-10-03 17:45:53 Modified files: include : ChangeLog frysk-asm.h Log message: Index: frysk-imports/include/ChangeLog 2007-10-03 Andrew Cagney * frysk-asm.h (SP): Define. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/ChangeLog.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/frysk-asm.h.diff?cvsroot=frysk&r1=1.21&r2=1.22 From swagiaal@sourceware.org Wed Oct 3 18:02:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 03 Oct 2007 18:02:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog Subroutin ... Message-ID: <20071003180230.2953.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-03 18:02:30 Modified files: frysk/debuginfo: ChangeLog Subroutine.java Added files: frysk/debuginfo: Struct.java TestScopes.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog =================================================================== RCS file: /cvs/frysk/frysk-core/frysk/debuginfo/ChangeLog,v retrieving revision 1.189 diff -u -r1.189 ChangeLog --- frysk-core/frysk/debuginfo/ChangeLog 3 Oct 2007 03:37:19 -0000 1.189 +++ frysk-core/frysk/debuginfo/ChangeLog 3 Oct 2007 18:02:04 -0000 @@ -1,3 +1,10 @@ +2007-10-03 Sami Wagiaalla + + * Struct.java: New file. + * TestScopes.java: New file. + * Subroutine.java: Reindented. + (getStruct): New function. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Struct.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestScopes.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.189&r2=1.190 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Subroutine.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From cagney@sourceware.org Wed Oct 3 18:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 18:19:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071003181933.18259.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-03 18:19:33 Modified files: frysk/debuginfo: ChangeLog DwarfRegisterMapFactory.java frysk/isa : ChangeLog RegistersFactory.java TestISA.java frysk/stack : ChangeLog LibunwindRegisterMapFactory.java Added files: frysk/isa : ISAMap.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-03 Andrew Cagney * DwarfRegisterMapFactory.java: Replace HashMap with ISAMap. Index: frysk-core/frysk/isa/ChangeLog 2007-10-03 Andrew Cagney * ISAMap.java: New. * TestISA.java (testUnmappedIsa()): New. (testMappedIsa()): New. * RegistersFactory.java: Replace HashMap. Index: frysk-core/frysk/stack/ChangeLog 2007-10-03 Andrew Cagney * LibunwindRegisterMapFactory.java: Replace HashMap with ISAMap. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.190&r2=1.191 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ISAMap.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/RegistersFactory.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/TestISA.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.71&r2=1.72 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From cagney@sourceware.org Wed Oct 3 18:35:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 18:35:00 -0000 Subject: frysk-core/frysk pkglibdir/ChangeLog testbed/C ... Message-ID: <20071003183545.28709.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-03 18:35:45 Modified files: frysk/pkglibdir: ChangeLog frysk/testbed : ChangeLog DaemonBlockedAtEntry.java DaemonBlockedAtSignal.java Added files: frysk/pkglibdir: funit-asm.S frysk/testbed : FryskAsm.java TestFryskAsm.java Log message: Index: frysk-core/frysk/pkglibdir/ChangeLog 2007-10-03 Andrew Cagney * funit-asm.S: New file. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-03 Andrew Cagney * TestFryskAsm.java: New. * FryskAsm.java: New. * DaemonBlockedAtEntry.java (DaemonBlockedAtEntry(String)): New. * DaemonBlockedAtSignal.java (DaemonBlockedAtSignal(String)): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-asm.S.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.126&r2=1.127 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/FryskAsm.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/TestFryskAsm.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.65&r2=1.66 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/DaemonBlockedAtEntry.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From tthomas@sourceware.org Wed Oct 3 19:26:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 03 Oct 2007 19:26:00 -0000 Subject: frysk-core/frysk value/Location.java value/Cha ... Message-ID: <20071003192627.23611.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-03 19:26:27 Modified files: frysk/value : Location.java ChangeLog Type.java TypeDecorator.java ByteBufferLocation.java frysk/debuginfo: PieceLocation.java TestPieceLocation.java DebugInfo.java ChangeLog DebugInfoEvaluator.java frysk/expr : ChangeLog CExprEvaluator.g ExprSymTab.java Added files: frysk/debuginfo: TestAddress.java Log message: Implement & (address of) operator. 2007-10-03 Teresa Thomas * TypeDecorator.java (addressOf): New. * Type.java (addressOf): New. * ByteBufferLocation.java (getAddress): New. * Location.java (getAddress): New. 2007-10-03 Teresa Thomas * ExprSymTab.java (getOrder): New. * CExprEvaluator.g (ADDRESS_OF): Use addressOf. 2007-10-03 Teresa Thomas * TestPieceLocation.java (testBadAddress): New test. * TestAddress.java: New file. * PieceLocation.java (getAddress): New function. * DebugInfoEvaluator.java (getOrder): New function. (getAddress): Use PieceLocation.getAddress. * DebugInfo.java (TmpSymTab.getOrder): New function. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Location.java.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.140&r2=1.141 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Type.java.diff?cvsroot=frysk&r1=1.35&r2=1.36 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TypeDecorator.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ByteBufferLocation.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestAddress.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/PieceLocation.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestPieceLocation.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.32&r2=1.33 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.191&r2=1.192 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.83&r2=1.84 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.70&r2=1.71 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From swagiaal@sourceware.org Wed Oct 3 19:29:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 03 Oct 2007 19:29:00 -0000 Subject: frysk-core/frysk/scopes Message-ID: <20071003192959.24048.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-03 19:29:59 frysk-core/frysk/scopes Update of /cvs/frysk/frysk-core/frysk/scopes In directory sourceware.org:/tmp/cvs-serv24040/frysk-core/frysk/scopes Log Message: Directory /cvs/frysk/frysk-core/frysk/scopes added to the repository From cagney@sourceware.org Wed Oct 3 20:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 20:25:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071003202528.18079.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-03 20:25:28 Modified files: frysk/debuginfo: ChangeLog DebugInfoEvaluator.java TypeEntry.java frysk/value : ChangeLog CompositeType.java TestComposite.java Added files: frysk/value : GccStructOrClassType.java Removed files: frysk/value : ConfoundedType.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-03 Andrew Cagney * TypeEntry.java: Update; ConfoundedType renamed to GccStructOrUnionType. * DebugInfoEvaluator.java: Ditto. Index: frysk-core/frysk/value/ChangeLog 2007-10-03 Andrew Cagney * ConfoundedType.java: Rename to ... * GccStructOrClassType.java: ... this. * CompositeType.java (members()): New. (isClassLike()): Delete; moved to GccStructOrClassType. (Member): Make protected. * TestComposite.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.192&r2=1.193 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.84&r2=1.85 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TypeEntry.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/GccStructOrClassType.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.141&r2=1.142 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/CompositeType.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TestComposite.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ConfoundedType.java.diff?cvsroot=frysk&r1=1.2&r2=NONE From cagney@sourceware.org Wed Oct 3 20:27:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 20:27:00 -0000 Subject: frysk-imports/include ChangeLog frysk-asm.h Message-ID: <20071003202723.18557.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: cagney@sourceware.org 2007-10-03 20:27:23 Modified files: include : ChangeLog frysk-asm.h Log message: Index: frysk-imports/include/ChangeLog 2007-10-03 Andrew Cagney * frysk-asm.h (SP) [__x8664__]: Fix typo, %4sp -> %rsp. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/ChangeLog.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/frysk-asm.h.diff?cvsroot=frysk&r1=1.22&r2=1.23 From cagney@sourceware.org Wed Oct 3 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 03 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071003235102.8684.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-03 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.688&r2=1.689 From swagiaal@sourceware.org Thu Oct 4 13:36:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 04 Oct 2007 13:36:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071004133628.3275.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-04 13:36:28 Modified files: frysk/debuginfo: ChangeLog TestCppVariableSearchEngine.java TestDie.java TestFrameDebugInfo.java TestScopeFactory.java TestScopes.java TestTypeEntry.java frysk/testbed : ChangeLog CoreFileAtSignal.java Added files: frysk/testbed : StoppedTestTaskFactory.java Removed files: frysk/debuginfo: StoppedTestTaskFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-03 Sami Wagiaalla + + Moved from StoppedTestTaskFactory frysk.debuginfo to frysk.testbed + * TestCppVariableSearchEngine.java: Updated. + * TestDie.java: Updated. + * TestFrameDebugInfo.java: Updated. + * TestScopeFactory.java: Updated. + * TestScopes.java: Updated. + * TestTypeEntry.java: Updated. + Index: frysk-core/frysk/testbed/ChangeLog +2007-10-03 Sami Wagiaalla + + Moved from StoppedTestTaskFactory frysk.debuginfo to frysk.testbed + * CoreFileAtSignal.java: Updated. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.193&r2=1.194 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestDie.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestScopeFactory.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestScopes.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestTypeEntry.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/StoppedTestTaskFactory.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/StoppedTestTaskFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.66&r2=1.67 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/CoreFileAtSignal.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From cagney@sourceware.org Thu Oct 4 15:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 04 Oct 2007 15:13:00 -0000 Subject: frysk-core/frysk/isa ChangeLog ISAMap.java Tes ... Message-ID: <20071004151340.13667.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-04 15:13:40 Modified files: frysk/isa : ChangeLog ISAMap.java TestISA.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-04 Andrew Cagney * ISAMap.java (containsKey(ISA)): New. * TestISA.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ISAMap.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/TestISA.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From tthomas@sourceware.org Thu Oct 4 16:08:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 04 Oct 2007 16:08:00 -0000 Subject: frysk-core/frysk/testbed FryskAsm.java ChangeLog Message-ID: <20071004160850.20565.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-04 16:08:50 Modified files: frysk/testbed : FryskAsm.java ChangeLog Log message: 2007-10-04 Teresa Thomas * FryskAsm.java (X8664): REG1, REG2 mapping fixed. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/FryskAsm.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.67&r2=1.68 From swagiaal@sourceware.org Thu Oct 4 16:09:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 04 Oct 2007 16:09:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071004160932.21502.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-04 16:09:32 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog CppVariableSearchEngine.java DebugInfo.java DebugInfoEvaluator.java DebugInfoFrame.java DebugInfoStackFactory.java LocationExpression.java TestAddress.java TestCppVariableSearchEngine.java TestFrameDebugInfo.java TypeEntry.java frysk/expr : CExprAnnotator.g ChangeLog ExprSymTab.java Added files: frysk/scopes : Enumerator.java Enumiration.java InlinedSubroutine.java LexicalBlock.java Scope.java ScopeFactory.java Struct.java Subprogram.java Subroutine.java TestDie.java TestScopeFactory.java TestScopes.java Variable.java Removed files: frysk/debuginfo: Enumerator.java Enumiration.java InlinedSubroutine.java LexicalBlock.java Scope.java ScopeFactory.java Struct.java Subprogram.java Subroutine.java TestDie.java TestScopeFactory.java TestScopes.java Variable.java Log message: Index: frysk-core/ChangeLog +2007-10-04 Sami Wagiaalla + + * frysk/scopes/Enumerator.java: Moved from frysk/debuginfo to + frysk/scopes. + * frysk/scopes/Enumiration.java: Ditto. + * frysk/scopes/InlinedSubroutine.java: Ditto. + * frysk/scopes/LexicalBlock.java: Ditto. + * frysk/scopes/Scope.java: Ditto. + * frysk/scopes/ScopeFactory.java: Ditto. + * frysk/scopes/Struct.java: Ditto. + * frysk/scopes/Subprogram.java: Ditto. + * frysk/scopes/Subroutine.java: Ditto. + * frysk/scopes/TestDie.java: Ditto. + * frysk/scopes/TestScopeFactory.java: Ditto. + * frysk/scopes/TestScopes.java: Ditto. + * frysk/scopes/Variable.java: Ditto. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-04 Sami Wagiaalla + + Moved scope structures to frysk.scopes. + * DebugInfoEvaluator.java: Updated. + * DebugInfoFrame.java: Updated. + * DebugInfoStackFactory.java: Updated. + * TestCppVariableSearchEngine.java: Updated. + * TestFrameDebugInfo.java: Updated. + * TestAddress.java: Updated. + * CppVariableSearchEngine.java (get): Changed visibility to public. + * LocationExpression.java: Changed to a public class. + * TypeEntry.java: Changed to a public class. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.324&r2=1.325 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.194&r2=1.195 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/CppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.33&r2=1.34 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.85&r2=1.86 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.19&r2=1.20 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/LocationExpression.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestAddress.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TypeEntry.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Enumerator.java.diff?cvsroot=frysk&r1=1.4&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Enumiration.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/InlinedSubroutine.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/LexicalBlock.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Scope.java.diff?cvsroot=frysk&r1=1.22&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ScopeFactory.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Struct.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Subprogram.java.diff?cvsroot=frysk&r1=1.13&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Subroutine.java.diff?cvsroot=frysk&r1=1.4&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestDie.java.diff?cvsroot=frysk&r1=1.4&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestScopeFactory.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestScopes.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/Variable.java.diff?cvsroot=frysk&r1=1.24&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.71&r2=1.72 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumerator.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumiration.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/InlinedSubroutine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/LexicalBlock.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ScopeFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Struct.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subprogram.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subroutine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestDie.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestScopeFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestScopes.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Variable.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cagney@sourceware.org Thu Oct 4 17:16:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 04 Oct 2007 17:16:00 -0000 Subject: frysk-sys/frysk proc/ChangeLog stack/ChangeLog ... Message-ID: <20071004171657.21234.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: cagney@sourceware.org 2007-10-04 17:16:57 Modified files: frysk/proc : ChangeLog frysk/stack : ChangeLog frysk/testbed : ChangeLog frysk/junit : ChangeLog TestCase.java Added files: frysk/pkglibdir: funit-regs.S frysk/proc : TestRegs.java frysk/stack : TestRegs.java frysk/testbed : RegsCase.java TestRegs.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-04 Andrew Cagney * TestRegs.java: New. Index: frysk-core/frysk/stack/ChangeLog 2007-10-04 Andrew Cagney * TestRegs.java: New. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-04 Andrew Cagney * RegsCase.java: New file. * TestRegs.java: New file. Index: frysk-sys/frysk/junit/ChangeLog 2007-10-04 Andrew Cagney * TestCase.java (assertEquals(String,BigInteger,BigInteger)): Print positive BigIntegers in base 16. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-regs.S.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegs.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.822&r2=1.823 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/TestRegs.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.72&r2=1.73 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/TestRegs.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.68&r2=1.69 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/frysk/junit/ChangeLog.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/frysk/junit/TestCase.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From swagiaal@sourceware.org Thu Oct 4 17:23:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 04 Oct 2007 17:23:00 -0000 Subject: frysk-core ./ChangeLog frysk/bindir/ChangeLog ... Message-ID: <20071004172304.23236.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-04 17:23:04 Modified files: . : ChangeLog frysk/bindir : ChangeLog TestFstack.java frysk/debuginfo: ChangeLog TestCppVariableSearchEngine.java TestFrameDebugInfo.java TestTypeEntry.java frysk/hpd : ChangeLog TestStackCommands.java frysk/scopes : TestDie.java TestScopeFactory.java TestScopes.java frysk/testbed : ChangeLog CoreFileAtSignal.java Removed files: frysk/testbed : StoppedTestTaskFactory.java Log message: Index: frysk-core/ChangeLog +2007-10-04 Sami Wagiaalla + + * frysk/scopes/TestDie.java: Replaced use of StoppedTestTaskFactory + with DaemonBlockedAtSignal. + * frysk/scopes/TestScopes.java: Ditto. + Index: frysk-core/frysk/bindir/ChangeLog +2007-10-04 Sami Wagiaalla + + * TestFstack.java: Use DeamonBlockedAtSignal instead of + StoppedTestTaskFactory. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-04 Sami Wagiaalla + + * TestFrameDebugInfo.java: Replaced StoppedTaskFactory with + DeamonBlockedAtSignal. + * TestCppVariableSearchEngine.java: Ditto. + * TestTypeEntry.java : Ditto. + Index: frysk-core/frysk/hpd/ChangeLog +2007-10-04 Sami Wagiaalla + + Use DeamonBlockedAtSignal instead of StoppedTestTaskFactory. + * TestStackCommands.java: Updated. + Index: frysk-core/frysk/testbed/ChangeLog +2007-10-04 Sami Wagiaalla + + * CoreFileAtSignal.java: Use DeamonBlockedAtSignal instead of + StoppedTestTaskFactory. + * StoppedTestTaskFactory.java: Removed. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.325&r2=1.326 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.154&r2=1.155 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/TestFstack.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.195&r2=1.196 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.26&r2=1.27 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestTypeEntry.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.109&r2=1.110 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestStackCommands.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestDie.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestScopeFactory.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestScopes.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.69&r2=1.70 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/CoreFileAtSignal.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/StoppedTestTaskFactory.java.diff?cvsroot=frysk&r1=1.1&r2=NONE From swagiaal@sourceware.org Thu Oct 4 19:01:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 04 Oct 2007 19:01:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog DebugInfo ... Message-ID: <20071004190124.27549.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-04 19:01:24 Modified files: frysk/debuginfo: ChangeLog DebugInfoFrame.java DebugInfoStackFactory.java VirtualDebugInfoFrame.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-04 Sami Wagiaalla + + * VirtualDebugInfoFrame.java (setIndex): Removed first index + argument; no long set the index of its parent frame. + (getOuterDebugInfoFrame): Sets the index when an outer frame + is requested. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.196&r2=1.197 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From tthomas@sourceware.org Thu Oct 4 19:34:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 04 Oct 2007 19:34:00 -0000 Subject: frysk-core/frysk/debuginfo TestLocationExpress ... Message-ID: <20071004193400.10289.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-04 19:34:00 Modified files: frysk/debuginfo: TestLocationExpression.java TestPieceLocation.java ChangeLog Log message: 2007-10-04 Teresa Thomas * TestPieceLocation.java (setUp): Call super.setUp. (tearDown): Call super.tearDown. (getArch): Deleted. (setUp): Use FryskAsm. * TestLocationExpression.java (testPieceRegxAddr): Use FryskAsm. (testBregx): Ditto. (getArch): Deleted. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestLocationExpression.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestPieceLocation.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.197&r2=1.198 From cagney@sourceware.org Thu Oct 4 21:18:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 04 Oct 2007 21:18:00 -0000 Subject: frysk-core/frysk stack/ChangeLog stack/Libunwi ... Message-ID: <20071004211808.32028.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-04 21:18:07 Modified files: frysk/stack : ChangeLog LibunwindAddressSpace.java LibunwindFrame.java frysk/testbed : ChangeLog RegsCase.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-04 Andrew Cagney * LibunwindFrame.java (getRegister, setRegister): Log libunwind's register number. * LibunwindAddressSpace.java (getReg, setReg): Fix typo in log message. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-04 Andrew Cagney * RegsCase.java (checkRegisterRead): New. (testAccessRegisterRead): Use. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.73&r2=1.74 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindAddressSpace.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.70&r2=1.71 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Thu Oct 4 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 04 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071004235102.29201.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-04 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.689&r2=1.690 From mark@sourceware.org Fri Oct 5 14:16:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 05 Oct 2007 14:16:00 -0000 Subject: frysk-sys/frysk proc/TestProcStopped.java proc ... Message-ID: <20071005141627.27250.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: mark@sourceware.org 2007-10-05 14:16:27 Modified files: frysk/proc : TestProcStopped.java ChangeLog frysk/junit : ChangeLog KernelVersion.java Log message: frysk-sys/frysk/junit/ChangeLog 2007-10-05 Mark Wielaard * KernelVersion.java (fedoraMajor, fedoraMinor): Removed. (KernelVersion): Adjust fedoraPattern to only check for fc ending. (newer): Don't check fedoraMajor or fedoraMinor. frysk-core/frysk/proc/ChangeLog 2007-10-05 Mark Wielaard * TestProcStopped.java (testStoppedAckDaemon): Mark unresolvedOnUtrace(5114). (testStoppedDetached): Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestProcStopped.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.823&r2=1.824 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/frysk/junit/ChangeLog.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/frysk/junit/KernelVersion.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From swagiaal@sourceware.org Fri Oct 5 14:30:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 05 Oct 2007 14:30:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071005143049.365.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-05 14:30:49 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog frysk/scopes : Scope.java Subprogram.java TestDie.java Variable.java Added files: frysk/debuginfo: CxxObjectSearchEngine.java TestCxxObjectSearchEngine.java frysk/scopes : CxxObject.java Removed files: frysk/debuginfo: CppVariableSearchEngine.java TestCppVariableSearchEngine.java Log message: Index: frysk-core/ChangeLog +2007-10-05 Sami Wagiaalla + + * frysk/scopes/CxxObject.java: New file + CxxObjectSearchEngine.java now return CxxObject. + * frysk/scopes/TestDie.java (testGetLine): Updated. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-05 Sami Wagiaalla + + * CppVariableSearchEngine.java: Renamed.. + * CxxObjectSearchEngine.java: ..to this. + (get): Now return CxxObject. + * TestCxxObjectSearchEngine.java: Updated. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.326&r2=1.327 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/CxxObjectSearchEngine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCxxObjectSearchEngine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.198&r2=1.199 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/CppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCppVariableSearchEngine.java.diff?cvsroot=frysk&r1=1.13&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/CxxObject.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subprogram.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestDie.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Variable.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From swagiaal@sourceware.org Fri Oct 5 15:31:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 05 Oct 2007 15:31:00 -0000 Subject: frysk-core ./ChangeLog frysk/scopes/CxxObject.java Message-ID: <20071005153109.28779.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-05 15:31:09 Modified files: . : ChangeLog frysk/scopes : CxxObject.java Log message: Index: frysk-core/ChangeLog +2007-10-05 Sami Wagiaalla + + * frysk/scopes/CxxObject.java (getName): removed public + modifier. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.327&r2=1.328 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/CxxObject.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Fri Oct 5 16:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 16:39:00 -0000 Subject: frysk-gui ./ChangeLog ./Makefile.am frysk/gui/ ... Message-ID: <20071005163937.1201.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-05 16:39:37 Modified files: . : ChangeLog Makefile.am frysk/gui : ChangeLog frysk/gui/gladedir: disassemblywindow.glade frysk_debug.glade Log message: Index: frysk-gui/ChangeLog 2007-10-05 Andrew Cagney * Makefile.am (checked-glade-xml): Delete. Replace with ... (checked-glade-xml-for-gnome): Use dist_glade_DATA instead of glade_DATA. Require a list of files. (checked-glade-xml-with-xmllint): Ditto. Index: frysk-gui/frysk/gui/ChangeLog 2007-10-05 Andrew Cagney * gladedir/disassemblywindow.glade: Change id "Warning!" to "Warning". * gladedir/frysk_debug.glade: Remove . Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/ChangeLog.diff?cvsroot=frysk&r1=1.120&r2=1.121 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/Makefile.am.diff?cvsroot=frysk&r1=1.99&r2=1.100 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.565&r2=1.566 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/gladedir/disassemblywindow.glade.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/gladedir/frysk_debug.glade.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Fri Oct 5 16:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 16:40:00 -0000 Subject: frysk-core/frysk isa/ChangeLog isa/IA32Registe ... Message-ID: <20071005164039.1813.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-05 16:40:39 Modified files: frysk/isa : ChangeLog IA32Registers.java frysk/pkglibdir: ChangeLog funit-addresses.c frysk/value : ChangeLog StandardTypes.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-05 Andrew Cagney * IA32Registers.java: Update types; use INT32L_T, VOIDPTR32L_T, INT128L_T, FLOAT80L_T, INT16L_T. Index: frysk-core/frysk/pkglibdir/ChangeLog 2007-10-05 Andrew Cagney * funit-addresses.c (global_char): Make type "char". (static_int_address, volatile_int_address) (global_char_address): Moved from main(); changed to pointers. (main): Update.. Index: frysk-core/frysk/value/ChangeLog 2007-10-05 Andrew Cagney * StandardTypes.java (OrderMap): New. (INT8B_T, INT8L_T, int8_t, int8_t()): New. (INT16B_T, INT16L_T, int16_t, int16_t()): New. (INT32B_T, INT32L_T, int32_t, int32_t()): New. (INT64B_T, INT64L_T, int64_t, int64_t()): New. (INT128B_T, INT128L_T, int128_t, int128_t()): New. (UINT8B_T, UINT8L_T, uint8_t, uint8_t()): New. (UINT16B_T, UINT16L_T, uint16_t, uint16_t()): New. (UINT32B_T, UINT32L_T, uint32_t, uint32_t()): New. (UINT64B_T, UINT64L_T, uint64_t, uint64_t()): New. (UINT128B_T, UINT128L_T, uint128_t, uint128_t()): New. (FLOAT32B_T, FLOAT32L_T, float32_t, float32_t()): New. (FLOAT64B_T, FLOAT64L_T, float64_t, float64_t()): New. (FLOAT80B_T, FLOAT80L_T, float80_t, float80_t()): New. (VOIDPTR32B_T, VOIDPTR32L_T, voidptr32_t, voidptr32_t()): New. (VOIDPTR64B_T, VOIDPTR64L_T, voidptr64_t, voidptr64_t()): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/IA32Registers.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.127&r2=1.128 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-addresses.c.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.142&r2=1.143 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/StandardTypes.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 From cagney@sourceware.org Fri Oct 5 19:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 19:25:00 -0000 Subject: frysk-common ChangeLog configure.ac ChangeLog ... Message-ID: <20071005192531.22999.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-05 19:25:31 Modified files: . : ChangeLog configure.ac . : ChangeLog Makefile.gen.sh Makefile.rules Log message: Index: frysk-gui/ChangeLog 2007-10-05 Andrew Cagney * configure.ac (RPATH): Delete. Index: frysk-gui/common/ChangeLog 2007-10-05 Andrew Cagney * Makefile.rules: (GEN_GCJ_BUILDTREE_RPATH): Rename GEN_GCJ_RPATH. (GEN_GCJ_BUILDTREE_RPATH_FLAGS): Rename GEN_GCJ_RPATH_FLAGS. (GEN_GCC_BUILDTREE_RPATHS): Rename GEN_GCC_RPATHS. (GEN_${GEN_UBASENAME}_RPATH_FLAGS): Define. * Makefile.gen.sh: Update. (GEN_${GEN_UBASENAME}_RPATH_FLAGS): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/ChangeLog.diff?cvsroot=frysk&r1=1.121&r2=1.122 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/configure.ac.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/ChangeLog.diff?cvsroot=frysk&r1=1.426&r2=1.427 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/Makefile.gen.sh.diff?cvsroot=frysk&r1=1.172&r2=1.173 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/Makefile.rules.diff?cvsroot=frysk&r1=1.252&r2=1.253 From swagiaal@sourceware.org Fri Oct 5 20:07:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 05 Oct 2007 20:07:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071005200719.6466.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-05 20:07:18 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog DebugInfoFrame.java frysk/scopes : Enumiration.java InlinedSubroutine.java LexicalBlock.java Scope.java ScopeFactory.java Struct.java Subprogram.java Subroutine.java TestScopeFactory.java Log message: Index: frysk-core/ChangeLog +2007-10-05 Sami Wagiaalla + + * frysk/scopes/ScopeFactory.java: Passes TypeEntry argument + to scopes it constructs. + * frysk/scopes/TestScopeFactory.java: Updated. + * frysk/scopes/Enumiration.java (Enumiration): Now Takes + TypeEntry argument. + * frysk/scopes/Struct.java: Ditto. + * frysk/scopes/Subprogram.java: Ditto. + * frysk/scopes/Subroutine.java: Ditto. + * frysk/scopes/Scope.java: Ditto. + * frysk/scopes/InlinedSubroutine.java: Ditto. + * frysk/scopes/LexicalBlock.java: Ditto. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-05 Sami Wagiaalla + + * DebugInfoFrame.java: Now creates a TypeEntry object and + passes it on to scopes it constructs. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.328&r2=1.329 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.199&r2=1.200 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumiration.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/InlinedSubroutine.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/LexicalBlock.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ScopeFactory.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Struct.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subprogram.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subroutine.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestScopeFactory.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Fri Oct 5 23:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 23:04:00 -0000 Subject: frysk-core/frysk/util ChangeLog LinuxElfCorefi ... Message-ID: <20071005230428.7010.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-05 23:04:28 Modified files: frysk/util : ChangeLog LinuxElfCorefileFactory.java Removed files: frysk/util : LinuxElfCorefilePPC32on64.java Log message: Index: frysk-core/frysk/util/ChangeLog 2007-10-05 Andrew Cagney * LinuxElfCorefilePPC32on64.java: Delete. * LinuxElfCorefileFactory.java: Delete reference. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.185&r2=1.186 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefileFactory.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC32on64.java.diff?cvsroot=frysk&r1=1.3&r2=NONE From cagney@sourceware.org Fri Oct 5 23:08:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 23:08:00 -0000 Subject: frysk-core/frysk pkglibdir/ChangeLog pkglibdir ... Message-ID: <20071005230834.16719.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-05 23:08:34 Modified files: frysk/pkglibdir: ChangeLog funit-regs.S frysk/testbed : ChangeLog RegsCase.java TestRegs.java Log message: Index: frysk-core/frysk/pkglibdir/ChangeLog 2007-10-05 Andrew Cagney * funit-regs.S [__x86_64__]: Initialize registers. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-05 Andrew Cagney * RegsCase.java (X8664): New. (isaValues): Add X8664. (testAccessRegisterRead): Remove unresolved 5107. * TestRegs.java (checkRegisterGroupPresent): Clean up code formatting. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.128&r2=1.129 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-regs.S.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.71&r2=1.72 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/TestRegs.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Fri Oct 5 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 05 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071005235102.6233.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-05 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.690&r2=1.691 From pmuldoon@sourceware.org Sat Oct 6 07:46:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Sat, 06 Oct 2007 07:46:00 -0000 Subject: frysk-core/frysk/util LinuxElfCorefilex86.java ... Message-ID: <20071006074638.15939.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmuldoon@sourceware.org 2007-10-06 07:46:38 Modified files: frysk/util : LinuxElfCorefilex86.java LinuxElfCorefilex8664.java LinuxElfCorefilePPC32.java LinuxElfCorefilePPC64.java TestFCore.java ChangeLog Log message: 2007-10-06 Phil Muldoon * TestFCore.java (testGeneralPurposeRegisters): Disable test on 32 on 64. 2007-10-05 Phil Muldoon * LinuxElfCorefilex86.java (LinuxElfCorefilex86): Set size. (writeNotePrpsinfo): Pass size to elf note. (writeNotePrstatus): Ditto. * LinuxElfCorefilex8664.java: Ditto.. * LinuxElfCorefilexPPC32.java : Ditto.. * LinuxElfCorefilexPPC64.java: Ditto. * LinuxelfCorefilex86.java (writeNotePRXFPRegset): Check XFP size, and return false if empty Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex86.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex8664.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC32.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC64.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/TestFCore.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.186&r2=1.187 From pmuldoon@sourceware.org Sat Oct 6 07:47:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Sat, 06 Oct 2007 07:47:00 -0000 Subject: frysk-sys/lib/dwfl ChangeLog ElfPrpsinfo.java ... Message-ID: <20071006074739.16446.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: pmuldoon@sourceware.org 2007-10-06 07:47:39 Modified files: lib/dwfl : ChangeLog ElfPrpsinfo.java ElfPrstatus.java lib/dwfl/cni : ElfPrpsinfo.cxx ElfPrstatus.cxx Log message: 2007-10-05 Phil Muldoon * ElfPrpsinfo.java (ElfPrpsinfo): Take size hint parameter for 32 on 64. * ElfPrstatus.java (ElfPrstatus): Ditto * cni/ElfPrpsinfo.cxx (ElfPrpsinfo::getEntrySize): Use size parameter to decide wordsize. (ElfPrpsinfo::fillMemRegion): Use size parameter to define what structure to use, regardless of native wordsize. (ElfPrpsinfo): Split structures into 32 and 64 bit structures to deal with 32 on 64. * cni/ElfPrstatus.cxx (ElfPrstatus::getEntrySize): Use size parameter to decide wordsize. (ElfPrstatus::fillMemRegion): Use size parameter to define what structure to use, regardless of native wordsize. (ElfPrstatus): Split structures into 32 and 64 bit structures to deal with 32 on 64. Redefine several system structures locally to negate long usage. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ChangeLog.diff?cvsroot=frysk&r1=1.37&r2=1.38 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ElfPrpsinfo.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ElfPrstatus.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/cni/ElfPrpsinfo.cxx.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Sat Oct 6 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 06 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071006235102.6361.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-06 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.691&r2=1.692 From cagney@sourceware.org Sun Oct 7 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 07 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071007235102.15253.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-07 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.692&r2=1.693 From mark@sourceware.org Mon Oct 8 08:59:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 08 Oct 2007 08:59:00 -0000 Subject: frysk-imports/elfutils/libdw ChangeLog libdw.h Message-ID: <20071008085955.6442.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-08 08:59:55 Modified files: elfutils/libdw : ChangeLog libdw.h Log message: * libdw.h (__extern_inline): Check before defining. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdw/ChangeLog.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdw/libdw.h.diff?cvsroot=frysk&r1=1.9&r2=1.10 From mark@sourceware.org Mon Oct 8 09:05:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 08 Oct 2007 09:05:00 -0000 Subject: frysk-common ChangeLog frysk-common.ac Message-ID: <20071008090543.26648.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: mark@sourceware.org 2007-10-08 09:05:43 Modified files: . : ChangeLog frysk-common.ac Log message: common/ChangeLog 2007-10-03 Mark Wielaard * frysk-common.ac: Define CHECK_LIBUNWIND, ARCH_X86, ARCH_X86_64, ARCH_PPC32, ARCH_PPC64. frysk-imports/ChangeLog 2007-10-04 Mark Wielaard * Makefile.am: Set LIBUNWIND_ARCH_DIR and LIBUNWIND_OTHER_DIRS depending on CHECK_LIBUNWIND for CHECK_SUBDIRS. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/ChangeLog.diff?cvsroot=frysk&r1=1.427&r2=1.428 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/frysk-common.ac.diff?cvsroot=frysk&r1=1.38&r2=1.39 From mark@sourceware.org Mon Oct 8 10:45:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 08 Oct 2007 10:45:00 -0000 Subject: frysk-core/frysk/proc/dead ChangeLog TestLinux ... Message-ID: <20071008104530.15666.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: mark@sourceware.org 2007-10-08 10:45:30 Modified files: frysk/proc/dead: ChangeLog TestLinuxCore.java Log message: * TestLinuxCore.java (Symbol): New static helper class. (getFunctionEntryAddress): Use Dwfl directly instead of constructing Elf and Dwarf objects directly. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.32&r2=1.33 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/TestLinuxCore.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 From cagney@sourceware.org Mon Oct 8 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 08 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071008235102.25390.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-08 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.693&r2=1.694 From rmoseley@sourceware.org Tue Oct 9 04:48:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 09 Oct 2007 04:48:00 -0000 Subject: frysk-core/frysk/hpd CLI.java PeekCommand.java Message-ID: <20071009044848.2533.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-09 04:48:48 Modified files: frysk/hpd : CLI.java Added files: frysk/hpd : PeekCommand.java Log message: * CLI.java: Add peek command. * PeekCommand.java: New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/PeekCommand.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CLI.java.diff?cvsroot=frysk&r1=1.32&r2=1.33 From rmoseley@sourceware.org Tue Oct 9 04:52:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 09 Oct 2007 04:52:00 -0000 Subject: frysk-core/frysk/proc/dead LinuxExeProc.java C ... Message-ID: <20071009045232.3172.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-09 04:52:32 Modified files: frysk/proc/dead: LinuxExeProc.java ChangeLog Log message: * CLI.java: Add peek command. * PeekCommand.java: New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeProc.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.33&r2=1.34 From rmoseley@sourceware.org Tue Oct 9 04:53:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 09 Oct 2007 04:53:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog Message-ID: <20071009045331.3344.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-09 04:53:31 Modified files: frysk/hpd : ChangeLog Log message: Ooops, forgot to checkin ChangeLog on last checkin. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.110&r2=1.111 From rmoseley@sourceware.org Tue Oct 9 05:45:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 09 Oct 2007 05:45:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog LoadCommand.java Message-ID: <20071009054534.20519.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-09 05:45:34 Modified files: frysk/hpd : ChangeLog LoadCommand.java Log message: * LoadCommand.java: Attempt to wire in "load" command. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.111&r2=1.112 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/LoadCommand.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From rmoseley@sourceware.org Tue Oct 9 06:40:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 09 Oct 2007 06:40:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog TestPeekCommand ... Message-ID: <20071009064028.11888.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-09 06:40:28 Modified files: frysk/hpd : ChangeLog Added files: frysk/hpd : TestPeekCommand.java Log message: * TestPeekCommand.java: New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestPeekCommand.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.112&r2=1.113 From mark@sourceware.org Tue Oct 9 10:33:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Tue, 09 Oct 2007 10:33:00 -0000 Subject: frysk-core/frysk hpd/ChangeLog hpd/TestBreakpo ... Message-ID: <20071009103355.16722.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: mark@sourceware.org 2007-10-09 10:33:55 Modified files: frysk/hpd : ChangeLog TestBreakpoints.java frysk/proc : Breakpoint.java ChangeLog Log message: frysk-core/frysk/proc/ChangeLog 2007-10-09 Mark Wielaard Fixes bug #5082 * Breakpoint.java (stepping): Removed, state is Task specific. (reset_stepping_tasks): New field. (prepareStep): Check Instruction properties not stepping. Adjust reset_stepping_tasks and only reset when zero. (stepDone): Likewise. (stepAbort): Likewise. frysk-core/frysk/hpd/ChangeLog 2007-10-09 Mark Wielaard * TestBreakpoints.java (testHpdBreakMultiThreadedContinue): Don't mark unresolved bug #5082. Expect Task terminating messages. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.113&r2=1.114 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Breakpoint.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.824&r2=1.825 From tthomas@sourceware.org Tue Oct 9 14:38:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 09 Oct 2007 14:38:00 -0000 Subject: frysk-core/frysk debuginfo/DebugInfo.java debu ... Message-ID: <20071009143855.5598.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-09 14:38:54 Modified files: frysk/debuginfo: DebugInfo.java ChangeLog DebugInfoEvaluator.java frysk/expr : ChangeLog ExprSymTab.java Log message: 2007-10-09 Teresa Thomas * DebugInfo.java (TmpSymTab.getAddress): Deleted. * DebugInfoEvaluator.java (getAddress): Deleted. 2007-10-09 Teresa Thomas * ExprSymTab.java (getAddress): Deleted. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.200&r2=1.201 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.86&r2=1.87 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.72&r2=1.73 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From tthomas@sourceware.org Tue Oct 9 15:08:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 09 Oct 2007 15:08:00 -0000 Subject: frysk-core/frysk debuginfo/DebugInfo.java debu ... Message-ID: <20071009150846.26108.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-09 15:08:46 Modified files: frysk/debuginfo: DebugInfo.java ChangeLog DebugInfoEvaluator.java frysk/expr : ChangeLog CExprEvaluator.g ExprSymTab.java Log message: 2007-10-09 Teresa Thomas * CExprEvaluator.g (ADDRESS_OF): Use getTask. * ExprSymTab.java (getOrder): Deleted. (getTask): New. 2007-10-09 Teresa Thomas * DebugInfoEvaluator.java (getOrder): Deleted. (getTask): New. * DebugInfo.java (TmpSymTab.getOrder): Deleted. (TmpSymTab.getTask): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.35&r2=1.36 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.201&r2=1.202 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.87&r2=1.88 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.73&r2=1.74 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From tthomas@sourceware.org Tue Oct 9 15:28:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 09 Oct 2007 15:28:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog DebugInfo ... Message-ID: <20071009152828.2622.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-09 15:28:28 Modified files: frysk/debuginfo: ChangeLog DebugInfoEvaluator.java Log message: 2007-10-09 Teresa Thomas * DebugInfoEvaluator.java (AccessRegisters): Class deleted. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.202&r2=1.203 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.88&r2=1.89 From pmuldoon@sourceware.org Tue Oct 9 15:30:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Tue, 09 Oct 2007 15:30:00 -0000 Subject: frysk-core/frysk/util ChangeLog LinuxElfCorefi ... Message-ID: <20071009153034.3385.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmuldoon@sourceware.org 2007-10-09 15:30:34 Modified files: frysk/util : ChangeLog LinuxElfCorefileFactory.java Log message: 2007-10-09 Phil Muldoon * LinuxElfCorefileFactory.java (getCorefile): Rewrite. (getArch): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.187&r2=1.188 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefileFactory.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From tthomas@sourceware.org Tue Oct 9 19:20:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 09 Oct 2007 19:20:00 -0000 Subject: frysk-core/frysk/debuginfo TestPieceLocation.j ... Message-ID: <20071009192035.31134.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-09 19:20:33 Modified files: frysk/debuginfo: TestPieceLocation.java MemoryPiece.java PieceLocation.java ChangeLog Log message: 2007-10-09 Teresa Thomas * TestPieceLocation.java (testcreateSimpleLoc): New test. * PieceLocation.java (createSimpleLoc): New function. * MemoryPiece.java (createSimpleLoc): New function. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestPieceLocation.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/MemoryPiece.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/PieceLocation.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.203&r2=1.204 From cagney@sourceware.org Tue Oct 9 19:46:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 09 Oct 2007 19:46:00 -0000 Subject: frysk-core/frysk proc/BankRegister.java proc/C ... Message-ID: <20071009194630.3523.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-09 19:46:30 Modified files: frysk/proc : BankRegister.java ChangeLog IndirectBankRegisterMap.java Task.java frysk/util : ChangeLog LinuxElfCorefilePPC32.java LinuxElfCorefilePPC64.java LinuxElfCorefilex86.java LinuxElfCorefilex8664.java Removed files: frysk/proc : ByteOrder.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-09 Andrew Cagney * BankRegister.java (getBigInteger(Task)): Delete. * Task.java (getBigIntegerRegisterFIXME(String)): New. * ByteOrder.java: Delete. * IndirectBankRegisterMap.java (add(String,long)): Delete nexted class method getBigInteger. Index: frysk-core/frysk/util/ChangeLog 2007-10-09 Andrew Cagney * LinuxElfCorefilePPC32.java: Update; replace BankRegister .getBigInteger(Task) with Task. .getBigIntegerRegisterFIXME. * LinuxElfCorefilePPC64.java: Ditto. * LinuxElfCorefilex8664.java: Ditto. * LinuxElfCorefilex86.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.825&r2=1.826 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.147&r2=1.148 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ByteOrder.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.188&r2=1.189 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC32.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC64.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex86.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex8664.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From swagiaal@sourceware.org Tue Oct 9 20:40:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 09 Oct 2007 20:40:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071009204038.2709.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-09 20:40:38 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog TestCxxObjectSearchEngine.java frysk/scopes : Enumiration.java Scope.java frysk/value : ChangeLog EnumType.java Log message: Index: frysk-core/ChangeLog +2007-10-09 Sami Wagiaalla + + * frysk/scopes/Scope.java (getCxxObjectByName): Replaced Variable + with CxxObject. + * frysk/scopes/Enumiration.java (getVariableByName): Now reuses + EnumType instead of searching through the die's. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-09 Sami Wagiaalla + + * TestCxxObjectSearchEngine.java (testFindTwoScopesEnum): Now checks + the name of the enumirator. + (verifyVariableLongValue): Removed. + Index: frysk-core/frysk/value/ChangeLog +2007-10-09 Sami Wagiaalla + + * EnumType.java (Member): Now implements CxxObject. + (getMemberByName): New function. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.329&r2=1.330 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.204&r2=1.205 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCxxObjectSearchEngine.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumiration.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.143&r2=1.144 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/EnumType.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 From cagney@sourceware.org Tue Oct 9 22:32:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 09 Oct 2007 22:32:00 -0000 Subject: frysk-core/frysk/value ChangeLog EnumType.java Message-ID: <20071009223258.10251.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-09 22:32:58 Modified files: frysk/value : ChangeLog EnumType.java Log message: Index: frysk-core/frysk/value/ChangeLog 2007-10-09 Andrew Cagney * EnumType.java (getMemberByName(String)): Change return type to CxxObject; note that frysk.value should not depend on frysk.scopes. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.144&r2=1.145 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/EnumType.java.diff?cvsroot=frysk&r1=1.22&r2=1.23 From cagney@sourceware.org Tue Oct 9 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 09 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071009235102.5491.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-09 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.694&r2=1.695 From cagney@sourceware.org Wed Oct 10 03:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 10 Oct 2007 03:07:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071010030749.32399.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-10 03:07:49 Modified files: frysk/debuginfo: ChangeLog DebugInfo.java DebugInfoEvaluator.java frysk/expr : CExprAnnotator.g CExprEvaluator.g ChangeLog ExprSymTab.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-09 Andrew Cagney * DebugInfoEvaluator.java (order()): New. (getValueFIXME(ArrayList)): Rename getValue(ArrayList). (getTask()): Delete. (getType(Variable)): New. (getMemoryFIXME(String)): Rename getMemory(String). * DebugInfo.java (TmpSymTab): Ditto. (print(String,DebugInfoFrame,boolean)): Do not pass frame to CExprAnnotator or intSize to CExprEvaluator. Index: frysk-core/frysk/expr/ChangeLog 2007-10-09 Andrew Cagney * CExprEvaluator.g (CExprEvaluator(ExprSymTab)): Replace CExprEvaluator(int,ExprSymTab). * CExprAnnotator.g: Use ExprSymTab.getType(Variable). (CExprAnnotator(ExprSymTab)): Replace CExprAnnotator(Frame,ExprSymTab). * ExprSymTab.java (order()): New. (getTask()): Delete. (getType(Varable)): New. (getMemoryFIXME(String)): Rename getMemory(String). (getValueFIXME(String)): Rename getValue(String). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.205&r2=1.206 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.89&r2=1.90 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.74&r2=1.75 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From mark@sourceware.org Wed Oct 10 16:13:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 10 Oct 2007 16:13:00 -0000 Subject: frysk-imports/libunwind ChangeLog src/x86/init.h Message-ID: <20071010161309.30493.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-10 16:13:09 Modified files: libunwind : ChangeLog libunwind/src/x86: init.h Log message: 2007-10-10 Andrew Cagney * src/x86/init.h (common_init): Use UNW_X86_ESI for dwarf.loc[ESI]. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.63&r2=1.64 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/init.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 From mark@sourceware.org Wed Oct 10 16:21:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 10 Oct 2007 16:21:00 -0000 Subject: frysk-core/frysk/testbed ChangeLog RegsCase.java Message-ID: <20071010162109.790.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: mark@sourceware.org 2007-10-10 16:21:09 Modified files: frysk/testbed : ChangeLog RegsCase.java Log message: * RegsCase.java (IA32): Set EFLAGS value to null for now. See bug #5107. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.72&r2=1.73 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 From tthomas@sourceware.org Wed Oct 10 19:40:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 10 Oct 2007 19:40:00 -0000 Subject: frysk-core/frysk debuginfo/DebugInfo.java debu ... Message-ID: <20071010194015.29247.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-10 19:40:15 Modified files: frysk/debuginfo: DebugInfo.java ChangeLog DebugInfoEvaluator.java frysk/expr : ChangeLog ExprSymTab.java Log message: 2007-10-10 Teresa Thomas * ExprSymTab.java (taskMemory): New. 2007-10-10 Teresa Thomas * DebugInfo.java (TmpSymTab.taskMemory): New. * DebugInfoEvaluator.java (taskMemory): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.37&r2=1.38 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.206&r2=1.207 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.90&r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.75&r2=1.76 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From tthomas@sourceware.org Wed Oct 10 19:43:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 10 Oct 2007 19:43:00 -0000 Subject: frysk-core/frysk/pkglibdir hpd-c.c ChangeLog Message-ID: <20071010194313.30139.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-10 19:43:13 Modified files: frysk/pkglibdir: hpd-c.c ChangeLog Log message: 2007-10-10 Teresa Thomas * hpd-c.c (static_int_ptr): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/hpd-c.c.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.129&r2=1.130 From tthomas@sourceware.org Wed Oct 10 19:53:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 10 Oct 2007 19:53:00 -0000 Subject: frysk-core/frysk value/TypeDecorator.java valu ... Message-ID: <20071010195356.1081.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-10 19:53:56 Modified files: frysk/value : TypeDecorator.java ChangeLog Type.java frysk/hpd : ChangeLog TestPrint.java frysk/expr : ChangeLog CExprEvaluator.g Log message: 2007-10-10 Teresa Thomas * CExprEvaluator.g (MEMORY): Refactor, Use dereference. 2007-10-10 Teresa Thomas * TestPrint.java (testAddressOf): New. (testDereference): New. 2007-10-10 Teresa Thomas * TypeDecorator.java (dereference): New. * Type.java (dereference): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TypeDecorator.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.145&r2=1.146 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Type.java.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.114&r2=1.115 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestPrint.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.76&r2=1.77 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.5&r2=1.6 From rmoseley@sourceware.org Wed Oct 10 22:51:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Wed, 10 Oct 2007 22:51:00 -0000 Subject: frysk-core/frysk/util ChangeLog Util.java Message-ID: <20071010225138.16433.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-10 22:51:38 Modified files: frysk/util : ChangeLog Util.java Log message: * Util.java (getProcFromExeFile): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.189&r2=1.190 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/Util.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 From rmoseley@sourceware.org Wed Oct 10 22:51:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Wed, 10 Oct 2007 22:51:00 -0000 Subject: frysk-core/frysk/hpd LoadCommand.java ChangeLog Message-ID: <20071010225107.16266.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-10 22:51:07 Modified files: frysk/hpd : LoadCommand.java ChangeLog Log message: * LoadCommand.java: Setup a Proc from new method in frysk.Util. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/LoadCommand.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.115&r2=1.116 From rmoseley@sourceware.org Wed Oct 10 22:52:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Wed, 10 Oct 2007 22:52:00 -0000 Subject: frysk-core/frysk/proc/dead ChangeLog LinuxExeP ... Message-ID: <20071010225214.16647.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-10 22:52:14 Modified files: frysk/proc/dead: ChangeLog LinuxExeProc.java Log message: * LinuxExeProc.java: Return correct state and instantiate LinuxExeTask with a non-null initial state. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeProc.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Wed Oct 10 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 10 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071010235102.6618.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-10 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.695&r2=1.696 From pmuldoon@sourceware.org Thu Oct 11 08:02:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 11 Oct 2007 08:02:00 -0000 Subject: frysk-sys/lib/dwfl ChangeLog ChangeLog.dw Chan ... Message-ID: <20071011080257.32314.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: pmuldoon@sourceware.org 2007-10-11 08:02:57 Modified files: lib/dwfl : ChangeLog Added files: lib/dwfl : ChangeLog.dw ChangeLog.elf Log message: 2007-10-11 Phil Muldoon * ChangeLog.elf: New. Recreate pre-refactor ChangeLog entries from frysk-imports/lib/elf/ChangeLog. * ChangeLog.dw: New. Recreate pre-refactor ChangeLog entries from frysk-imports/lib/dw/ChangeLog. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ChangeLog.dw.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ChangeLog.elf.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/ChangeLog.diff?cvsroot=frysk&r1=1.38&r2=1.39 From mark@sourceware.org Thu Oct 11 11:21:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 11 Oct 2007 11:21:00 -0000 Subject: frysk-imports/libunwind .cvsignore AUTHORS COP ... Message-ID: <20071011112144.26779.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-11 11:21:44 Modified files: libunwind : .cvsignore AUTHORS COPYING ChangeLog INSTALL LICENSE Makefile.am NEWS README README.frysk TODO acinclude.m4 configure.in libunwind/doc : .cvsignore Makefile.am NOTES _U_dyn_cancel.man _U_dyn_cancel.tex _U_dyn_register.man _U_dyn_register.tex common.tex.in libunwind-dynamic.man libunwind-dynamic.tex libunwind-ia64.man libunwind-ia64.tex libunwind-ptrace.man libunwind-ptrace.tex libunwind-setjmp.man libunwind-setjmp.tex libunwind.man libunwind.tex libunwind.trans unw_create_addr_space.man unw_create_addr_space.tex unw_destroy_addr_space.man unw_destroy_addr_space.tex unw_flush_cache.man unw_flush_cache.tex unw_get_accessors.man unw_get_accessors.tex unw_get_fpreg.man unw_get_fpreg.tex unw_get_proc_info.man unw_get_proc_info.tex unw_get_proc_info_by_ip.man unw_get_proc_info_by_ip.tex unw_get_proc_name.man unw_get_proc_name.tex unw_get_reg.man unw_get_reg.tex unw_getcontext.man unw_getcontext.tex unw_init_local.man unw_init_local.tex unw_init_remote.man unw_init_remote.tex unw_is_fpreg.man unw_is_fpreg.tex unw_is_signal_frame.man unw_is_signal_frame.tex unw_regname.man unw_regname.tex unw_resume.man unw_resume.tex unw_set_caching_policy.man unw_set_caching_policy.tex unw_set_fpreg.man unw_set_fpreg.tex unw_set_reg.man unw_set_reg.tex unw_step.man unw_step.tex unw_strerror.man unw_strerror.tex libunwind/include: .cvsignore dwarf-eh.h dwarf.h dwarf_i.h libunwind-common.h.in libunwind-dynamic.h libunwind-hppa.h libunwind-ia64.h libunwind-ppc64.h libunwind-ptrace.h libunwind-x86.h libunwind-x86_64.h libunwind_i.h mempool.h remote.h stamp-h.in unwind.h libunwind/include/tdep-hppa: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/include/tdep-ia64: jmpbuf.h libunwind_i.h rse.h script.h libunwind/include/tdep-ppc64: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/include/tdep-x86: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/include/tdep-x86_64: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/include/x86: jmpbuf.h libunwind/include/x86_64: jmpbuf.h libunwind/scripts: kernel-diff.sh kernel-files.txt make-L-files libunwind/src : .cvsignore Makefile.am elf32.c elf32.h elf64.c elf64.h elfxx.c elfxx.h os-hpux.c os-linux.c os-linux.h libunwind/src/dwarf: Gexpr.c Gfde.c Gfind_proc_info-lsb.c Gparser.c Gpe.c Gstep.c Lexpr.c Lfde.c Lfind_proc_info-lsb.c Lparser.c Lpe.c Lstep.c global.c libunwind/src/hppa: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Gglobal.c Ginit.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Gregs.c Gresume.c Gstep.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Lglobal.c Linit.c Linit_local.c Linit_remote.c Lis_signal_frame.c Lregs.c Lresume.c Lstep.c get_accessors.c getcontext.S init.h offsets.h regname.c setcontext.S siglongjmp.S tables.c unwind_i.h libunwind/src/ia64: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Gglobal.c Ginit.c Ginit_local.c Ginit_remote.c Ginstall_cursor.S Gis_signal_frame.c Gparser.c Grbs.c Gregs.c Gresume.c Gscript.c Gstep.c Gtables.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Lglobal.c Linit.c Linit_local.c Linit_remote.c Linstall_cursor.S Lis_signal_frame.c Lparser.c Lrbs.c Lregs.c Lresume.c Lscript.c Lstep.c Ltables.c NOTES dyn_info_list.S getcontext.S init.h longjmp.S mk_Gcursor_i.c mk_Lcursor_i.c offsets.h regname.c regs.h setjmp.S siglongjmp.S sigsetjmp.S ucontext_i.h unwind_decoder.h unwind_i.h libunwind/src/mi: Gdestroy_addr_space.c Gdyn-extract.c Gdyn-remote.c Gfind_dynamic_proc_info.c Gget_accessors.c Gget_fpreg.c Gget_proc_info_by_ip.c Gget_proc_name.c Gget_reg.c Gget_unwind_table.c Gput_dynamic_unwind_info.c Gset_caching_policy.c Gset_fpreg.c Gset_reg.c Ldestroy_addr_space.c Ldyn-extract.c Ldyn-remote.c Lfind_dynamic_proc_info.c Lget_accessors.c Lget_fpreg.c Lget_proc_info_by_ip.c Lget_proc_name.c Lget_reg.c Lput_dynamic_unwind_info.c Lset_caching_policy.c Lset_fpreg.c Lset_reg.c _ReadSLEB.c _ReadULEB.c backtrace.c dyn-cancel.c dyn-info-list.c dyn-register.c flush_cache.c init.c mempool.c strerror.c libunwind/src/ppc64: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Gglobal.c Ginit.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Gregs.c Gresume.c Gstep.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Lglobal.c Linit.c Linit_local.c Linit_remote.c Lis_signal_frame.c Lregs.c Lresume.c Lstep.c get_func_addr.c init.h is_fpreg.c longjmp.S regname.c setcontext.S siglongjmp.S ucontext_i.h unwind_i.h libunwind/src/ptrace: _UPT_access_fpreg.c _UPT_access_mem.c _UPT_access_reg.c _UPT_accessors.c _UPT_create.c _UPT_destroy.c _UPT_elf.c _UPT_find_proc_info.c _UPT_get_dyn_info_list_addr.c _UPT_get_proc_name.c _UPT_internal.h _UPT_put_unwind_info.c _UPT_reg_offset.c _UPT_resume.c libunwind/src/setjmp: longjmp.c setjmp.c setjmp_i.h siglongjmp.c sigsetjmp.c libunwind/src/unwind: Backtrace.c DeleteException.c FindEnclosingFunction.c ForcedUnwind.c GetBSP.c GetCFA.c GetDataRelBase.c GetGR.c GetIP.c GetLanguageSpecificData.c GetRegionStart.c GetTextRelBase.c RaiseException.c Resume.c Resume_or_Rethrow.c SetGR.c SetIP.c unwind-internal.h libunwind/src/x86: Gcreate_addr_space.c Gfetch_proc_info_post.c Gget_proc_info.c Gget_save_loc.c Gglobal.c Ginit.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Gregs.c Gresume.c Gstep.c Lcreate_addr_space.c Lfetch_proc_info_post.c Lget_proc_info.c Lget_save_loc.c Lglobal.c Linit.c Linit_local.c Linit_remote.c Lis_signal_frame.c Lregs.c Lresume.c Lstep.c init.h is_fpreg.c longjmp.S offsets.h regname.c siglongjmp.S unwind_i.h libunwind/src/x86_64: Gcreate_addr_space.c Gfetch_proc_info_post.c Gget_proc_info.c Gget_save_loc.c Gglobal.c Ginit.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Gregs.c Gresume.c Gstep.c Lcreate_addr_space.c Lfetch_proc_info_post.c Lget_proc_info.c Lget_save_loc.c Lglobal.c Linit.c Linit_local.c Linit_remote.c Lis_signal_frame.c Lregs.c Lresume.c Lstep.c init.h is_fpreg.c longjmp.S offsets.h regname.c siglongjmp.S ucontext_i.h unwind_i.h libunwind/tests: .cvsignore Gia64-test-nat.c Gia64-test-rbs.c Gia64-test-readonly.c Gia64-test-stack.c Gperf-simple.c Gtest-bt.c Gtest-concurrent.c Gtest-dyn1.c Gtest-exc.c Gtest-init.cxx Gtest-resume-sig.c Lia64-test-nat.c Lia64-test-rbs.c Lia64-test-readonly.c Lia64-test-stack.c Lperf-simple.c Ltest-bt.c Ltest-concurrent.c Ltest-dyn1.c Ltest-exc.c Ltest-init.cxx Ltest-resume-sig.c Makefile.am check-namespace.sh.in flush-cache.S forker.c ia64-dyn-asm.S ia64-test-dyn1.c ia64-test-nat-asm.S ia64-test-rbs-asm.S ia64-test-rbs.h ia64-test-readonly-asm.S ia64-test-setjmp.c ia64-test-sig.c ia64-test-stack-asm.S ia64-test-stack.h ident.c mapper.c perf-startup ppc64-test-altivec-utils.c ppc64-test-altivec.c ppc64-test-wchar.c run-check-namespace run-ia64-test-dyn1 run-ptrace-mapper run-ptrace-misc run-ptrace-signull run-ptrace-stepper test-async-sig.c test-flush-cache.c test-init-remote.c test-mem.c test-proc-info.c test-ptrace-misc.c test-ptrace-signull.c test-ptrace-stepper.c test-ptrace.c test-setjmp.c test-static-link-gen.c test-static-link-loc.c test-strerror.c test-varargs.c Log message: Touching all libunwind files Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/.cvsignore.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/AUTHORS.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/COPYING.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.64&r2=1.65 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/INSTALL.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/LICENSE.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/Makefile.am.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/NEWS.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/README.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/README.frysk.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/TODO.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/acinclude.m4.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/configure.in.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/.cvsignore.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/Makefile.am.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/NOTES.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/_U_dyn_cancel.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/_U_dyn_cancel.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/_U_dyn_register.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/_U_dyn_register.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/common.tex.in.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-dynamic.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-dynamic.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-ia64.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-ia64.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-ptrace.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-ptrace.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-setjmp.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind-setjmp.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/libunwind.trans.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_create_addr_space.man.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_create_addr_space.tex.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_destroy_addr_space.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_destroy_addr_space.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_flush_cache.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_flush_cache.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_accessors.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_accessors.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_fpreg.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_fpreg.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_info.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_info.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_info_by_ip.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_info_by_ip.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_name.man.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_proc_name.tex.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_reg.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_get_reg.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_getcontext.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_getcontext.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_init_local.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_init_local.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_init_remote.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_init_remote.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_is_fpreg.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_is_fpreg.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_is_signal_frame.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_is_signal_frame.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_regname.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_regname.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_resume.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_resume.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_caching_policy.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_caching_policy.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_fpreg.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_fpreg.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_reg.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_set_reg.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_step.man.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_step.tex.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_strerror.man.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/doc/unw_strerror.tex.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/.cvsignore.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/dwarf-eh.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/dwarf.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/dwarf_i.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-common.h.in.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-dynamic.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-hppa.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-ia64.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-ppc64.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-ptrace.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-x86.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-x86_64.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind_i.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/mempool.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/remote.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/stamp-h.in.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/unwind.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-hppa/dwarf-config.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-hppa/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-hppa/libunwind_i.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ia64/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ia64/libunwind_i.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ia64/rse.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ia64/script.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc64/dwarf-config.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc64/jmpbuf.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc64/libunwind_i.h.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86/dwarf-config.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86/libunwind_i.h.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86_64/dwarf-config.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86_64/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-x86_64/libunwind_i.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/x86/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/x86_64/jmpbuf.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/scripts/kernel-diff.sh.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/scripts/kernel-files.txt.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/scripts/make-L-files.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/.cvsignore.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/Makefile.am.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elf32.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elf32.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elf64.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elf64.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elfxx.c.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/elfxx.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/os-hpux.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/os-linux.c.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/os-linux.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gexpr.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gfde.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gfind_proc_info-lsb.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gparser.c.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gpe.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Gstep.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lexpr.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lfde.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lfind_proc_info-lsb.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lparser.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lpe.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/Lstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/dwarf/global.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gglobal.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Ginit.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Ginit_local.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Ginit_remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gregs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gresume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Gstep.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lglobal.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Linit.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Linit_local.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Linit_remote.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lregs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lresume.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/Lstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/get_accessors.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/getcontext.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/init.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/offsets.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/regname.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/setcontext.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/siglongjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/tables.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/hppa/unwind_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gglobal.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Ginit.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Ginit_local.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Ginit_remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Ginstall_cursor.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gparser.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Grbs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gregs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gresume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gscript.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gstep.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Gtables.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lglobal.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Linit.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Linit_local.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Linit_remote.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Linstall_cursor.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lparser.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lrbs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lregs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lresume.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lscript.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Lstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/Ltables.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/NOTES.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/dyn_info_list.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/getcontext.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/init.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/longjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/mk_Gcursor_i.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/mk_Lcursor_i.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/offsets.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/regname.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/regs.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/setjmp.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/siglongjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/sigsetjmp.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/ucontext_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/unwind_decoder.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ia64/unwind_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gdestroy_addr_space.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gdyn-extract.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gdyn-remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gfind_dynamic_proc_info.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_accessors.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_fpreg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_proc_info_by_ip.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_proc_name.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_reg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gget_unwind_table.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gput_dynamic_unwind_info.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gset_caching_policy.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gset_fpreg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Gset_reg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Ldestroy_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Ldyn-extract.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Ldyn-remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lfind_dynamic_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lget_accessors.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lget_fpreg.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lget_proc_info_by_ip.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lget_proc_name.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lget_reg.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lput_dynamic_unwind_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lset_caching_policy.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lset_fpreg.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/Lset_reg.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/_ReadSLEB.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/_ReadULEB.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/backtrace.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/dyn-cancel.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/dyn-info-list.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/dyn-register.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/flush_cache.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/init.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/mempool.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/mi/strerror.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gglobal.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit_local.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit_remote.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gregs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gresume.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lglobal.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Linit.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Linit_local.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Linit_remote.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lregs.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lresume.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lstep.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/get_func_addr.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/init.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/is_fpreg.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/longjmp.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/regname.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/setcontext.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/siglongjmp.S.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/ucontext_i.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/unwind_i.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_access_fpreg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_access_mem.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_access_reg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_accessors.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_create.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_destroy.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_elf.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_find_proc_info.c.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_get_proc_name.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_internal.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_put_unwind_info.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_reg_offset.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_resume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/setjmp/longjmp.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/setjmp/setjmp.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/setjmp/setjmp_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/setjmp/siglongjmp.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/setjmp/sigsetjmp.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/Backtrace.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/DeleteException.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/FindEnclosingFunction.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/ForcedUnwind.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetBSP.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetCFA.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetDataRelBase.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetGR.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetIP.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetLanguageSpecificData.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetRegionStart.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/GetTextRelBase.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/RaiseException.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/Resume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/Resume_or_Rethrow.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/SetGR.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/SetIP.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/unwind/unwind-internal.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gfetch_proc_info_post.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gglobal.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Ginit.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Ginit_local.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Ginit_remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gregs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gresume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Gstep.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lfetch_proc_info_post.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lglobal.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Linit.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Linit_local.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Linit_remote.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lregs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lresume.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/Lstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/init.h.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/is_fpreg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/longjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/offsets.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/regname.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/siglongjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86/unwind_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gfetch_proc_info_post.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gglobal.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Ginit.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Ginit_local.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Ginit_remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gregs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gresume.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Gstep.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lfetch_proc_info_post.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lglobal.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Linit.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Linit_local.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Linit_remote.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lregs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lresume.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/Lstep.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/init.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/is_fpreg.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/longjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/offsets.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/regname.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/siglongjmp.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/ucontext_i.h.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/x86_64/unwind_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/.cvsignore.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gia64-test-nat.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gia64-test-rbs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gia64-test-readonly.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gia64-test-stack.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gperf-simple.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-bt.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-concurrent.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-dyn1.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-exc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-init.cxx.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Gtest-resume-sig.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Lia64-test-nat.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Lia64-test-rbs.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Lia64-test-readonly.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Lia64-test-stack.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Lperf-simple.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-bt.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-concurrent.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-dyn1.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-exc.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-init.cxx.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Ltest-resume-sig.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/Makefile.am.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/check-namespace.sh.in.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/flush-cache.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/forker.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-dyn-asm.S.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-dyn1.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-nat-asm.S.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-rbs-asm.S.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-rbs.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-readonly-asm.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-setjmp.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-sig.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-stack-asm.S.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-stack.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ident.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/mapper.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/perf-startup.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ppc64-test-altivec-utils.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ppc64-test-altivec.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ppc64-test-wchar.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-check-namespace.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-ia64-test-dyn1.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-ptrace-mapper.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-ptrace-misc.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-ptrace-signull.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/run-ptrace-stepper.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-async-sig.c.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-flush-cache.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-init-remote.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-mem.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-proc-info.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-ptrace-misc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-ptrace-signull.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-ptrace-stepper.c.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-ptrace.c.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-setjmp.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-static-link-gen.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-static-link-loc.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-strerror.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/test-varargs.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 From mark@sourceware.org Thu Oct 11 11:25:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 11 Oct 2007 11:25:00 -0000 Subject: Import Message-ID: <20071011112459.29614.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-11 11:24:59 Log message: Import of libunwind version 20071010 Status: Vendor Tag: LIBUNWIND Release Tags: libunwind_20071010 U frysk-imports/libunwind/AUTHORS U frysk-imports/libunwind/LICENSE C frysk-imports/libunwind/configure C frysk-imports/libunwind/configure.in C frysk-imports/libunwind/Makefile.am U frysk-imports/libunwind/COPYING U frysk-imports/libunwind/TODO C frysk-imports/libunwind/Makefile.in U frysk-imports/libunwind/README U frysk-imports/libunwind/ChangeLog U frysk-imports/libunwind/acinclude.m4 U frysk-imports/libunwind/INSTALL U frysk-imports/libunwind/aclocal.m4 U frysk-imports/libunwind/NEWS U frysk-imports/libunwind/config/mkinstalldirs U frysk-imports/libunwind/config/install-sh U frysk-imports/libunwind/config/config.guess U frysk-imports/libunwind/config/depcomp U frysk-imports/libunwind/config/compile U frysk-imports/libunwind/config/missing U frysk-imports/libunwind/config/config.sub U frysk-imports/libunwind/config/ltmain.sh U frysk-imports/libunwind/doc/libunwind-dynamic.man U frysk-imports/libunwind/doc/common.tex.in U frysk-imports/libunwind/doc/unw_destroy_addr_space.tex U frysk-imports/libunwind/doc/unw_getcontext.man U frysk-imports/libunwind/doc/_U_dyn_register.tex U frysk-imports/libunwind/doc/unw_strerror.man U frysk-imports/libunwind/doc/unw_get_reg.man U frysk-imports/libunwind/doc/libunwind.trans U frysk-imports/libunwind/doc/unw_get_proc_info.man U frysk-imports/libunwind/doc/unw_get_fpreg.tex U frysk-imports/libunwind/doc/unw_create_addr_space.man U frysk-imports/libunwind/doc/libunwind-ptrace.man U frysk-imports/libunwind/doc/libunwind-dynamic.tex U frysk-imports/libunwind/doc/unw_strerror.tex U frysk-imports/libunwind/doc/unw_regname.tex U frysk-imports/libunwind/doc/libunwind-ia64.tex U frysk-imports/libunwind/doc/unw_get_proc_info_by_ip.man U frysk-imports/libunwind/doc/unw_resume.tex U frysk-imports/libunwind/doc/libunwind.man U frysk-imports/libunwind/doc/libunwind-ptrace.tex U frysk-imports/libunwind/doc/unw_get_accessors.tex U frysk-imports/libunwind/doc/unw_resume.man U frysk-imports/libunwind/doc/unw_set_caching_policy.tex U frysk-imports/libunwind/doc/unw_flush_cache.tex U frysk-imports/libunwind/doc/unw_is_signal_frame.tex U frysk-imports/libunwind/doc/unw_step.man U frysk-imports/libunwind/doc/libunwind-ia64.man U frysk-imports/libunwind/doc/unw_get_fpreg.man U frysk-imports/libunwind/doc/unw_get_proc_info_by_ip.tex U frysk-imports/libunwind/doc/unw_get_accessors.man U frysk-imports/libunwind/doc/unw_get_proc_name.tex U frysk-imports/libunwind/doc/unw_regname.man U frysk-imports/libunwind/doc/unw_init_local.man U frysk-imports/libunwind/doc/unw_flush_cache.man U frysk-imports/libunwind/doc/libunwind.tex U frysk-imports/libunwind/doc/unw_init_local.tex U frysk-imports/libunwind/doc/unw_is_signal_frame.man U frysk-imports/libunwind/doc/unw_is_fpreg.tex U frysk-imports/libunwind/doc/libunwind-setjmp.tex U frysk-imports/libunwind/doc/unw_step.tex U frysk-imports/libunwind/doc/unw_getcontext.tex U frysk-imports/libunwind/doc/unw_get_proc_info.tex U frysk-imports/libunwind/doc/unw_init_remote.man U frysk-imports/libunwind/doc/unw_set_reg.man U frysk-imports/libunwind/doc/unw_is_fpreg.man U frysk-imports/libunwind/doc/unw_set_fpreg.man U frysk-imports/libunwind/doc/Makefile.am U frysk-imports/libunwind/doc/unw_destroy_addr_space.man U frysk-imports/libunwind/doc/unw_set_caching_policy.man U frysk-imports/libunwind/doc/Makefile.in U frysk-imports/libunwind/doc/NOTES U frysk-imports/libunwind/doc/_U_dyn_cancel.tex U frysk-imports/libunwind/doc/unw_create_addr_space.tex U frysk-imports/libunwind/doc/libunwind-setjmp.man U frysk-imports/libunwind/doc/unw_set_fpreg.tex U frysk-imports/libunwind/doc/unw_init_remote.tex U frysk-imports/libunwind/doc/_U_dyn_register.man U frysk-imports/libunwind/doc/_U_dyn_cancel.man U frysk-imports/libunwind/doc/unw_get_reg.tex U frysk-imports/libunwind/doc/unw_get_proc_name.man U frysk-imports/libunwind/doc/unw_set_reg.tex U frysk-imports/libunwind/aux/config.guess U frysk-imports/libunwind/aux/config.sub U frysk-imports/libunwind/aux/ltmain.sh N frysk-imports/libunwind/include/libunwind-ppc32.h U frysk-imports/libunwind/include/libunwind-x86_64.h U frysk-imports/libunwind/include/stamp-h.in U frysk-imports/libunwind/include/dwarf_i.h U frysk-imports/libunwind/include/dwarf-eh.h U frysk-imports/libunwind/include/libunwind-x86.h U frysk-imports/libunwind/include/libunwind-dynamic.h U frysk-imports/libunwind/include/libunwind-ptrace.h U frysk-imports/libunwind/include/unwind.h U frysk-imports/libunwind/include/libunwind_i.h U frysk-imports/libunwind/include/libunwind-ppc64.h U frysk-imports/libunwind/include/libunwind-ia64.h U frysk-imports/libunwind/include/dwarf.h U frysk-imports/libunwind/include/libunwind-hppa.h U frysk-imports/libunwind/include/libunwind-common.h.in U frysk-imports/libunwind/include/mempool.h U frysk-imports/libunwind/include/config.h.in U frysk-imports/libunwind/include/remote.h U frysk-imports/libunwind/include/tdep-hppa/libunwind_i.h U frysk-imports/libunwind/include/tdep-hppa/jmpbuf.h U frysk-imports/libunwind/include/tdep-hppa/dwarf-config.h U frysk-imports/libunwind/include/tdep-x86/libunwind_i.h U frysk-imports/libunwind/include/tdep-x86/jmpbuf.h U frysk-imports/libunwind/include/tdep-x86/dwarf-config.h U frysk-imports/libunwind/include/x86_64/jmpbuf.h U frysk-imports/libunwind/include/tdep-x86_64/libunwind_i.h U frysk-imports/libunwind/include/tdep-x86_64/jmpbuf.h U frysk-imports/libunwind/include/tdep-x86_64/dwarf-config.h N frysk-imports/libunwind/include/tdep-ppc32/libunwind_i.h N frysk-imports/libunwind/include/tdep-ppc32/jmpbuf.h N frysk-imports/libunwind/include/tdep-ppc32/dwarf-config.h U frysk-imports/libunwind/include/tdep-ia64/script.h U frysk-imports/libunwind/include/tdep-ia64/libunwind_i.h U frysk-imports/libunwind/include/tdep-ia64/jmpbuf.h U frysk-imports/libunwind/include/tdep-ia64/rse.h U frysk-imports/libunwind/include/x86/jmpbuf.h C frysk-imports/libunwind/include/tdep-ppc64/libunwind_i.h U frysk-imports/libunwind/include/tdep-ppc64/jmpbuf.h U frysk-imports/libunwind/include/tdep-ppc64/dwarf-config.h U frysk-imports/libunwind/scripts/make-L-files U frysk-imports/libunwind/scripts/kernel-files.txt U frysk-imports/libunwind/scripts/kernel-diff.sh N frysk-imports/libunwind/.git/FETCH_HEAD N frysk-imports/libunwind/.git/index N frysk-imports/libunwind/.git/config N frysk-imports/libunwind/.git/description N frysk-imports/libunwind/.git/ORIG_HEAD N frysk-imports/libunwind/.git/HEAD N frysk-imports/libunwind/.git/logs/HEAD N frysk-imports/libunwind/.git/logs/refs/remotes/origin/master N frysk-imports/libunwind/.git/logs/refs/remotes/origin/origin N frysk-imports/libunwind/.git/logs/refs/heads/master N frysk-imports/libunwind/.git/refs/remotes/origin/master N frysk-imports/libunwind/.git/refs/remotes/origin/origin N frysk-imports/libunwind/.git/refs/remotes/origin/HEAD N frysk-imports/libunwind/.git/refs/heads/master N frysk-imports/libunwind/.git/info/exclude N frysk-imports/libunwind/.git/objects/a5/afe0abcd54533b44f5db58b039940fcd16539f N frysk-imports/libunwind/.git/objects/14/797c9bdf8ff641d333b2b094edb0810139cb3b N frysk-imports/libunwind/.git/objects/4f/1ebeee383828be82a16872d239460053f39ef7 N frysk-imports/libunwind/.git/objects/2e/5e5175ad8619d688478b69918bbe6eb52a0ce4 N frysk-imports/libunwind/.git/objects/82/43f82d4159badc88a28a342254ff0174facbfe N frysk-imports/libunwind/.git/objects/21/be70c43acbb07aa88645a7198cce936a2194e5 N frysk-imports/libunwind/.git/objects/21/ec10fcd8cdbf4ef5dbd7fc6e01d5a4a1761854 N frysk-imports/libunwind/.git/objects/c5/beb81d7d6c025c62bffc041cf84d6cc513b3f5 N frysk-imports/libunwind/.git/objects/57/e569646368cb730f028ecf1732143474e3e642 N frysk-imports/libunwind/.git/objects/a8/9139deeaa49dc4e515314ef31250f71b1afb0c N frysk-imports/libunwind/.git/objects/64/be36ce17028169e497aa265a190f2b4e92fdd0 N frysk-imports/libunwind/.git/objects/11/f3c61eebb1f97d42464ae06cbe84b18a58c5db N frysk-imports/libunwind/.git/objects/ae/54cd589f4e2080f7513467407086872b738ded N frysk-imports/libunwind/.git/objects/31/265f66a064d71ad71a6af5e7856f69c78003ea N frysk-imports/libunwind/.git/objects/38/4615b840ece9124bc2bd186182e9d4b40f87b4 N frysk-imports/libunwind/.git/objects/cb/a50a4b9df589ac1a101fea2ace9cc78229e6c5 N frysk-imports/libunwind/.git/objects/cb/0ae28cc5daff63feebb678437f76cd50e8d6a9 N frysk-imports/libunwind/.git/objects/d9/96492ffcc0add5f63677cb79f0ccc29ab8a996 N frysk-imports/libunwind/.git/objects/02/f7af4b377fabcb22600996c49eb4a33ca01652 N frysk-imports/libunwind/.git/objects/ba/3e6e81b0f130190f82fb7cd1b63c6e9c27153d N frysk-imports/libunwind/.git/objects/ec/7554a02593369c1e605e8d002510795037bc6c N frysk-imports/libunwind/.git/objects/80/92b693a7a783240520cda74ab46c378497f7e2 N frysk-imports/libunwind/.git/objects/d5/71cfcf98c53bf3ed5c88f339673447e4bc6164 N frysk-imports/libunwind/.git/objects/9e/eb1b845b4036b5cf249fd5c5512e76b0491d4c N frysk-imports/libunwind/.git/objects/9e/a6af8ed5ee7b07f8de6d774bc6df2b7320f0e8 N frysk-imports/libunwind/.git/objects/b4/0a84ef16456c9ddbbb56139745aa6f75940715 N frysk-imports/libunwind/.git/objects/d8/97a5625c90cd384bac3019875764384ba7a712 N frysk-imports/libunwind/.git/objects/d8/da732acc8ac9fd60d7c8f34c2f6549f9bdffcf N frysk-imports/libunwind/.git/objects/19/f0fb3c311ae48fe73a9540b37a08478bfebcbd N frysk-imports/libunwind/.git/objects/24/e0fa164f01a7a2a540499e155c9a326aaa3cde N frysk-imports/libunwind/.git/objects/a1/790698d4861bcfb0cdc190e06db5ed5758be99 N frysk-imports/libunwind/.git/objects/00/d97a2f1d747f8f8cb65093783a3a21267f377a N frysk-imports/libunwind/.git/objects/41/544290134ffdba1c3733c939592cca626a29b9 N frysk-imports/libunwind/.git/objects/75/e9f6a7f8d64485dff975ba71cc0d28385d3538 N frysk-imports/libunwind/.git/objects/d7/7b43753bb29dcad8b03ecd7a9554ae4968893a N frysk-imports/libunwind/.git/objects/7d/9221ee0459eba6f4002637960a0e328313cabc N frysk-imports/libunwind/.git/objects/92/be32164a4febe9133a7cc47838455870f97815 N frysk-imports/libunwind/.git/objects/c8/14edce9d7ede9407219f5beef16c486981668f N frysk-imports/libunwind/.git/objects/2a/9f9c1b0eb61ee4a1a54a3fa1789d7ad36fc808 N frysk-imports/libunwind/.git/objects/2a/2f286594bb26ea6e3fa080ef4b7a71afbfd29b N frysk-imports/libunwind/.git/objects/66/269d2cc58db6e25c48a8ac1c96f92c7c72f95f N frysk-imports/libunwind/.git/objects/37/44cd366ef7b0840869d9da7d151769a2e5d864 N frysk-imports/libunwind/.git/objects/cd/d0eecf2985ca180f37b887e2293af11ef5897a N frysk-imports/libunwind/.git/objects/6b/4e1d8b5ae8c23858a5fd52b98dc4ed478997ba N frysk-imports/libunwind/.git/objects/c2/d4604d48e354ff4a87464dbd9897a652fab362 N frysk-imports/libunwind/.git/objects/5a/a1784e27c21ebe8b6af14176e6df40d426660e N frysk-imports/libunwind/.git/objects/3b/14cda4a5794a71f619d2c1f7e582ccc1cd1084 N frysk-imports/libunwind/.git/objects/0a/ea33a441345fc1db58225c29c3899b01c99787 N frysk-imports/libunwind/.git/objects/34/878dbe8f374a0ced3e1b89223eea1a02664869 N frysk-imports/libunwind/.git/objects/2d/9ab2ce709cd96b89f049c6437270e64c7a3809 N frysk-imports/libunwind/.git/objects/d1/46e82dde4185b925e432f908eabdda8fa69185 N frysk-imports/libunwind/.git/objects/0e/9f589e1ecb7c1328879ea81440ef6f8cdcf4e9 N frysk-imports/libunwind/.git/objects/54/46c9805c43cabd0af75ea2210c589a393cf0c6 N frysk-imports/libunwind/.git/objects/6f/b4401faa23739cc4a8480eb3bba71b3b57d895 N frysk-imports/libunwind/.git/objects/ac/d3ada2c6497c8472326743907da9e1d3e14541 N frysk-imports/libunwind/.git/objects/cc/cc5112bc1f07c4c72e25a778b3c99bf850a0dd N frysk-imports/libunwind/.git/objects/b7/43c854a76112da99048bdaba8ec2d73b1bcd69 N frysk-imports/libunwind/.git/objects/20/b22b51ccd6dec687c222560839c1392e42a18a N frysk-imports/libunwind/.git/objects/9a/52fc3834ee0916c08e0a8687a05d5190ef1a03 N frysk-imports/libunwind/.git/objects/9a/6d33fb1de96c7f100f8ebaa532b65f3381ec46 N frysk-imports/libunwind/.git/objects/a3/6ea35cc613ef044b5a17be0672cb6b6fc303ad N frysk-imports/libunwind/.git/objects/79/ba88aa56fcf6000f721f30c406f981b9b08df1 N frysk-imports/libunwind/.git/objects/79/582e9e1bb9d88a8c020894c63d5bb883c4abf2 N frysk-imports/libunwind/.git/objects/47/c66f11957d83d2f3a4803e2f3c43e8fa316a42 N frysk-imports/libunwind/.git/objects/b5/4378a9dc249dc20fc2f6266496d575ff0b6769 N frysk-imports/libunwind/.git/objects/f8/468320b889bf7a07e990565606f158d1658790 N frysk-imports/libunwind/.git/objects/52/c3dc7e23173cffc7bb5787ce9a0f7e73fe851d N frysk-imports/libunwind/.git/objects/ee/a5ac27836e88a9143df501cb2038289bd57e78 N frysk-imports/libunwind/.git/objects/pack/pack-836772c53d6512c14b89ea00d276673be0590c5a.idx N frysk-imports/libunwind/.git/objects/pack/pack-836772c53d6512c14b89ea00d276673be0590c5a.pack N frysk-imports/libunwind/.git/objects/f4/8bf0b46b461602ff4f8bfea65e79f56e905efa N frysk-imports/libunwind/.git/objects/c4/cfe0fcb3eecb277ecc1e79491b26c9c49442c5 N frysk-imports/libunwind/.git/objects/de/3811ffb6bbdd27f1bb3eb1b86a9ee76c8739b3 N frysk-imports/libunwind/.git/objects/8c/7233972521c8796941841dc6ced6c6c80173aa N frysk-imports/libunwind/.git/objects/8c/c06a33db68418bc04fb320d9621c0207716b59 N frysk-imports/libunwind/.git/objects/8c/a7968d57cf26086d136da1800524a3b4b641f8 N frysk-imports/libunwind/.git/objects/8b/5c4dece9eb0e9f6cad5bfd0288b2d8905aae15 N frysk-imports/libunwind/.git/objects/8b/adb1781cc6b0b12d99a8d958c33ef664deba83 N frysk-imports/libunwind/.git/objects/d3/63aef222f404c8f46d361d53377b9a85594f0a N frysk-imports/libunwind/.git/objects/7f/cdc385913680eb15a093923b9fc8f1a8905c60 N frysk-imports/libunwind/.git/objects/a7/6ac9bd99edf78a5194f6308f0bc0566e6fe39c N frysk-imports/libunwind/.git/objects/c3/2e503264e14e6705116924cd489189006103b0 N frysk-imports/libunwind/.git/objects/c3/c3a57f76c48fc7507464d591b93ba07a004e0c N frysk-imports/libunwind/.git/objects/c3/40d04279f046b543066dbc8f36452602d7fd52 N frysk-imports/libunwind/.git/objects/3a/0b75a649c3e4861a078d96e47a34f7fda347c1 N frysk-imports/libunwind/.git/objects/44/be8bc4e98b60aecd908e721fef32b2f6683d9b N frysk-imports/libunwind/.git/objects/44/99bb29a6214b5df5b3b21e03c6b4f3c8f26cfd N frysk-imports/libunwind/.git/objects/bd/5313a417f78b276947b72fb0555d6681ef1e81 N frysk-imports/libunwind/.git/objects/bd/a9d06679b8b30fd483acea312d421696cb2020 N frysk-imports/libunwind/.git/objects/8e/26c77e445b3d2b58eff5090ac20a8418b835ed N frysk-imports/libunwind/.git/objects/88/6f14c485b5c98bc45692bf043df14f5f251b29 N frysk-imports/libunwind/.git/objects/88/bb20b14fcf3c8760dfe42784fe61a29f403bac N frysk-imports/libunwind/.git/objects/aa/ce04d4251bbfcd9f9c1eb19529beaf1dd21a3f N frysk-imports/libunwind/.git/objects/2f/a8f85321fede53719e6e28850d8400e57efb02 N frysk-imports/libunwind/.git/objects/09/c1df17e68cb28862df1d91e9be3ea038b7f621 N frysk-imports/libunwind/.git/hooks/pre-applypatch N frysk-imports/libunwind/.git/hooks/post-commit N frysk-imports/libunwind/.git/hooks/pre-rebase N frysk-imports/libunwind/.git/hooks/applypatch-msg N frysk-imports/libunwind/.git/hooks/post-receive N frysk-imports/libunwind/.git/hooks/post-update N frysk-imports/libunwind/.git/hooks/update N frysk-imports/libunwind/.git/hooks/commit-msg N frysk-imports/libunwind/.git/hooks/pre-commit U frysk-imports/libunwind/src/os-hpux.c U frysk-imports/libunwind/src/os-linux.h U frysk-imports/libunwind/src/elfxx.h U frysk-imports/libunwind/src/elf32.c U frysk-imports/libunwind/src/elfxx.c U frysk-imports/libunwind/src/elf64.h U frysk-imports/libunwind/src/elf32.h C frysk-imports/libunwind/src/Makefile.am U frysk-imports/libunwind/src/elf64.c C frysk-imports/libunwind/src/Makefile.in U frysk-imports/libunwind/src/os-linux.c U frysk-imports/libunwind/src/hppa/offsets.h U frysk-imports/libunwind/src/hppa/Lglobal.c U frysk-imports/libunwind/src/hppa/Lcreate_addr_space.c U frysk-imports/libunwind/src/hppa/Gget_save_loc.c U frysk-imports/libunwind/src/hppa/Lresume.c U frysk-imports/libunwind/src/hppa/Gregs.c U frysk-imports/libunwind/src/hppa/Lis_signal_frame.c U frysk-imports/libunwind/src/hppa/Linit_local.c U frysk-imports/libunwind/src/hppa/Linit_remote.c U frysk-imports/libunwind/src/hppa/tables.c U frysk-imports/libunwind/src/hppa/Gget_proc_info.c U frysk-imports/libunwind/src/hppa/Ginit.c U frysk-imports/libunwind/src/hppa/unwind_i.h U frysk-imports/libunwind/src/hppa/Gglobal.c U frysk-imports/libunwind/src/hppa/Lregs.c U frysk-imports/libunwind/src/hppa/init.h U frysk-imports/libunwind/src/hppa/Linit.c U frysk-imports/libunwind/src/hppa/Gstep.c U frysk-imports/libunwind/src/hppa/Lget_save_loc.c U frysk-imports/libunwind/src/hppa/Ginit_local.c C frysk-imports/libunwind/src/hppa/siglongjmp.S U frysk-imports/libunwind/src/hppa/Gis_signal_frame.c U frysk-imports/libunwind/src/hppa/Lstep.c U frysk-imports/libunwind/src/hppa/Gcreate_addr_space.c U frysk-imports/libunwind/src/hppa/get_accessors.c U frysk-imports/libunwind/src/hppa/Gresume.c U frysk-imports/libunwind/src/hppa/Lget_proc_info.c U frysk-imports/libunwind/src/hppa/Ginit_remote.c C frysk-imports/libunwind/src/hppa/setcontext.S U frysk-imports/libunwind/src/hppa/regname.c C frysk-imports/libunwind/src/hppa/getcontext.S N frysk-imports/libunwind/src/ppc32/Lglobal.c N frysk-imports/libunwind/src/ppc32/Lresume.c N frysk-imports/libunwind/src/ppc32/is_fpreg.c N frysk-imports/libunwind/src/ppc32/Gregs.c N frysk-imports/libunwind/src/ppc32/Ginit.c N frysk-imports/libunwind/src/ppc32/unwind_i.h N frysk-imports/libunwind/src/ppc32/Gglobal.c N frysk-imports/libunwind/src/ppc32/Lregs.c N frysk-imports/libunwind/src/ppc32/init.h N frysk-imports/libunwind/src/ppc32/get_func_addr.c N frysk-imports/libunwind/src/ppc32/Linit.c N frysk-imports/libunwind/src/ppc32/ucontext_i.h N frysk-imports/libunwind/src/ppc32/Gstep.c N frysk-imports/libunwind/src/ppc32/Make-arch.in N frysk-imports/libunwind/src/ppc32/Lstep.c N frysk-imports/libunwind/src/ppc32/Gresume.c N frysk-imports/libunwind/src/ppc32/setcontext.S N frysk-imports/libunwind/src/ppc32/regname.c U frysk-imports/libunwind/src/mi/Lset_reg.c U frysk-imports/libunwind/src/mi/init.c U frysk-imports/libunwind/src/mi/Gset_caching_policy.c U frysk-imports/libunwind/src/mi/Gget_accessors.c U frysk-imports/libunwind/src/mi/Gset_reg.c U frysk-imports/libunwind/src/mi/dyn-cancel.c U frysk-imports/libunwind/src/mi/Gfind_dynamic_proc_info.c U frysk-imports/libunwind/src/mi/flush_cache.c U frysk-imports/libunwind/src/mi/_ReadSLEB.c U frysk-imports/libunwind/src/mi/Lget_fpreg.c U frysk-imports/libunwind/src/mi/Lset_fpreg.c U frysk-imports/libunwind/src/mi/mempool.c U frysk-imports/libunwind/src/mi/Gdyn-extract.c U frysk-imports/libunwind/src/mi/Ldyn-remote.c U frysk-imports/libunwind/src/mi/dyn-register.c U frysk-imports/libunwind/src/mi/Gdestroy_addr_space.c U frysk-imports/libunwind/src/mi/Lget_proc_name.c U frysk-imports/libunwind/src/mi/Ldyn-extract.c U frysk-imports/libunwind/src/mi/dyn-info-list.c U frysk-imports/libunwind/src/mi/_ReadULEB.c U frysk-imports/libunwind/src/mi/Gget_proc_info_by_ip.c U frysk-imports/libunwind/src/mi/Lget_proc_info_by_ip.c U frysk-imports/libunwind/src/mi/Gset_fpreg.c U frysk-imports/libunwind/src/mi/Lput_dynamic_unwind_info.c U frysk-imports/libunwind/src/mi/Gput_dynamic_unwind_info.c U frysk-imports/libunwind/src/mi/Gget_fpreg.c U frysk-imports/libunwind/src/mi/Ldestroy_addr_space.c U frysk-imports/libunwind/src/mi/Gget_reg.c U frysk-imports/libunwind/src/mi/Lget_reg.c U frysk-imports/libunwind/src/mi/backtrace.c U frysk-imports/libunwind/src/mi/Gdyn-remote.c U frysk-imports/libunwind/src/mi/Lget_accessors.c U frysk-imports/libunwind/src/mi/strerror.c U frysk-imports/libunwind/src/mi/Lfind_dynamic_proc_info.c U frysk-imports/libunwind/src/mi/Gget_proc_name.c U frysk-imports/libunwind/src/mi/Lset_caching_policy.c U frysk-imports/libunwind/src/ptrace/_UPT_access_reg.c U frysk-imports/libunwind/src/ptrace/_UPT_destroy.c U frysk-imports/libunwind/src/ptrace/_UPT_get_dyn_info_list_addr.c U frysk-imports/libunwind/src/ptrace/_UPT_internal.h U frysk-imports/libunwind/src/ptrace/_UPT_accessors.c U frysk-imports/libunwind/src/ptrace/_UPT_create.c U frysk-imports/libunwind/src/ptrace/_UPT_resume.c U frysk-imports/libunwind/src/ptrace/_UPT_get_proc_name.c C frysk-imports/libunwind/src/ptrace/_UPT_reg_offset.c U frysk-imports/libunwind/src/ptrace/_UPT_access_mem.c U frysk-imports/libunwind/src/ptrace/_UPT_put_unwind_info.c U frysk-imports/libunwind/src/ptrace/_UPT_elf.c U frysk-imports/libunwind/src/ptrace/_UPT_find_proc_info.c U frysk-imports/libunwind/src/ptrace/_UPT_access_fpreg.c U frysk-imports/libunwind/src/x86_64/offsets.h U frysk-imports/libunwind/src/x86_64/Lglobal.c C frysk-imports/libunwind/src/x86_64/longjmp.S U frysk-imports/libunwind/src/x86_64/Lcreate_addr_space.c U frysk-imports/libunwind/src/x86_64/Gget_save_loc.c U frysk-imports/libunwind/src/x86_64/Lresume.c U frysk-imports/libunwind/src/x86_64/is_fpreg.c U frysk-imports/libunwind/src/x86_64/Gregs.c U frysk-imports/libunwind/src/x86_64/Lis_signal_frame.c U frysk-imports/libunwind/src/x86_64/Linit_local.c U frysk-imports/libunwind/src/x86_64/Linit_remote.c U frysk-imports/libunwind/src/x86_64/Gget_proc_info.c U frysk-imports/libunwind/src/x86_64/Ginit.c U frysk-imports/libunwind/src/x86_64/unwind_i.h U frysk-imports/libunwind/src/x86_64/Gglobal.c U frysk-imports/libunwind/src/x86_64/Lregs.c U frysk-imports/libunwind/src/x86_64/init.h U frysk-imports/libunwind/src/x86_64/Linit.c U frysk-imports/libunwind/src/x86_64/ucontext_i.h U frysk-imports/libunwind/src/x86_64/Gstep.c U frysk-imports/libunwind/src/x86_64/Lget_save_loc.c U frysk-imports/libunwind/src/x86_64/Ginit_local.c C frysk-imports/libunwind/src/x86_64/siglongjmp.S U frysk-imports/libunwind/src/x86_64/Gis_signal_frame.c U frysk-imports/libunwind/src/x86_64/Lstep.c U frysk-imports/libunwind/src/x86_64/Gcreate_addr_space.c U frysk-imports/libunwind/src/x86_64/Gresume.c U frysk-imports/libunwind/src/x86_64/Lget_proc_info.c U frysk-imports/libunwind/src/x86_64/Ginit_remote.c C frysk-imports/libunwind/src/x86_64/setcontext.S U frysk-imports/libunwind/src/x86_64/regname.c N frysk-imports/libunwind/src/ppc/longjmp.S N frysk-imports/libunwind/src/ppc/Lcreate_addr_space.c N frysk-imports/libunwind/src/ppc/Gget_save_loc.c N frysk-imports/libunwind/src/ppc/Lis_signal_frame.c N frysk-imports/libunwind/src/ppc/Linit_local.c N frysk-imports/libunwind/src/ppc/Linit_remote.c N frysk-imports/libunwind/src/ppc/Gget_proc_info.c N frysk-imports/libunwind/src/ppc/Lget_save_loc.c N frysk-imports/libunwind/src/ppc/Ginit_local.c N frysk-imports/libunwind/src/ppc/siglongjmp.S N frysk-imports/libunwind/src/ppc/Gis_signal_frame.c N frysk-imports/libunwind/src/ppc/Gcreate_addr_space.c N frysk-imports/libunwind/src/ppc/Lget_proc_info.c N frysk-imports/libunwind/src/ppc/Ginit_remote.c U frysk-imports/libunwind/src/dwarf/Lpe.c U frysk-imports/libunwind/src/dwarf/Lparser.c U frysk-imports/libunwind/src/dwarf/Gfde.c U frysk-imports/libunwind/src/dwarf/Gexpr.c U frysk-imports/libunwind/src/dwarf/Lexpr.c U frysk-imports/libunwind/src/dwarf/Gstep.c U frysk-imports/libunwind/src/dwarf/Gparser.c U frysk-imports/libunwind/src/dwarf/Lfind_proc_info-lsb.c U frysk-imports/libunwind/src/dwarf/global.c U frysk-imports/libunwind/src/dwarf/Lfde.c U frysk-imports/libunwind/src/dwarf/Lstep.c U frysk-imports/libunwind/src/dwarf/Gfind_proc_info-lsb.c U frysk-imports/libunwind/src/dwarf/Gpe.c U frysk-imports/libunwind/src/setjmp/setjmp.c U frysk-imports/libunwind/src/setjmp/sigsetjmp.c U frysk-imports/libunwind/src/setjmp/siglongjmp.c U frysk-imports/libunwind/src/setjmp/setjmp_i.h U frysk-imports/libunwind/src/setjmp/longjmp.c U frysk-imports/libunwind/src/ppc64/Lglobal.c U frysk-imports/libunwind/src/ppc64/Lresume.c U frysk-imports/libunwind/src/ppc64/is_fpreg.c U frysk-imports/libunwind/src/ppc64/Gregs.c U frysk-imports/libunwind/src/ppc64/Ginit.c U frysk-imports/libunwind/src/ppc64/unwind_i.h U frysk-imports/libunwind/src/ppc64/Gglobal.c U frysk-imports/libunwind/src/ppc64/Lregs.c C frysk-imports/libunwind/src/ppc64/init.h U frysk-imports/libunwind/src/ppc64/get_func_addr.c U frysk-imports/libunwind/src/ppc64/Linit.c U frysk-imports/libunwind/src/ppc64/ucontext_i.h C frysk-imports/libunwind/src/ppc64/Gstep.c U frysk-imports/libunwind/src/ppc64/Lstep.c U frysk-imports/libunwind/src/ppc64/Gresume.c C frysk-imports/libunwind/src/ppc64/setcontext.S U frysk-imports/libunwind/src/ppc64/regname.c U frysk-imports/libunwind/src/x86/offsets.h U frysk-imports/libunwind/src/x86/Lglobal.c C frysk-imports/libunwind/src/x86/longjmp.S U frysk-imports/libunwind/src/x86/Lcreate_addr_space.c U frysk-imports/libunwind/src/x86/Gget_save_loc.c U frysk-imports/libunwind/src/x86/Lresume.c U frysk-imports/libunwind/src/x86/is_fpreg.c U frysk-imports/libunwind/src/x86/Gregs.c U frysk-imports/libunwind/src/x86/Lis_signal_frame.c U frysk-imports/libunwind/src/x86/Linit_local.c U frysk-imports/libunwind/src/x86/Linit_remote.c U frysk-imports/libunwind/src/x86/Gget_proc_info.c U frysk-imports/libunwind/src/x86/Ginit.c U frysk-imports/libunwind/src/x86/unwind_i.h U frysk-imports/libunwind/src/x86/Gglobal.c U frysk-imports/libunwind/src/x86/Lregs.c U frysk-imports/libunwind/src/x86/init.h U frysk-imports/libunwind/src/x86/Linit.c U frysk-imports/libunwind/src/x86/Gstep.c U frysk-imports/libunwind/src/x86/Lget_save_loc.c U frysk-imports/libunwind/src/x86/Ginit_local.c C frysk-imports/libunwind/src/x86/siglongjmp.S U frysk-imports/libunwind/src/x86/Gis_signal_frame.c U frysk-imports/libunwind/src/x86/Lstep.c U frysk-imports/libunwind/src/x86/Gcreate_addr_space.c U frysk-imports/libunwind/src/x86/Gresume.c U frysk-imports/libunwind/src/x86/Lget_proc_info.c U frysk-imports/libunwind/src/x86/Ginit_remote.c U frysk-imports/libunwind/src/x86/regname.c U frysk-imports/libunwind/src/unwind/GetIP.c U frysk-imports/libunwind/src/unwind/Resume_or_Rethrow.c U frysk-imports/libunwind/src/unwind/FindEnclosingFunction.c U frysk-imports/libunwind/src/unwind/DeleteException.c U frysk-imports/libunwind/src/unwind/GetLanguageSpecificData.c U frysk-imports/libunwind/src/unwind/RaiseException.c U frysk-imports/libunwind/src/unwind/GetTextRelBase.c U frysk-imports/libunwind/src/unwind/ForcedUnwind.c U frysk-imports/libunwind/src/unwind/unwind-internal.h U frysk-imports/libunwind/src/unwind/SetIP.c U frysk-imports/libunwind/src/unwind/GetCFA.c U frysk-imports/libunwind/src/unwind/GetDataRelBase.c U frysk-imports/libunwind/src/unwind/GetRegionStart.c U frysk-imports/libunwind/src/unwind/Backtrace.c U frysk-imports/libunwind/src/unwind/GetBSP.c U frysk-imports/libunwind/src/unwind/SetGR.c U frysk-imports/libunwind/src/unwind/Resume.c U frysk-imports/libunwind/src/unwind/GetGR.c U frysk-imports/libunwind/src/ia64/offsets.h U frysk-imports/libunwind/src/ia64/Lglobal.c C frysk-imports/libunwind/src/ia64/longjmp.S C frysk-imports/libunwind/src/ia64/dyn_info_list.S U frysk-imports/libunwind/src/ia64/Lcreate_addr_space.c U frysk-imports/libunwind/src/ia64/Lparser.c C frysk-imports/libunwind/src/ia64/Linstall_cursor.S U frysk-imports/libunwind/src/ia64/Gget_save_loc.c U frysk-imports/libunwind/src/ia64/Lresume.c U frysk-imports/libunwind/src/ia64/Gregs.c U frysk-imports/libunwind/src/ia64/Lis_signal_frame.c U frysk-imports/libunwind/src/ia64/mk_Gcursor_i.c U frysk-imports/libunwind/src/ia64/regs.h U frysk-imports/libunwind/src/ia64/Linit_local.c U frysk-imports/libunwind/src/ia64/Linit_remote.c U frysk-imports/libunwind/src/ia64/Gget_proc_info.c U frysk-imports/libunwind/src/ia64/Ginit.c U frysk-imports/libunwind/src/ia64/Ltables.c U frysk-imports/libunwind/src/ia64/Grbs.c U frysk-imports/libunwind/src/ia64/unwind_i.h U frysk-imports/libunwind/src/ia64/Gglobal.c U frysk-imports/libunwind/src/ia64/Lregs.c U frysk-imports/libunwind/src/ia64/init.h U frysk-imports/libunwind/src/ia64/mk_Lcursor_i.c U frysk-imports/libunwind/src/ia64/Lscript.c U frysk-imports/libunwind/src/ia64/Linit.c U frysk-imports/libunwind/src/ia64/ucontext_i.h U frysk-imports/libunwind/src/ia64/Gstep.c C frysk-imports/libunwind/src/ia64/Ginstall_cursor.S U frysk-imports/libunwind/src/ia64/Gtables.c U frysk-imports/libunwind/src/ia64/Gparser.c U frysk-imports/libunwind/src/ia64/Gscript.c U frysk-imports/libunwind/src/ia64/Lrbs.c U frysk-imports/libunwind/src/ia64/Lget_save_loc.c U frysk-imports/libunwind/src/ia64/Ginit_local.c U frysk-imports/libunwind/src/ia64/unwind_decoder.h U frysk-imports/libunwind/src/ia64/NOTES C frysk-imports/libunwind/src/ia64/siglongjmp.S U frysk-imports/libunwind/src/ia64/Gis_signal_frame.c U frysk-imports/libunwind/src/ia64/Lstep.c U frysk-imports/libunwind/src/ia64/Gcreate_addr_space.c U frysk-imports/libunwind/src/ia64/Gresume.c U frysk-imports/libunwind/src/ia64/Lget_proc_info.c C frysk-imports/libunwind/src/ia64/setjmp.S C frysk-imports/libunwind/src/ia64/sigsetjmp.S U frysk-imports/libunwind/src/ia64/Ginit_remote.c U frysk-imports/libunwind/src/ia64/regname.c C frysk-imports/libunwind/src/ia64/getcontext.S U frysk-imports/libunwind/tests/Ltest-concurrent.c U frysk-imports/libunwind/tests/Gtest-resume-sig.c U frysk-imports/libunwind/tests/test-proc-info.c U frysk-imports/libunwind/tests/Lia64-test-readonly.c U frysk-imports/libunwind/tests/test-static-link-loc.c U frysk-imports/libunwind/tests/test-setjmp.c U frysk-imports/libunwind/tests/Gtest-bt.c U frysk-imports/libunwind/tests/Lia64-test-stack.c U frysk-imports/libunwind/tests/test-init-remote.c U frysk-imports/libunwind/tests/ia64-test-setjmp.c U frysk-imports/libunwind/tests/perf-startup U frysk-imports/libunwind/tests/test-flush-cache.c U frysk-imports/libunwind/tests/ident.c U frysk-imports/libunwind/tests/Gtest-concurrent.c U frysk-imports/libunwind/tests/Gia64-test-readonly.c C frysk-imports/libunwind/tests/ia64-test-rbs-asm.S U frysk-imports/libunwind/tests/Gperf-simple.c U frysk-imports/libunwind/tests/Gtest-init.cxx U frysk-imports/libunwind/tests/ppc64-test-altivec.c U frysk-imports/libunwind/tests/Gtest-exc.c U frysk-imports/libunwind/tests/Lia64-test-rbs.c U frysk-imports/libunwind/tests/Ltest-init.cxx U frysk-imports/libunwind/tests/test-ptrace.c U frysk-imports/libunwind/tests/ia64-test-dyn1.c U frysk-imports/libunwind/tests/Ltest-dyn1.c U frysk-imports/libunwind/tests/test-async-sig.c U frysk-imports/libunwind/tests/test-ptrace-misc.c U frysk-imports/libunwind/tests/Ltest-bt.c U frysk-imports/libunwind/tests/Ltest-resume-sig.c U frysk-imports/libunwind/tests/Makefile.am U frysk-imports/libunwind/tests/ia64-test-rbs.h C frysk-imports/libunwind/tests/ia64-test-nat-asm.S U frysk-imports/libunwind/tests/mapper.c U frysk-imports/libunwind/tests/test-strerror.c U frysk-imports/libunwind/tests/run-ptrace-mapper U frysk-imports/libunwind/tests/Makefile.in U frysk-imports/libunwind/tests/Gia64-test-stack.c C frysk-imports/libunwind/tests/ia64-test-stack-asm.S U frysk-imports/libunwind/tests/test-static-link-gen.c U frysk-imports/libunwind/tests/Gia64-test-nat.c U frysk-imports/libunwind/tests/check-namespace.sh.in U frysk-imports/libunwind/tests/ppc64-test-altivec-utils.c U frysk-imports/libunwind/tests/forker.c U frysk-imports/libunwind/tests/test-varargs.c U frysk-imports/libunwind/tests/run-ptrace-misc C frysk-imports/libunwind/tests/flush-cache.S U frysk-imports/libunwind/tests/ia64-test-stack.h U frysk-imports/libunwind/tests/test-mem.c U frysk-imports/libunwind/tests/run-check-namespace U frysk-imports/libunwind/tests/Gia64-test-rbs.c U frysk-imports/libunwind/tests/Lperf-simple.c U frysk-imports/libunwind/tests/Ltest-exc.c U frysk-imports/libunwind/tests/Gtest-dyn1.c C frysk-imports/libunwind/tests/ia64-dyn-asm.S U frysk-imports/libunwind/tests/ppc64-test-wchar.c U frysk-imports/libunwind/tests/Lia64-test-nat.c U frysk-imports/libunwind/tests/run-ia64-test-dyn1 U frysk-imports/libunwind/tests/ia64-test-sig.c C frysk-imports/libunwind/tests/ia64-test-readonly-asm.S 33 conflicts created by this import. Use the following command to help the merge: cvs checkout -jLIBUNWIND:yesterday -jLIBUNWIND frysk-imports/libunwind From mark@sourceware.org Thu Oct 11 11:46:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 11 Oct 2007 11:46:00 -0000 Subject: frysk-imports/libunwind include/libunwind-ppc3 ... Message-ID: <20071011114645.8131.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-11 11:46:45 Removed files: libunwind/include: libunwind-ppc32.h libunwind/include/tdep-ppc32: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/src/ppc: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Linit_local.c Linit_remote.c Lis_signal_frame.c longjmp.S siglongjmp.S libunwind/src/ppc32: Gglobal.c Ginit.c Gregs.c Gresume.c Gstep.c Lglobal.c Linit.c Lregs.c Lresume.c Lstep.c Make-arch.in get_func_addr.c init.h is_fpreg.c regname.c setcontext.S ucontext_i.h unwind_i.h Log message: Remove new libunwind files imported to vendor branch from head. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-ppc32.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/dwarf-config.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/jmpbuf.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/libunwind_i.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Ginit_local.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Ginit_remote.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Linit_local.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Linit_remote.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/longjmp.S.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/siglongjmp.S.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gglobal.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Ginit.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gregs.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gresume.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gstep.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lglobal.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Linit.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lregs.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lresume.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lstep.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Make-arch.in.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/get_func_addr.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/init.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/is_fpreg.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/regname.c.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/setcontext.S.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/ucontext_i.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/unwind_i.h.diff?cvsroot=frysk&r1=1.1.1.1&r2=NONE From tthomas@sourceware.org Thu Oct 11 13:51:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 11 Oct 2007 13:51:00 -0000 Subject: frysk-core/frysk debuginfo/DebugInfo.java debu ... Message-ID: <20071011135059.9647.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-11 13:50:59 Modified files: frysk/debuginfo: DebugInfo.java ChangeLog DebugInfoEvaluator.java frysk/expr : ChangeLog CExprAnnotator.g ExprSymTab.java Log message: 2007-10-11 Teresa Thomas * DebugInfo.java (TmpSymTab.getMemoryFIXME): Delete. * DebugInfoEvaluator.java (getMemoryFIXME): Delete. (AccessMemory): Class deleted. (VariableAccessor): Interface deleted. (buffer): Delete. (byteType): Delete. (shortType): Delete. (intType): Delete. (longType): Delete. (floatType): Delete. (doubleType): Delete. (isa): Delete. (DebugInfoEvaluator): Update. 2007-10-11 Teresa Thomas * CExprAnnotator.g (MEMORY): Use expr. (ADDRESS_OF): Use expr. * ExprSymTab.java (getMemoryFIXME): Deleted. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.38&r2=1.39 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.207&r2=1.208 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.91&r2=1.92 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.77&r2=1.78 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 From mark@sourceware.org Thu Oct 11 14:06:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 11 Oct 2007 14:06:00 -0000 Subject: frysk-imports/libunwind ChangeLog Makefile.am ... Message-ID: <20071011140651.18689.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-11 14:06:51 Modified files: libunwind : ChangeLog Makefile.am configure.in libunwind/include/tdep-ppc64: libunwind_i.h libunwind/src : Makefile.am libunwind/src/ppc64: Gstep.c init.h setcontext.S libunwind/src/ptrace: _UPT_reg_offset.c libunwind/tests: flush-cache.S ia64-dyn-asm.S ia64-test-nat-asm.S ia64-test-rbs-asm.S ia64-test-readonly-asm.S ia64-test-stack-asm.S Added files: libunwind/include: libunwind-ppc32.h libunwind/include/tdep-ppc32: dwarf-config.h jmpbuf.h libunwind_i.h libunwind/src/ppc: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Linit_local.c Linit_remote.c Lis_signal_frame.c longjmp.S siglongjmp.S libunwind/src/ppc32: Gglobal.c Ginit.c Gregs.c Gresume.c Gstep.c Lglobal.c Linit.c Lregs.c Lresume.c Lstep.c Make-arch.in get_func_addr.c init.h is_fpreg.c regname.c setcontext.S ucontext_i.h unwind_i.h Removed files: libunwind/src/ppc64: Gcreate_addr_space.c Gget_proc_info.c Gget_save_loc.c Ginit_local.c Ginit_remote.c Gis_signal_frame.c Lcreate_addr_space.c Lget_proc_info.c Lget_save_loc.c Linit_local.c Linit_remote.c Lis_signal_frame.c longjmp.S siglongjmp.S Log message: * Imported and merged with libunwind 20071010. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.65&r2=1.66 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/Makefile.am.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/configure.in.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/libunwind-ppc32.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/dwarf-config.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/jmpbuf.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/libunwind_i.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc64/libunwind_i.h.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/Makefile.am.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Ginit_local.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Ginit_remote.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Linit_local.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Linit_remote.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/longjmp.S.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/siglongjmp.S.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gglobal.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Ginit.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gregs.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gresume.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Gstep.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lglobal.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Linit.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lregs.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lresume.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Lstep.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Make-arch.in.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/get_func_addr.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/init.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/is_fpreg.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/regname.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/setcontext.S.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/ucontext_i.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/unwind_i.h.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gstep.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/init.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/setcontext.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gcreate_addr_space.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gget_proc_info.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gget_save_loc.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit_local.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit_remote.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Gis_signal_frame.c.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lcreate_addr_space.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lget_proc_info.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lget_save_loc.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Linit_local.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Linit_remote.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Lis_signal_frame.c.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/longjmp.S.diff?cvsroot=frysk&r1=1.6&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/siglongjmp.S.diff?cvsroot=frysk&r1=1.7&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ptrace/_UPT_reg_offset.c.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/flush-cache.S.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-dyn-asm.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-nat-asm.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-rbs-asm.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-readonly-asm.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/tests/ia64-test-stack-asm.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 From tthomas@sourceware.org Thu Oct 11 14:08:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 11 Oct 2007 14:08:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog expr/Chan ... Message-ID: <20071011140842.27151.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-11 14:08:42 Modified files: frysk/debuginfo: ChangeLog frysk/expr : ChangeLog Log message: Fixed commit dates. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.208&r2=1.209 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.78&r2=1.79 From cagney@sourceware.org Thu Oct 11 15:57:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 11 Oct 2007 15:57:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog TestBreakpoints ... Message-ID: <20071011155719.17297.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-11 15:57:19 Modified files: frysk/hpd : ChangeLog TestBreakpoints.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-11 Andrew Cagney * TestBreakpoints.java: Mark as unresolved; 5165. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.116&r2=1.117 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 From cagney@sourceware.org Thu Oct 11 16:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 11 Oct 2007 16:49:00 -0000 Subject: frysk-core/frysk/proc ChangeLog IndirectBankRe ... Message-ID: <20071011164918.1747.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-11 16:49:18 Modified files: frysk/proc : ChangeLog IndirectBankRegisterMap.java IsaIA32.java IsaPPC.java IsaPPC64.java IsaPowerPC.java IsaX8664.java LinuxIa32On64.java LinuxPPC32On64.java Added files: frysk/proc : AbstractRegisterBanksFactory.java PPCRegisterBanksFactory.java X86RegisterBanksFactory.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-11 Andrew Cagney * PPCRegisterBanksFactory.java: New. * X86RegisterBanksFactory.java: New. * AbstractRegisterBanksFactory.java: New. * IndirectBankRegisterMap.java (IndirectBankRegisterMap(ByteOrder, BankRegisterMap,BankRegisterMap)): New. (map32, map64): Replace isa32 and isa64; update references. (IndirectBankRegisterMap(Isa,Isa)): Delete. * IsaPPC64.java (IsaPPC64()): Delete. (getRegisterByName(String)): New. * IsaPowerPC.java (registerMap): Delete. (getRegisterByName(String)): Delete. * IsaPPC.java (IsaPPC()): Delete. (getRegisterByName(String)): New. * LinuxPPC32On64.java (registerMap): Delete. (LinuxPPC32On64()): Delete. (getRegisterByName(String)): Use X86RegisterBanksFactory.PPC32_ON_PPC64. * LinuxIa32On64.java (registerMap): Delete. (LinuxIa32On64()): Delete. (getRegisterByName(String)): Use X86RegisterBanksFactory.IA32_ON_X8664.. * IsaX8664.java (registerMap): Delete. (IsaX8664()): Delete. (getRegisterByName(String)): Use X86RegisterBanksFactory.X8664. * IsaIA32.java (registerMap): Delete. (IsaIA32()): Delete. (getRegisterByName(String)): Use X86RegisterBanksFactory.IA32. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/AbstractRegisterBanksFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/PPCRegisterBanksFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/X86RegisterBanksFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.826&r2=1.827 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPowerPC.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.26&r2=1.27 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32On64.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC32On64.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cmoller@sourceware.org Thu Oct 11 17:35:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Thu, 11 Oct 2007 17:35:00 -0000 Subject: frysk-utrace/utracer ChangeLog udb-response.c ... Message-ID: <20071011173553.32359.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-11 17:35:53 Modified files: utracer : ChangeLog udb-response.c udb.c utracer/judb : Judb.java Makefile Utrace.java utracer/judb/cni: Utrace.cxx utracer/utracer: ChangeLog utracer/utracer/include: utracer.h utracer/utracer/module: utracer-base.c utracer-cf-io.c utracer-if-io.c utracer-ioctl.c utracer-private.h utracer/utracer/utracer: utracer.c Log message: * udb-response.c: Added LKM-initiated shutdown. * udb.c: Replaced pthread_cancel shutdown of the listener thread with synchronised shutdown via LKM-initiated shutdown. * module/utracer-base.c: Replaced direct manipulation of de_utrace_control->proc_fops with manipulation a copy thereof--reflects a change in the 2.6.22 kernel. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.45&r2=1.46 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb-response.c.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/udb.c.diff?cvsroot=frysk&r1=1.29&r2=1.30 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Judb.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Makefile.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Utrace.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/cni/Utrace.cxx.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/ChangeLog.diff?cvsroot=frysk&r1=1.42&r2=1.43 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/include/utracer.h.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/module/utracer-base.c.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/module/utracer-cf-io.c.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/module/utracer-if-io.c.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/module/utracer-ioctl.c.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/module/utracer-private.h.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/utracer/utracer.c.diff?cvsroot=frysk&r1=1.16&r2=1.17 From cmoller@sourceware.org Thu Oct 11 18:14:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Thu, 11 Oct 2007 18:14:00 -0000 Subject: frysk-utrace/utracer/judb ChangeLog Makefile U ... Message-ID: <20071011181426.25069.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-11 18:14:26 Modified files: utracer/judb : ChangeLog Makefile Utrace.java utracer/judb/cni: Utrace.cxx Added files: utracer/judb : ResponseListener.java Log message: * ResponseListener.java: New file--should have added it a long time ago, but forgot. * cni/Utrace.cxx: * Utrace.java: Added crummy i/f to retrieve sync type--Java is clueless about unions and this way is quicker to implement than the abstract class weirdness/workaround some Sun guy suggested. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/ResponseListener.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/ChangeLog.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Makefile.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/Utrace.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/judb/cni/Utrace.cxx.diff?cvsroot=frysk&r1=1.3&r2=1.4 From cagney@sourceware.org Thu Oct 11 19:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 11 Oct 2007 19:01:00 -0000 Subject: frysk-core/frysk/proc BankRegister.java Change ... Message-ID: <20071011190159.14899.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-11 19:01:59 Modified files: frysk/proc : BankRegister.java ChangeLog IndirectBankRegisterMap.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-11 Andrew Cagney * IndirectBankRegisterMap.java (add(String,long)): Delete putBigInteger(Task,BigInteger) from nested class. * BankRegister.java (putBigIntege(Task,BigInteger)): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.827&r2=1.828 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From swagiaal@sourceware.org Thu Oct 11 19:18:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 11 Oct 2007 19:18:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071011191834.492.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-11 19:18:34 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog frysk/scopes : Scope.java Subprogram.java TestDie.java Variable.java frysk/value : ChangeLog Added files: frysk/debuginfo: ObjectDeclarationSearchEngine.java TestObjectDeclarationSearchEngine.java frysk/value : ObjectDeclaration.java Removed files: frysk/debuginfo: CxxObjectSearchEngine.java TestCxxObjectSearchEngine.java Log message: Index: frysk-core/ChangeLog +2007-10-11 Sami Wagiaalla + + * frysk/scopes/Variable.java: No longer implements CxxObject. + Now extends ObjectDeclaration. + * frysk/scopes/Scope.java: Updated. + * frysk/scopes/Subprogram.java: Updated. + * frysk/scopes/TestDie.java: Updated + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-11 Sami Wagiaalla + + * TestCxxObjectSearchEngine.java: Renamed to... + * TestObjectDeclarationSearchEngine.java: ... this. + * CxxObjectSearchEngine.java: Renamed to... + * ObjectDeclarationSearchEngine.java: ...this. + Index: frysk-core/frysk/value/ChangeLog +2007-10-11 Sami Wagiaalla + + * ObjectDeclaration.java: New file. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.330&r2=1.331 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.209&r2=1.210 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/CxxObjectSearchEngine.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestCxxObjectSearchEngine.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subprogram.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestDie.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Variable.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ObjectDeclaration.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.146&r2=1.147 From swagiaal@sourceware.org Thu Oct 11 19:57:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 11 Oct 2007 19:57:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog TestObjec ... Message-ID: <20071011195725.20081.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-11 19:57:25 Modified files: frysk/debuginfo: ChangeLog TestObjectDeclarationSearchEngine.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-11 Sami Wagiaalla + + * TestObjectDeclarationSearchEngine.java (testFindTwoScopesEnum): Marked + test as unresolved. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.210&r2=1.211 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Thu Oct 11 22:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 11 Oct 2007 22:19:00 -0000 Subject: frysk-core/frysk/proc BankRegister.java ChangeLog Message-ID: <20071011221934.11579.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-11 22:19:34 Modified files: frysk/proc : BankRegister.java ChangeLog Log message: 2007-10-11 Andrew Cagney * BankRegister.java (put(Task,long)): Make package-private. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.828&r2=1.829 From cagney@sourceware.org Thu Oct 11 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 11 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071011235102.26414.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-11 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.696&r2=1.697 From cagney@sourceware.org Fri Oct 12 14:14:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 14:14:00 -0000 Subject: frysk-core/frysk proc/BankRegister.java proc/C ... Message-ID: <20071012141430.6388.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 14:14:30 Modified files: frysk/proc : BankRegister.java ChangeLog Task.java TestRegs.java frysk/proc/dead: ChangeLog LinuxExeTask.java LinuxTask.java frysk/proc/dummy: ChangeLog Task.java frysk/proc/live: ChangeLog LinuxTask.java frysk/stack : ChangeLog LibunwindAddressSpace.java frysk/util : ChangeLog LinuxElfCorefilePPC32.java LinuxElfCorefilePPC64.java LinuxElfCorefilex86.java LinuxElfCorefilex8664.java TestFCore.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-12 Andrew Cagney * Task.java (access(Register,int,int,byte[],int,boolean)): Rename accessRegister(...). (registerBuffers): Rename registerBanks. (getRegisterBuffersFIXME()): Rename getRegisterBanks(). (sendrecRegisterBuffersFIXME()): Rename sendrecRegisterBanks(). * BankRegister.java: Update. * TestRegs.java: Update. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-12 Andrew Cagney * LinuxExeTask.java: Update; renamed sendrecRegisterBanks() to sendrecRegisterBuffersFIXME. * LinuxTask.java: Ditto. Index: frysk-core/frysk/proc/dummy/ChangeLog 2007-10-12 Andrew Cagney * Task.java: Update; renamed sendrecRegisterBanks() to sendrecRegisterBuffersFIXME. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-12 Andrew Cagney * LinuxTask.java: Update; renamed sendrecRegisterBanks() to sendrecRegisterBuffersFIXME. Index: frysk-core/frysk/stack/ChangeLog 2007-10-12 Andrew Cagney * LibunwindAddressSpace.java: Update; Task.accessRegister renamed to Task.access. Index: frysk-core/frysk/util/ChangeLog 2007-10-12 Andrew Cagney * LinuxElfCorefilePPC32.java: Update; Task .getRegisterBanks renamed to getRegisterBuffersFIXME. * LinuxElfCorefilePPC64.java: Ditto. * LinuxElfCorefilex8664.java: Ditto. * LinuxElfCorefilex86.java: Ditto. * TestFCore.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.829&r2=1.830 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.148&r2=1.149 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegs.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.35&r2=1.36 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeTask.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/ChangeLog.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/Task.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxTask.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.74&r2=1.75 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindAddressSpace.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.190&r2=1.191 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC32.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC64.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex86.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex8664.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/TestFCore.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 From cagney@sourceware.org Fri Oct 12 14:34:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 14:34:00 -0000 Subject: frysk-core/frysk/proc BankRegisterMap.java Cha ... Message-ID: <20071012143413.16923.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 14:34:13 Modified files: frysk/proc : BankRegisterMap.java ChangeLog IsaIA32.java IsaPPC.java IsaPPC64.java IsaX8664.java LinuxIa32On64.java LinuxPPC32On64.java frysk/proc/dead: ChangeLog frysk/proc/live: ChangeLog Added files: frysk/proc : PPCBankRegisters.java RegisterBanks.java X86BankRegisters.java frysk/proc/dead: CorefileRegisterBanksFactory.java frysk/proc/live: PtraceRegisterBanksFactory.java Removed files: frysk/proc : AbstractRegisterBanksFactory.java PPCRegisterBanksFactory.java X86RegisterBanksFactory.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-12 Andrew Cagney * PPCBankRegisters.java: Rename PPCRegisterBanksFactory.java. * X86BankRegisters.java: Rename X86RegisterBanksFactory.java. * BankRegisterMap.java: Make public. * AbstractRegisterBanksFactory.java: Delete. * RegisterBanks.java: New. * IsaIA32.java: Update. * IsaPPC.java: Update. * IsaPPC64.java: Update. * IsaX8664.java: Update. * LinuxIa32On64.java: Update. * LinuxPPC32On64.java: Update. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-11 Andrew Cagney * CorefileRegisterBanksFactory.java: New. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-11 Andrew Cagney * PtraceRegisterBanksFactory.java: New file. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/PPCBankRegisters.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/RegisterBanks.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/X86BankRegisters.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegisterMap.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.830&r2=1.831 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.35&r2=1.36 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.27&r2=1.28 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32On64.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC32On64.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/AbstractRegisterBanksFactory.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/PPCRegisterBanksFactory.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/X86RegisterBanksFactory.java.diff?cvsroot=frysk&r1=1.1&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/CorefileRegisterBanksFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.19&r2=1.20 From cagney@sourceware.org Fri Oct 12 15:35:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 15:35:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071012153558.18308.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 15:35:58 Modified files: frysk/debuginfo: ChangeLog DebugInfo.java frysk/expr : CExpr.g ChangeLog TabException.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-12 Andrew Cagney * DebugInfo.java (printNoSymbolTable(String,boolean)): Do not catch/discard TabException. Index: frysk-core/frysk/expr/ChangeLog 2007-10-12 Andrew Cagney * TabException.java: Extend RuntimeException; make package private. * CExpr.g: Remove all explict throws of TabException. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.211&r2=1.212 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.39&r2=1.40 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExpr.g.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.79&r2=1.80 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TabException.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From swagiaal@sourceware.org Fri Oct 12 15:43:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 12 Oct 2007 15:43:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071012154353.21492.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-12 15:43:53 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog DebugInfo.java DebugInfoEvaluator.java TestAddress.java TestFrameDebugInfo.java TestObjectDeclarationSearchEngine.java frysk/expr : CExprAnnotator.g ChangeLog ExprSymTab.java frysk/scopes : Enumerator.java Scope.java Subprogram.java TestDie.java Added files: frysk/value : Variable.java Removed files: frysk/scopes : Variable.java Log message: Index: frysk-core/ChangeLog +2007-10-12 Sami Wagiaalla + + * frysk/scopes/Variable.java: Moved Variable.java + from frysk.scopes to frysk.value. + * frysk/scopes/TestDie.java: Updated. + * frysk/scopes/Subprogram.java: Updated. + * frysk/scopes/Scope.java: Updated. + * frysk/scopes/Enumerator.java: Updated. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-12 Sami Wagiaalla + + Moved Variable.java from frysk.scope to frysk.value. + * TestObjectDeclarationSearchEngine.java: Updated. + * TestFrameDebugInfo.java: Updated. + * TestAddress.java: Updated. + * DebugInfoEvaluator.java: Updated. + * DebugInfo.java: Updated. + Index: frysk-core/frysk/expr/ChangeLog +2007-10-12 Sami Wagiaalla + + Moved Variable.java from frysk.scope to frysk.value + * ExprSymTab.java: Updated. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.331&r2=1.332 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.212&r2=1.213 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.40&r2=1.41 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.92&r2=1.93 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestAddress.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.27&r2=1.28 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.80&r2=1.81 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumerator.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Subprogram.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/TestDie.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Variable.java.diff?cvsroot=frysk&r1=1.3&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Variable.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 From tthomas@sourceware.org Fri Oct 12 18:47:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 12 Oct 2007 18:47:00 -0000 Subject: frysk-core/frysk value/TypeDecorator.java valu ... Message-ID: <20071012184751.4549.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-12 18:47:51 Modified files: frysk/value : TypeDecorator.java TestComposite.java CompositeType.java ChangeLog Type.java frysk/expr : CExpr.g ChangeLog CExprEvaluator.g Log message: 2007-10-12 Teresa Thomas * CExpr.g: Add MEMBER. (DOT): Use MEMBER instead of REFERENCE. (astDotExpr): Delete. (AMPERSAND): Use postfix_expression. (STAR): Ditto. * CExprEvaluator.g (MEMBER): Implement. 2007-10-12 Teresa Thomas * TypeDecorator.java (member): New. * CompositeType.java (member): New. * Type.java (member): New. * TestComposite.java (testMember): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TypeDecorator.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TestComposite.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/CompositeType.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.147&r2=1.148 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Type.java.diff?cvsroot=frysk&r1=1.37&r2=1.38 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExpr.g.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.81&r2=1.82 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Fri Oct 12 19:12:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 19:12:00 -0000 Subject: frysk-core/frysk/expr ChangeLog Completer.g Message-ID: <20071012191202.21963.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 19:12:02 Modified files: frysk/expr : ChangeLog Added files: frysk/expr : Completer.g Log message: Index: frysk-core/frysk/expr/ChangeLog 2007-10-12 Andrew Cagney * Completer.g: New file. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/Completer.g.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.82&r2=1.83 From tthomas@sourceware.org Fri Oct 12 19:14:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 12 Oct 2007 19:14:00 -0000 Subject: frysk-core/frysk/expr ChangeLog CExprAnnotator.g Message-ID: <20071012191401.22338.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-12 19:14:01 Modified files: frysk/expr : ChangeLog CExprAnnotator.g Log message: 2007-10-12 Teresa Thomas * CExprAnnotator.g (MEMBER): Add. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.83&r2=1.84 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Fri Oct 12 19:16:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 19:16:00 -0000 Subject: frysk-core/frysk/proc ChangeLog Task.java dead ... Message-ID: <20071012191604.22915.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 19:16:04 Modified files: frysk/proc : ChangeLog Task.java frysk/proc/dead: ChangeLog LinuxExeTask.java LinuxTask.java frysk/proc/dummy: ChangeLog Task.java frysk/proc/live: ChangeLog LinuxTask.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-12 Andrew Cagney * Task.java (registerBanks): New. (sendrecRegisterBanks()): New. (getRegisterBanks()): New. (clearIsa()): Clear registerBanks and currentISA. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-12 Andrew Cagney * LinuxExeTask.java (sendrecRegisterBanks()): Implement. * LinuxTask.java (sendrecRegisterBanks()): Ditto. Index: frysk-core/frysk/proc/dummy/ChangeLog 2007-10-12 Andrew Cagney * Task.java (sendrecRegisterBanks()): Implement. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-12 Andrew Cagney * LinuxTask.java (sendrecRegisterBanks()): Implement. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.831&r2=1.832 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.149&r2=1.150 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.37&r2=1.38 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeTask.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/ChangeLog.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/Task.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxTask.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 From cagney@sourceware.org Fri Oct 12 20:02:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 20:02:00 -0000 Subject: frysk-core/frysk ftrace/Archx86.java ftrace/Ar ... Message-ID: <20071012200206.8210.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 20:02:06 Modified files: frysk/ftrace : Archx86.java Archx8664.java ChangeLog frysk/isa : ChangeLog IA32Registers.java X8664Registers.java frysk/proc : BankRegister.java ChangeLog IndirectBankRegisterMap.java IsaIA32.java IsaPPC.java IsaPPC64.java IsaPowerPC.java IsaX8664.java LinuxIa32.java LinuxIa32Syscall.java LinuxPPC.java LinuxPPC64.java LinuxPowerPCSyscall.java LinuxX8664.java LinuxX8664Syscall.java Task.java TestRegisters.java frysk/proc/dead: ChangeLog TestLinuxCore.java Added files: frysk/isa : PPC32Registers.java PPC64Registers.java Log message: Index: frysk-core/frysk/ftrace/ChangeLog 2007-10-12 Andrew Cagney * Archx8664.java: Replace BankRegister .get(Task) with Task .get(Register); make constructor private. * Archx86.java: Ditto. Index: frysk-core/frysk/isa/ChangeLog 2007-10-12 Andrew Cagney * X8664Registers.java (DR0, DR1, DR2, DR3): Add. (DR4, DR5, DR6, DR7): Add. * PPC64Registers.java: New file. * PPC32Registers.java: New file. * IA32Registers.java (D0, D1, D2, D3, D4, D5, D6, D7): Add. (ORIG_EAX): Add. Index: frysk-core/frysk/proc/ChangeLog 2007-10-12 Andrew Cagney * BankRegister.java (getFIXME(Task)): Rename get(Task). (putFIXME(Task)): Rename put(Task). * IsaIA32.java: Update; use Task .getRegister, and IA32Registers. * IsaX8664.java: Same with X8664Registers. * LinuxIa32.java: Same. * LinuxIa32Syscall.java: Same. * LinuxX8664.java: Same. * LinuxX8664Syscall.java: Same. * IsaPowerPC.java Same. (IsaPowerPC(Register)): New constructor. (NIP): New final field. * IsaPPC.java: Update. * IsaPPC64.java: Update. * LinuxPowerPCSyscall.java: Update. * LinuxPPC64.java: Update. * LinuxPPC.java: Update. * IndirectBankRegisterMap.java: Update. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-12 Andrew Cagney * TestLinuxCore.java: Update; Use Task.getRegister and Task.getBankRegisterByName. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/Archx86.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/Archx8664.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/PPC32Registers.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/PPC64Registers.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/IA32Registers.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/X8664Registers.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.832&r2=1.833 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.19&r2=1.20 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPowerPC.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.28&r2=1.29 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32Syscall.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC64.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPowerPCSyscall.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxX8664.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxX8664Syscall.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.150&r2=1.151 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegisters.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.38&r2=1.39 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/TestLinuxCore.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 From cagney@sourceware.org Fri Oct 12 20:58:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 20:58:00 -0000 Subject: frysk-core/frysk/expr ChangeLog Completer.g Message-ID: <20071012205848.8933.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 20:58:47 Modified files: frysk/expr : ChangeLog Completer.g Log message: Index: frysk-core/frysk/expr/ChangeLog 2007-10-12 Andrew Cagney * Completer.g: Delete unused variables. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.84&r2=1.85 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/Completer.g.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Fri Oct 12 21:53:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 21:53:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071012215305.26224.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 21:53:05 Modified files: frysk/debuginfo: ChangeLog DebugInfo.java DebugInfoEvaluator.java frysk/expr : CExprAnnotator.g CExprEvaluator.g ChangeLog ExprSymTab.java frysk/hpd : BreakpointCommand.java CLI.java ChangeLog DisassembleCommand.java ExamineCommand.java ListCommand.java PlocationCommand.java PrintCommand.java PtypeCommand.java WhatCommand.java frysk/rt : ChangeLog DisplayValue.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-12 Andrew Cagney * DebugInfo.java: Update; do not throw NameNotFoundException. Do not use CExprAnnotator. * DebugInfoEvaluator.java: Ditto. Index: frysk-core/frysk/expr/ChangeLog 2007-10-12 Andrew Cagney * ExprSymTab.java (getValue(String)): Do not throw NameNotFoundException. (getVariable(String)): Ditto. (getValueFIXME(String)): Ditto. * CExprEvaluator.g: Ditto; ditto for OperationNotDefinedException and InvalidOperatorException. * CExprAnnotator.g: Ditto. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-12 Andrew Cagney * CLI.java: Do not catch, throw, or ignore NameNotFoundException. * BreakpointCommand.java: Ditto. * ListCommand.java: Ditto. * ExamineCommand.java: Ditto. * DisassembleCommand.java: Ditto. * PlocationCommand.java: Ditto. * PrintCommand.java: Ditto. * PtypeCommand.java: Ditto. * WhatCommand.java: Ditto. Index: frysk-core/frysk/rt/ChangeLog 2007-10-12 Andrew Cagney * DisplayValue.java: Update; catch RuntimeException instead of NameNotFoundException. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.213&r2=1.214 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.41&r2=1.42 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.93&r2=1.94 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.85&r2=1.86 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/BreakpointCommand.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CLI.java.diff?cvsroot=frysk&r1=1.33&r2=1.34 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.117&r2=1.118 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/DisassembleCommand.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ExamineCommand.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ListCommand.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/PlocationCommand.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/PrintCommand.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/PtypeCommand.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/WhatCommand.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/rt/ChangeLog.diff?cvsroot=frysk&r1=1.362&r2=1.363 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/rt/DisplayValue.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 From cagney@sourceware.org Fri Oct 12 22:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 22:39:00 -0000 Subject: frysk-core/frysk/proc ChangeLog Task.java Message-ID: <20071012223914.30845.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-12 22:39:14 Modified files: frysk/proc : ChangeLog Task.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-12 Andrew Cagney * Task.java (useRegisterBanksXXX): New. (getRegister(Register)): Check. (setRegister(Register)): Check. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.833&r2=1.834 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.151&r2=1.152 From cagney@sourceware.org Fri Oct 12 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 12 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071012235102.21702.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-12 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.697&r2=1.698 From mark@sourceware.org Sat Oct 13 14:17:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Sat, 13 Oct 2007 14:17:00 -0000 Subject: frysk-imports ./ChangeLog ./Makefile.am ./boot ... Message-ID: <20071013141702.914.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-13 14:17:02 Modified files: . : ChangeLog Makefile.am bootstrap.sh configure.ac . : ChangeLog m4 : frysk-use-libunwind.m4 libunwind : ChangeLog libunwind/include/tdep-ppc32: libunwind_i.h libunwind/include/tdep-ppc64: libunwind_i.h libunwind/src : Makefile.am libunwind/src/ppc32: Ginit.c ucontext_i.h libunwind/src/ppc64: Ginit.c Added files: libunwind/src/ppc: Gfetch_proc_info_post.c Lfetch_proc_info_post.c Log message: frysk-imports/libunwind/ChangeLog: 2007-10-12 Mark Wielaard * src/ppc32/ucontext_i.h: Use locally defined reg structs. 2007-10-12 Jose Flavio Aguilar Paulino * include/tdep-ppc32/libunwind_i.h: Define tdep_fetch_proc_info_post. (tdep_get_elf_image): Add void *arg argument. * include/tdep-ppc64/libunwind_i.h: Likewise. * src/Makefile.am (libunwind_la_SOURCES_ppc): Add ppc/Lfetch_proc_info_post.c. (libunwind_ppc_la_SOURCES_ppc_generic): Add ppc/Gfetch_proc_info_post.c. * src/ppc/Gfetch_proc_info_post.c: New file. * src/ppc/Lfetch_proc_info_post.c: New file. * src/ppc32/Ginit.c (get_static_proc_name): Pass through arg. * src/ppc64/Ginit.c (get_static_proc_name): Likewise. frysk-imports/ChangeLog: 2007-10-12 Mark Wielaard * Makefile.am: Set LIBUNWIND_ARCH_DIR, LIBUNWIND_OTHER_DIRS and GEN_GCJ_LDADD_LIST to include ppc32 target. * bootstrap.sh: Add ppc32 to isa list. common/ChangeLog: 2007-10-12 Mark Wielaard * m4/frysk-use-libunwind.m4: Check for and transform powerpc target to ppc32. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/ChangeLog.diff?cvsroot=frysk&r1=1.188&r2=1.189 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/Makefile.am.diff?cvsroot=frysk&r1=1.94&r2=1.95 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/bootstrap.sh.diff?cvsroot=frysk&r1=1.29&r2=1.30 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/configure.ac.diff?cvsroot=frysk&r1=1.74&r2=1.75 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/ChangeLog.diff?cvsroot=frysk&r1=1.428&r2=1.429 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/m4/frysk-use-libunwind.m4.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.66&r2=1.67 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc32/libunwind_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/include/tdep-ppc64/libunwind_i.h.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/Makefile.am.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Gfetch_proc_info_post.c.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc/Lfetch_proc_info_post.c.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/Ginit.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc32/ucontext_i.h.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/src/ppc64/Ginit.c.diff?cvsroot=frysk&r1=1.7&r2=1.8 From mark@sourceware.org Sat Oct 13 18:18:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Sat, 13 Oct 2007 18:18:00 -0000 Subject: frysk-gui/frysk/gui/srcwin ChangeLog InlineBuf ... Message-ID: <20071013181824.2604.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: mark@sourceware.org 2007-10-13 18:18:24 Modified files: frysk/gui/srcwin: ChangeLog InlineBuffer.java InlineSourceView.java SourceBuffer.java SourceView.java Log message: * SourceView.java (clickedOnTextArea): Don't catch NameNotFoundException. * SourceBuffer.java (getVariable): Likewise. * InlineSourceView.java (mouseEvent): Likewise. * InlineBuffer.java (getVariable): Likewise. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/ChangeLog.diff?cvsroot=frysk&r1=1.522&r2=1.523 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/InlineBuffer.java.diff?cvsroot=frysk&r1=1.52&r2=1.53 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/InlineSourceView.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/SourceBuffer.java.diff?cvsroot=frysk&r1=1.139&r2=1.140 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/SourceView.java.diff?cvsroot=frysk&r1=1.64&r2=1.65 From mark@sourceware.org Sat Oct 13 18:32:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Sat, 13 Oct 2007 18:32:00 -0000 Subject: frysk-imports ./.cvsignore ./ChangeLog libunwi ... Message-ID: <20071013183236.8075.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: mark@sourceware.org 2007-10-13 18:32:36 Modified files: . : .cvsignore ChangeLog libunwind : ChangeLog Added files: libunwind/config: .cvsignore Log message: frysk-imports/ChangeLog 2007-10-13 Mark Wielaard * .cvsignore: Add libunwind-ppc32. frysk-imports/libunwind/ChangeLog 2007-10-13 Mark Wielaard * config/.cvsignore: New. Ignore generated files. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/.cvsignore.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/ChangeLog.diff?cvsroot=frysk&r1=1.189&r2=1.190 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/ChangeLog.diff?cvsroot=frysk&r1=1.67&r2=1.68 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/libunwind/config/.cvsignore.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cagney@sourceware.org Sat Oct 13 18:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 13 Oct 2007 18:40:00 -0000 Subject: frysk-core/frysk/proc ChangeLog RegisterBanks. ... Message-ID: <20071013184047.11018.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-13 18:40:47 Modified files: frysk/proc : ChangeLog RegisterBanks.java Task.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-13 Andrew Cagney * Task.java (useRegisterBanksXXX): Set to true. * RegisterBanks.java (findBankRegister(Register)): New. (set(Register,long)): Use (get(Register)): Use. (access(Register,long,long,byte[],int,boolean)): Use. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.834&r2=1.835 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/RegisterBanks.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.152&r2=1.153 From cagney@sourceware.org Sat Oct 13 21:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 13 Oct 2007 21:05:00 -0000 Subject: frysk-core/frysk/proc ChangeLog IndirectBankRe ... Message-ID: <20071013210557.27840.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-13 21:05:57 Modified files: frysk/proc : ChangeLog IndirectBankRegisterMap.java PPCBankRegisters.java X86BankRegisters.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-13 Andrew Cagney * IndirectBankRegisterMap.java (add(Register)): Delete. (add(String,String)): Check for null. (add(Register,Register)): Delete. (add(Register,long)): Delete. (add(Register[])): Delete. (add(String,long)): Check for null. * PPCBankRegisters.java: Replace some strings with PPC32Registers and PPC64Registers. * X86BankRegisters.java: Replace more strings with IA32Registers or X8664Registers constants. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.835&r2=1.836 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IndirectBankRegisterMap.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/PPCBankRegisters.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/X86BankRegisters.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Sat Oct 13 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 13 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071013235102.3656.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-13 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.698&r2=1.699 From cagney@sourceware.org Sun Oct 14 01:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 01:05:00 -0000 Subject: frysk-core/frysk/proc BankRegister.java Change ... Message-ID: <20071014010507.30995.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 01:05:07 Modified files: frysk/proc : BankRegister.java ChangeLog Task.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-13 Andrew Cagney * BankRegister.java (getBytesFIXME(Task)): Rename getBytes(Task). * Task.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.836&r2=1.837 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.153&r2=1.154 From cagney@sourceware.org Sun Oct 14 14:23:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 14:23:00 -0000 Subject: frysk-core/frysk/proc ChangeLog Task.java Message-ID: <20071014142310.7504.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 14:23:10 Modified files: frysk/proc : ChangeLog Task.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * Task.java (access(Register,long,long,byte[],int,boolean)): Use RegisterBanks when useRegisterBanksXXX. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.837&r2=1.838 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.154&r2=1.155 From cagney@sourceware.org Sun Oct 14 14:48:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 14:48:00 -0000 Subject: frysk-gui/frysk proc/ChangeLog proc/Isa.java p ... Message-ID: <20071014144859.15605.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-14 14:48:59 Modified files: frysk/proc : ChangeLog Isa.java IsaIA32.java IsaPPC.java IsaPPC64.java IsaPowerPC.java IsaX8664.java LinuxPowerPCSyscall.java TestMemory.java frysk/proc/dead: ChangeLog LinuxTask.java frysk/proc/live: ChangeLog LinuxTask.java frysk/util : ChangeLog LinuxElfCorefile.java TestFCore.java frysk/gui : ChangeLog frysk/gui/disassembler: DisassemblyWindow.java frysk/gui/memory: MemoryWindow.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * Isa.java (getWordSize()): Delete. (getByteOrder()): Delete. * IsaIA32.java: Update. * IsaPowerPC.java: Update. * IsaPPC64.java: Update. * IsaPPC.java: Update. * IsaX8664.java: Update. * LinuxPowerPCSyscall.java: Update. * TestMemory.java: Update. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-14 Andrew Cagney * LinuxTask.java: Update; Use ISA.order() and ISA.wordSize(). Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-14 Andrew Cagney * LinuxTask.java: Update; use ISA's order(). Index: frysk-core/frysk/util/ChangeLog 2007-10-14 Andrew Cagney * LinuxElfCorefile.java: Update; use ISA .order() and ISA .wordSize(). * TestFCore.java: Ditto. (getISA(Proc)): New. Index: frysk-gui/frysk/gui/ChangeLog 2007-10-14 Andrew Cagney * memory/MemoryWindow.java: Update; use ISA .wordSize(). * disassembler/DisassemblyWindow.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.838&r2=1.839 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Isa.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.37&r2=1.38 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPowerPC.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.29&r2=1.30 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPowerPCSyscall.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestMemory.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.39&r2=1.40 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxTask.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.191&r2=1.192 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefile.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/TestFCore.java.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.566&r2=1.567 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/disassembler/DisassemblyWindow.java.diff?cvsroot=frysk&r1=1.33&r2=1.34 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/memory/MemoryWindow.java.diff?cvsroot=frysk&r1=1.49&r2=1.50 From cagney@sourceware.org Sun Oct 14 15:23:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 15:23:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071014152310.32026.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 15:23:10 Modified files: frysk/debuginfo: ChangeLog DebugInfoEvaluator.java RegisterPiece.java TestLocationExpression.java frysk/hpd : ChangeLog TestPrint.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-14 Andrew Cagney * RegisterPiece.java (RegisterPiece(Register,long)): Delete. * DebugInfoEvaluator.java: Update. * TestLocationExpression.java: Update; use StackFactory. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-14 Andrew Cagney * TestPrint.java (testRegister()): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.214&r2=1.215 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.94&r2=1.95 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/RegisterPiece.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestLocationExpression.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.118&r2=1.119 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestPrint.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 From cagney@sourceware.org Sun Oct 14 16:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 16:49:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071014164936.2038.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 16:49:35 Modified files: frysk/debuginfo: ChangeLog TestLocationExpression.java frysk/ftrace : ArchFactory.java ChangeLog frysk/proc : ChangeLog Isa.java IsaIA32.java IsaPPC.java IsaPPC64.java IsaX8664.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-14 Andrew Cagney * TestLocationExpression.java: Update; use Task .getISA instead of Isa .getElfMachineType(). Index: frysk-core/frysk/ftrace/ChangeLog 2007-10-14 Andrew Cagney * ArchFactory.java: Update; use Task .getISA() instead of Isa .getElfMachineType(). Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * Isa.java (getElfMachineType()): Delete. * IsaIA32.java: Update. * IsaPPC64.java: Update. * IsaPPC.java: Update. * IsaX8664.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.215&r2=1.216 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestLocationExpression.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ArchFactory.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.839&r2=1.840 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Isa.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.38&r2=1.39 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.30&r2=1.31 From cagney@sourceware.org Sun Oct 14 17:14:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 17:14:00 -0000 Subject: frysk-core/frysk/proc ChangeLog TestRegisters. ... Message-ID: <20071014171430.14305.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 17:14:30 Modified files: frysk/proc : ChangeLog TestRegisters.java Removed files: frysk/proc : MachineType.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * MachineType.java: Delete. * TestRegisters.java: Use Task.getISA(). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.840&r2=1.841 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegisters.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/MachineType.java.diff?cvsroot=frysk&r1=1.3&r2=NONE From cagney@sourceware.org Sun Oct 14 18:15:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 18:15:00 -0000 Subject: frysk-core/frysk/stack ChangeLog FrameIdentifi ... Message-ID: <20071014181543.7197.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 18:15:43 Modified files: frysk/stack : ChangeLog FrameIdentifier.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-14 Andrew Cagney * FrameIdentifier.java: Re-indent; make members final. (getCfa()): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.75&r2=1.76 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameIdentifier.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Sun Oct 14 19:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 19:06:00 -0000 Subject: frysk-core/frysk/proc ChangeLog LinuxPPC.java ... Message-ID: <20071014190601.19430.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 19:06:01 Modified files: frysk/proc : ChangeLog LinuxPPC.java LinuxPPC32On64.java LinuxPPC64.java Removed files: frysk/proc : IsaPPC.java IsaPPC64.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * LinuxPPC32On64.java (isa64): Delete. (getRegisterBankBuffers(int)): Delete. * IsaPPC64.java: Delete. * IsaPPC.java: Delete. * LinuxPPC.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.841&r2=1.842 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC32On64.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC64.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC.java.diff?cvsroot=frysk&r1=1.19&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaPPC64.java.diff?cvsroot=frysk&r1=1.22&r2=NONE From cagney@sourceware.org Sun Oct 14 20:17:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 20:17:00 -0000 Subject: frysk-gui/frysk/gui ChangeLog memory/MemoryWin ... Message-ID: <20071014201758.17750.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-14 20:17:58 Modified files: frysk/gui : ChangeLog frysk/gui/memory: MemoryWindow.java frysk/gui/monitor: ChangeLog frysk/gui/monitor/actions: ShowMemWin.java frysk/gui/srcwin: ChangeLog SourceWindow.java Log message: Index: frysk-gui/frysk/gui/ChangeLog 2007-10-14 Andrew Cagney * memory/MemoryWindow.java (setTask(Task)): Use Task.getISA() instead of instanceof. Index: frysk-gui/frysk/gui/monitor/ChangeLog 2007-10-14 Andrew Cagney * actions/ShowMemWin.java: Delete instanceof checks for frysk.proc.IsaX8664 and frysk.proc.IsaPPC64. Index: frysk-gui/frysk/gui/srcwin/ChangeLog 2007-10-14 Andrew Cagney * SourceWindow.java: Delete instanceof tests. (getProcIsa()): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.567&r2=1.568 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/memory/MemoryWindow.java.diff?cvsroot=frysk&r1=1.50&r2=1.51 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/monitor/ChangeLog.diff?cvsroot=frysk&r1=1.478&r2=1.479 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/monitor/actions/ShowMemWin.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/ChangeLog.diff?cvsroot=frysk&r1=1.523&r2=1.524 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/SourceWindow.java.diff?cvsroot=frysk&r1=1.286&r2=1.287 From cagney@sourceware.org Sun Oct 14 21:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 21:04:00 -0000 Subject: frysk-core/frysk/stepping ChangeLog TestSteppi ... Message-ID: <20071014210359.1195.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 21:03:59 Modified files: frysk/stepping : ChangeLog TestStepping.java Log message: Index: frysk-core/frysk/stepping/ChangeLog 2007-10-14 Andrew Cagney * TestStepping.java: Use assertEquals. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/ChangeLog.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/TestStepping.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 From cagney@sourceware.org Sun Oct 14 22:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 22:26:00 -0000 Subject: frysk-core/frysk/stepping ChangeLog TestSteppi ... Message-ID: <20071014222605.8303.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 22:26:05 Modified files: frysk/stepping : ChangeLog TestStepping.java TestSteppingEngine.java Log message: Index: frysk-core/frysk/stepping/ChangeLog 2007-10-14 Andrew Cagney * TestSteppingEngine.java (AssertLine): New; use. Use assertEquals. * TestStepping.java (AssertLine): New; use through out. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/ChangeLog.diff?cvsroot=frysk&r1=1.26&r2=1.27 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/TestStepping.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/TestSteppingEngine.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 From cagney@sourceware.org Sun Oct 14 22:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 22:26:00 -0000 Subject: frysk-core/frysk/proc ChangeLog IsaX8664.java ... Message-ID: <20071014222650.8551.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 22:26:50 Modified files: frysk/proc : ChangeLog IsaX8664.java RegisterBanks.java Task.java Log message: Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * RegisterBanks.java (getBankRegister(String)): New. * Task.java (getBankRegister()): Delete. (getBigIntegerRegisterFIXME(String)): Update. * IsaX8664.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.842&r2=1.843 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.31&r2=1.32 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/RegisterBanks.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.155&r2=1.156 From cagney@sourceware.org Sun Oct 14 22:46:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 22:46:00 -0000 Subject: frysk-sys frysk/stack/ChangeLog frysk/stack/Li ... Message-ID: <20071014224617.13693.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: cagney@sourceware.org 2007-10-14 22:46:17 Modified files: frysk/stack : ChangeLog LibunwindFrame.java frysk/stepping : ChangeLog TestStepping.java TestSteppingEngine.java lib/unwind : ChangeLog Cursor.java Unwind.java lib/unwind/cni : UnwindH.hxx Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-14 Andrew Cagney * LibunwindFrame.java (getLibunwindOuter()): New. (getFrameIdentifier()): Use the outer frame's SP as the CFA. Index: frysk-core/frysk/stepping/ChangeLog 2007-10-14 Andrew Cagney * TestSteppingEngine.java (testInstructionNext()): Call stepNextInstruction. * TestStepping.java (testASMFunctionStepOver()): Start at _stepASMFunctionCall_. Index: frysk-sys/lib/unwind/ChangeLog 2007-10-14 Andrew Cagney * Unwind.java (getSP(RawDataManaged)): Relace getSP(RawDataManaged,byte[]). * cni/UnwindH.hxx (getSP): Update. * Cursor.java (getSP()): Replace getSP(byte[]). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.76&r2=1.77 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/ChangeLog.diff?cvsroot=frysk&r1=1.27&r2=1.28 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/TestStepping.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stepping/TestSteppingEngine.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/ChangeLog.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/Cursor.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/Unwind.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/unwind/cni/UnwindH.hxx.diff?cvsroot=frysk&r1=1.5&r2=1.6 From cagney@sourceware.org Sun Oct 14 23:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 23:42:00 -0000 Subject: frysk-core/frysk pkglibdir/ChangeLog proc/Bank ... Message-ID: <20071014234234.3563.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-14 23:42:34 Modified files: frysk/pkglibdir: ChangeLog frysk/proc : BankRegister.java ChangeLog Isa.java IsaIA32.java IsaX8664.java LinuxIa32On64.java LinuxPPC.java LinuxPPC64.java LinuxPowerPCSyscall.java Task.java Removed files: frysk/pkglibdir: funit-registers.S frysk/proc : TestRegisters.java Log message: Index: frysk-core/frysk/pkglibdir/ChangeLog 2007-10-14 Andrew Cagney * funit-registers.S: Delete. Index: frysk-core/frysk/proc/ChangeLog 2007-10-14 Andrew Cagney * Isa.java (getRegisterByName(String)): Delete. * IsaIA32.java: Update. * IsaX8664.java: Update. * LinuxIa32On64.java: Update. * LinuxPPC64.java: Update. * LinuxPPC.java: Update. * Task.java (getRegister(Register)): Simplify. (setRegister(Register,long)): Simplify. (access(Register,int,int,byte[],int,boolean): Simplify. (useRegisterBanksXXX): Delete. (getBigIntegerRegisterFIXME(String)): Simplify. * TestRegisters.java: Delete. * BankRegister.java (getBytesFIXME(Task)): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.130&r2=1.131 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-registers.S.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/BankRegister.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.843&r2=1.844 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Isa.java.diff?cvsroot=frysk&r1=1.26&r2=1.27 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaIA32.java.diff?cvsroot=frysk&r1=1.39&r2=1.40 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/IsaX8664.java.diff?cvsroot=frysk&r1=1.32&r2=1.33 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxIa32On64.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPPC64.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/LinuxPowerPCSyscall.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Task.java.diff?cvsroot=frysk&r1=1.156&r2=1.157 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegisters.java.diff?cvsroot=frysk&r1=1.11&r2=NONE From cagney@sourceware.org Sun Oct 14 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 14 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071014235102.5691.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-14 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.699&r2=1.700 From jflavio@sourceware.org Mon Oct 15 15:16:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Mon, 15 Oct 2007 15:16:00 -0000 Subject: frysk-sys/lib/dwfl/cni ElfPrpsinfo.cxx ElfPrst ... Message-ID: <20071015151603.22460.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-sys Changes by: jflavio@sourceware.org 2007-10-15 15:16:03 Modified files: lib/dwfl/cni : ElfPrpsinfo.cxx ElfPrstatus.cxx Log message: Small fixes to support PowerPC 32/64 support. Defined the struct size to store the registers and fixed 2 minor compiling problems. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/cni/ElfPrpsinfo.cxx.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Mon Oct 15 18:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 15 Oct 2007 18:01:00 -0000 Subject: frysk-imports frysk/pkglibdir/ChangeLog frysk/ ... Message-ID: <20071015180147.24121.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: cagney@sourceware.org 2007-10-15 18:01:47 Modified files: frysk/pkglibdir: ChangeLog funit-regs.S frysk/proc : ChangeLog TestRegs.java frysk/stack : ChangeLog TestRegs.java frysk/testbed : ChangeLog RegsCase.java TestRegs.java elfutils/libdwfl: ChangeLog dwfl_module_addrsym.c Log message: Index: frysk-core/frysk/pkglibdir/ChangeLog 2007-10-15 Andrew Cagney * funit-regs.S (crash) [__i386__]: Set %eip by crashing at a known address. Index: frysk-core/frysk/proc/ChangeLog 2007-10-15 Andrew Cagney * TestRegs.java (taskObject(Task)): Delete. (access(Register,int,int,byte[],int,boolean)): Replace accessRegister(...). Index: frysk-core/frysk/stack/ChangeLog 2007-10-15 Andrew Cagney * TestRegs.java (taskObject(Task)): Delete. (access(Register,int,int,byte[],int,boolean)): Replace accessRegister(...). (setUp(), tearDown(), frame): New. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-15 Andrew Cagney * RegsCase.java (taskObject(Task)): Delete. (access(Register,int,int,byte[],int,boolean)): Relace accessRegister(Object,Register,int,int,byte[],int,boolean). (Value, ByteValue, BigIntegerValue, MaskedValue, SymbolValue) (NoValue): New. (Values): Replace ValueMap. (IA32): Provide values for EIP and maksed EFLAGS. * TestRegs.java: Update. Index: frysk-imports/elfutils/libdwfl/ChangeLog 2007-10-15 Andrew Cagney * dwfl_module_addrsym.c (dwfl_module_addrsym): Check for identical symbols. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.131&r2=1.132 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-regs.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.844&r2=1.845 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestRegs.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.77&r2=1.78 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/TestRegs.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.73&r2=1.74 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/TestRegs.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdwfl/ChangeLog.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/elfutils/libdwfl/dwfl_module_addrsym.c.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Mon Oct 15 19:34:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 15 Oct 2007 19:34:00 -0000 Subject: frysk-core/frysk/hpd AttachCommand.java Change ... Message-ID: <20071015193426.26279.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-15 19:34:26 Modified files: frysk/hpd : AttachCommand.java ChangeLog TestBreakpoints.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-15 Andrew Cagney * TestBreakpoints.java: Do not pass -cli to attach. * AttachCommand.java: Delete undocumented -cli option. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/AttachCommand.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.119&r2=1.120 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 From swagiaal@sourceware.org Mon Oct 15 19:52:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 15 Oct 2007 19:52:00 -0000 Subject: frysk-core ./ChangeLog frysk/debuginfo/ChangeL ... Message-ID: <20071015195254.1485.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-15 19:52:54 Modified files: . : ChangeLog frysk/debuginfo: ChangeLog TestObjectDeclarationSearchEngine.java frysk/scopes : Enumiration.java Scope.java frysk/value : ChangeLog EnumType.java Added files: frysk/value : Constant.java Log message: Index: frysk-core/ChangeLog +2007-10-15 Sami Wagiaalla + + * frysk/scopes/Scope.java (getDeclaredObjectByName): re-enabled + enum searching. + * frysk/scopes/Enumiration.java (getVariableByName): Now returns + an ObjectDeclaration instad of CxxObject. + Index: frysk-core/frysk/debuginfo/ChangeLog +2007-10-15 Sami Wagiaalla + + * TestObjectDeclarationSearchEngine.java (testFindTwoScopesEnum): Re-enabled + Index: frysk-core/frysk/value/ChangeLog +2007-10-15 Sami Wagiaalla + + * Constant.java: New. + * EnumType.java (Member.Member): Constructor now takes + a Type and a Value. + (Member.getType): New. + (Member.getValue): New. + (getMemberByName): Now returns ObjectDeclaration. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/ChangeLog.diff?cvsroot=frysk&r1=1.332&r2=1.333 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.216&r2=1.217 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumiration.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Constant.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.148&r2=1.149 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/EnumType.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 From cagney@sourceware.org Mon Oct 15 20:58:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 15 Oct 2007 20:58:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog HpdTestbed.java ... Message-ID: <20071015205819.7650.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-15 20:58:19 Modified files: frysk/hpd : ChangeLog HpdTestbed.java TestBreakpoints.java TestDisassemblerCommand.java TestDisplayCommand.java TestExamineCommand.java TestFhpdStepping.java TestPlocationCommand.java TestPrint.java TestRegs.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-15 Andrew Cagney * HpdTestbed.java (attachXXX(String)): New. (run(String)): New. (HpdTestbed(ProcessIdentifier)): Delete. (HpdTestbed(File)): Delete. * TestBreakpoints.java: Use. * TestDisassemblerCommand.java: Ditto. * TestPlocationCommand.java: Ditto. * TestExamineCommand.java: Ditto. * TestFhpdStepping.java: Ditto. * TestDisplayCommand.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.120&r2=1.121 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/HpdTestbed.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestDisassemblerCommand.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestDisplayCommand.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestExamineCommand.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestFhpdStepping.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestPlocationCommand.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestPrint.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestRegs.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 From tthomas@sourceware.org Mon Oct 15 21:05:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 15 Oct 2007 21:05:00 -0000 Subject: frysk-core/frysk/value PointerType.java Type.java Message-ID: <20071015210540.10218.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-15 21:05:40 Modified files: frysk/value : PointerType.java Type.java Log message: 2007-10-15 Teresa Thomas * Type.java (dereference): Remove implementation; throw exception. * PointerType.java (dereference): Implement here. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/PointerType.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Type.java.diff?cvsroot=frysk&r1=1.38&r2=1.39 From cagney@sourceware.org Mon Oct 15 21:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 15 Oct 2007 21:05:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog TestDisplayComm ... Message-ID: <20071015210548.10343.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-15 21:05:48 Modified files: frysk/hpd : ChangeLog TestDisplayCommand.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-15 Andrew Cagney * TestDisplayCommand.java: Remove unused import of Config. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.121&r2=1.122 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestDisplayCommand.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 From cagney@sourceware.org Mon Oct 15 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 15 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071015235102.23342.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-15 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.700&r2=1.701 From cagney@sourceware.org Tue Oct 16 02:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 16 Oct 2007 02:25:00 -0000 Subject: frysk-core/frysk/hpd CLI.java ChangeLog FrameC ... Message-ID: <20071016022512.2220.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-16 02:25:12 Modified files: frysk/hpd : CLI.java ChangeLog Added files: frysk/hpd : FrameCommands.java TestFrameCommands.java TestWhereCommand.java Removed files: frysk/hpd : TestStackCommands.java UpDownCommand.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-15 Andrew Cagney * TestStackCommands.java: Split into ... * TestFrameCommands.java: New, from TestStackCommands.java. * TestWhereCommand.java: New, from TestStackCommands.java. * FrameCommands.java: Rename UpDownCommand.java. * CLI.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/FrameCommands.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestFrameCommands.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestWhereCommand.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CLI.java.diff?cvsroot=frysk&r1=1.34&r2=1.35 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.122&r2=1.123 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestStackCommands.java.diff?cvsroot=frysk&r1=1.11&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/UpDownCommand.java.diff?cvsroot=frysk&r1=1.2&r2=NONE From pzhao@sourceware.org Tue Oct 16 02:49:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Tue, 16 Oct 2007 02:49:00 -0000 Subject: frysk-gui/frysk/gui ChangeLog gladedir/memoryw ... Message-ID: <20071016024900.25342.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: pzhao@sourceware.org 2007-10-16 02:49:00 Modified files: frysk/gui : ChangeLog frysk/gui/gladedir: memorywindow.glade frysk/gui/memory: MemoryFormatDialog.java MemoryWindow.java Log message: 2007-10-16 Zhao Shujing * gladedir/memorywindow.glade: Remove "Number of bits:" label and bitsCombo. * memory/MemoryFormatDialog.java (CellRendererToggleListener): Only one format are selected to display every time. * memory/MemoryWindow.java: Add a "Raw-bytes (Hexadecimal)" column. Fixs #4675. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.568&r2=1.569 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/gladedir/memorywindow.glade.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/memory/MemoryFormatDialog.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/memory/MemoryWindow.java.diff?cvsroot=frysk&r1=1.51&r2=1.52 From pmuldoon@sourceware.org Tue Oct 16 12:32:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Tue, 16 Oct 2007 12:32:00 -0000 Subject: frysk-core/frysk/proc/dead LinuxTask.java Chan ... Message-ID: <20071016123256.12445.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmuldoon@sourceware.org 2007-10-16 12:32:56 Modified files: frysk/proc/dead: LinuxTask.java ChangeLog Log message: 2007-10-16 Phil Muldoon * LinuxTask.java (sendrecRegisterBuffersFIXME): Delete contents, Return simulateRegisterBanks(). (simulateRegisterBanks): New. (sendrecRegisterBanks): Return contents of simulateRegisterBanks. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.40&r2=1.41 From moore@sourceware.org Tue Oct 16 13:17:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Tue, 16 Oct 2007 13:17:00 -0000 Subject: frysk-gui/frysk/gui ChangeLog memory/MemoryWin ... Message-ID: <20071016131734.1948.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: moore@sourceware.org 2007-10-16 13:17:34 Modified files: frysk/gui : ChangeLog frysk/gui/memory: MemoryWindow.java Log message: Restore clobbered change to getISA().wordSize() usage frysk-gui/frysk/gui/ChangeLog: 2007-10-16 Tim Moore * MemoryWindow.java (setTask, resetTask): Restore getISA().wordSize() use that got clobbered by the last change to MemoryWindow. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/ChangeLog.diff?cvsroot=frysk&r1=1.569&r2=1.570 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/memory/MemoryWindow.java.diff?cvsroot=frysk&r1=1.52&r2=1.53 From swagiaal@sourceware.org Tue Oct 16 14:27:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 16 Oct 2007 14:27:00 -0000 Subject: frysk-core/frysk/scopes ChangeLog Message-ID: <20071016142724.6994.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-16 14:27:24 Added files: frysk/scopes : ChangeLog Log message: Added ChangeLog file Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ChangeLog.diff?cvsroot=frysk&r1=NONE&r2=1.1 From tthomas@sourceware.org Tue Oct 16 14:45:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 16 Oct 2007 14:45:00 -0000 Subject: frysk-core/frysk/value TypeDecorator.java Chan ... Message-ID: <20071016144523.14131.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-16 14:45:23 Modified files: frysk/value : TypeDecorator.java ChangeLog Log message: 2007-10-16 Teresa Thomas * TypeDecorator.java (member): Rename v to var1. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TypeDecorator.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.149&r2=1.150 From tthomas@sourceware.org Tue Oct 16 14:50:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 16 Oct 2007 14:50:00 -0000 Subject: frysk-core/frysk/pkglibdir ChangeLog funit-add ... Message-ID: <20071016145015.17825.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-16 14:50:15 Modified files: frysk/pkglibdir: ChangeLog funit-addresses.c Log message: 2007-10-16 Teresa Thomas * funit-addresses.c: Add loop option; add more variable types. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.132&r2=1.133 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-addresses.c.diff?cvsroot=frysk&r1=1.2&r2=1.3 From tthomas@sourceware.org Tue Oct 16 14:55:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 16 Oct 2007 14:55:00 -0000 Subject: frysk-core/frysk/expr CExpr.g ChangeLog CExprA ... Message-ID: <20071016145505.19208.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-16 14:55:05 Modified files: frysk/expr : CExpr.g ChangeLog CExprAnnotator.g Log message: 2007-10-16 Teresa Thomas * CExprAnnotator.g (POINTERTO): Add. * CExpr.g (POINTERTO): Implement using MEMBER and MEMORY operations. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExpr.g.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.86&r2=1.87 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.8&r2=1.9 From swagiaal@sourceware.org Tue Oct 16 14:57:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 16 Oct 2007 14:57:00 -0000 Subject: frysk-core/frysk/scopes ChangeLog package.html Message-ID: <20071016145729.19767.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-16 14:57:29 Modified files: frysk/scopes : ChangeLog Added files: frysk/scopes : package.html Log message: Index: ChangeLog +2007-10-16 Sami Wagiaalla + + * package.html: New file. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/package.html.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ChangeLog.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Tue Oct 16 16:03:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 16 Oct 2007 16:03:00 -0000 Subject: frysk-core/frysk/expr ChangeLog Completer.g Message-ID: <20071016160309.18939.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-16 16:03:09 Modified files: frysk/expr : ChangeLog Removed files: frysk/expr : Completer.g Log message: Index: frysk-core/frysk/expr/ChangeLog 2007-10-16 Andrew Cagney * Completer.g: Delete for now; workaround makefile race. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.87&r2=1.88 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/Completer.g.diff?cvsroot=frysk&r1=1.2&r2=NONE From cagney@sourceware.org Tue Oct 16 17:11:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 16 Oct 2007 17:11:00 -0000 Subject: frysk-core/frysk ftrace/ArchFactory.java ftrac ... Message-ID: <20071016171104.21952.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-16 17:11:04 Modified files: frysk/ftrace : ArchFactory.java ChangeLog frysk/util : ChangeLog LinuxElfCorefileFactory.java Added files: frysk/ftrace : IA32Arch.java X8664Arch.java frysk/util : IA32LinuxElfCorefile.java PPC32LinuxElfCorefile.java PPC64LinuxElfCorefile.java X8664LinuxElfCorefile.java Removed files: frysk/ftrace : Archx86.java Archx8664.java frysk/util : LinuxElfCorefilePPC32.java LinuxElfCorefilePPC64.java LinuxElfCorefilex86.java LinuxElfCorefilex8664.java Log message: Index: frysk-core/frysk/ftrace/ChangeLog 2007-10-16 Andrew Cagney * X8664Arch.java: Rename Archx8664.java. * IA32Arch.java: Rename Archx86.java. * ArchFactory.java: Update; use ISAMap. Index: frysk-core/frysk/util/ChangeLog 2007-10-16 Andrew Cagney * IA32LinuxElfCorefile.java: Rename LinuxElfCorefilex86.java. * PPC32LinuxElfCorefile.java: Rename LinuxElfCorefilePPC32.java. * PPC64LinuxElfCorefile.java: Rename LinuxElfCorefilePPC64.java. * X8664LinuxElfCorefile.java: Rename LinuxElfCorefilex8664.java. * LinuxElfCorefileFactory.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/IA32Arch.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/X8664Arch.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ArchFactory.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/Archx86.java.diff?cvsroot=frysk&r1=1.4&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/Archx8664.java.diff?cvsroot=frysk&r1=1.2&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/IA32LinuxElfCorefile.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/PPC32LinuxElfCorefile.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/PPC64LinuxElfCorefile.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/X8664LinuxElfCorefile.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.192&r2=1.193 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefileFactory.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC32.java.diff?cvsroot=frysk&r1=1.6&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilePPC64.java.diff?cvsroot=frysk&r1=1.6&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex86.java.diff?cvsroot=frysk&r1=1.5&r2=NONE http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/LinuxElfCorefilex8664.java.diff?cvsroot=frysk&r1=1.5&r2=NONE From swagiaal@sourceware.org Tue Oct 16 18:43:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 16 Oct 2007 18:43:00 -0000 Subject: frysk-core/frysk/scopes ChangeLog CxxObject.java Message-ID: <20071016184341.6905.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-16 18:43:41 Modified files: frysk/scopes : ChangeLog Removed files: frysk/scopes : CxxObject.java Log message: Index: frysk-core/frysk/scopes/ChangeLog +2007-10-16 Sami Wagiaalla + + * CxxObject.java: Removed. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ChangeLog.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/CxxObject.java.diff?cvsroot=frysk&r1=1.2&r2=NONE From swagiaal@sourceware.org Tue Oct 16 20:22:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 16 Oct 2007 20:22:00 -0000 Subject: frysk-core/frysk/value ChangeLog EnumType.java ... Message-ID: <20071016202202.20239.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-16 20:22:02 Modified files: frysk/value : ChangeLog EnumType.java Value.java Log message: Index: frysk-core/frysk/value/ChangeLog +2007-10-16 Sami Wagiaalla + + * EnumType.java (toPrint): Now uses value.asBigInteger().toString() + instead of value.toString(). + * Value.java (asBigInteger): New function. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.150&r2=1.151 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/EnumType.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Value.java.diff?cvsroot=frysk&r1=1.37&r2=1.38 From cagney@sourceware.org Tue Oct 16 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 16 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071016235102.5138.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-16 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.701&r2=1.702 From cagney@sourceware.org Wed Oct 17 16:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 16:26:00 -0000 Subject: frysk-core/frysk/stack ChangeLog Frame.java Fr ... Message-ID: <20071017162653.10617.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 16:26:53 Modified files: frysk/stack : ChangeLog Frame.java FrameDecorator.java LibunwindFrame.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-17 Andrew Cagney * FrameDecorator.java (getTask()): Delete. (FrameDecorator(Frame)): Call super(Task). * LibunwindFrame.java (getTask()): Delete. (task): Delete. (LibunwindFrame(Cursor,Task)): Call super(Task). * Frame.java (getTask()): Make concrete. (task): New field. (Frame(Task)): New constructor. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.78&r2=1.79 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.19&r2=1.20 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameDecorator.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Wed Oct 17 16:37:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 16:37:00 -0000 Subject: frysk-core/frysk/isa ChangeLog X8664Registers.java Message-ID: <20071017163717.14415.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 16:37:17 Modified files: frysk/isa : ChangeLog X8664Registers.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-17 Andrew Cagney * X8664Registers.java: Use INT64L_T, and VOIDPTR64_T. (RFLAGS, CS, DS, ES, FS, GS, SS): Add. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/X8664Registers.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From swagiaal@sourceware.org Wed Oct 17 16:53:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 17 Oct 2007 16:53:00 -0000 Subject: frysk-core/frysk/scopes ChangeLog Scope.java E ... Message-ID: <20071017165328.19450.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-17 16:53:28 Modified files: frysk/scopes : ChangeLog Scope.java Added files: frysk/scopes : Enumeration.java Removed files: frysk/scopes : Enumiration.java Log message: Index: frysk-core/frysk/scopes/ChangeLog +2007-10-17 Sami Wagiaalla + + * Enumeration.java: Renamed from Enumiration to + Enumeration. + * Scope.java: Updated. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumeration.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/ChangeLog.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Scope.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/scopes/Enumiration.java.diff?cvsroot=frysk&r1=1.4&r2=NONE From cagney@sourceware.org Wed Oct 17 17:12:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 17:12:00 -0000 Subject: frysk-core/frysk bindir/ChangeLog bindir/fstep ... Message-ID: <20071017171203.3221.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 17:12:03 Modified files: frysk/bindir : ChangeLog fstep.java frysk/ftrace : ChangeLog Ltrace.java frysk/hpd : AttachCommand.java ChangeLog TestLib.java frysk/proc : ChangeLog Host.java HostState.java ProcBlockAction.java TestBreakpoints.java TestFindProc.java TestSyscallRunning.java TestSyscallSignal.java TestTaskSyscallObserver.java frysk/proc/dead: ChangeLog LinuxExeHost.java LinuxHost.java frysk/proc/dummy: ChangeLog Host.java frysk/proc/live: ChangeLog LinuxHost.java frysk/testbed : ChangeLog Offspring.java frysk/util : ChangeLog FCatch.java Ftrace.java TestFCatch.java Util.java Added files: frysk/proc : FindProc.java Log message: Index: frysk-core/frysk/bindir/ChangeLog 2007-10-17 Andrew Cagney * fstep.java: Update; use frysk.proc.FindProc. Index: frysk-core/frysk/ftrace/ChangeLog 2007-10-17 Andrew Cagney * Ltrace.java: Update; use frysk.proc.FindProc. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-17 Andrew Cagney * AttachCommand.java: Update; use frysk.proc.FindProc. * TestLib.java: Ditto. Index: frysk-core/frysk/proc/ChangeLog 2007-10-17 Andrew Cagney * Host.java (FindProc): Delete; moved to ... * FindProc.java: ... here. * HostState.java: Update. * ProcBlockAction.java: Update. * TestFindProc.java: Update. * TestSyscallRunning.java: Update. * TestSyscallSignal.java: Update. * TestTaskSyscallObserver.java: Update. Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-17 Andrew Cagney * LinuxHost.java: Update; import frysk.proc.FindProc. * LinuxExeHost.java: Ditto. Index: frysk-core/frysk/proc/dummy/ChangeLog 2007-10-17 Andrew Cagney * Host.java: Update; import frysk.proc.FindProc. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-17 Andrew Cagney * LinuxHost.java: Update; import frysk.proc.FindProc. Index: frysk-core/frysk/testbed/ChangeLog 2007-10-17 Andrew Cagney * Offspring.java: Update; import frysk.proc.FindHost. Index: frysk-core/frysk/util/ChangeLog 2007-10-17 Andrew Cagney * Util.java: Update; use frysk.proc.FindProc. * FCatch.java: Ditto. * Ftrace.java: Ditto. * TestFCatch.java: Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.155&r2=1.156 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/fstep.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/Ltrace.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/AttachCommand.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.123&r2=1.124 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestLib.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/FindProc.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.845&r2=1.846 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/Host.java.diff?cvsroot=frysk&r1=1.65&r2=1.66 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/HostState.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ProcBlockAction.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestBreakpoints.java.diff?cvsroot=frysk&r1=1.31&r2=1.32 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestFindProc.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestSyscallRunning.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestSyscallSignal.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/TestTaskSyscallObserver.java.diff?cvsroot=frysk&r1=1.40&r2=1.41 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.41&r2=1.42 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeHost.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxHost.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/ChangeLog.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dummy/Host.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxHost.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.74&r2=1.75 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/Offspring.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.193&r2=1.194 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/FCatch.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/Ftrace.java.diff?cvsroot=frysk&r1=1.17&r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/TestFCatch.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/Util.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 From cagney@sourceware.org Wed Oct 17 17:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 17:13:00 -0000 Subject: frysk-core/frysk/stack ChangeLog Frame.java Fr ... Message-ID: <20071017171323.3683.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 17:13:23 Modified files: frysk/stack : ChangeLog Frame.java FrameDecorator.java LibunwindFrame.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-17 Andrew Cagney * FrameDecorator.java (getInner()): Delete. * LibunwindFrame.java (getInner()): Delete. (inner): Delete. (LibunwindFrame(Cursor,Frame)): New. (getLibunwindOuter()): Update. (getAdjustedAddress()): Update. * Frame.java(Frame(Frame)): New. (getInner()): Make concrete. (inner, outer): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.79&r2=1.80 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameDecorator.java.diff?cvsroot=frysk&r1=1.11&r2=1.12 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 From tthomas@sourceware.org Wed Oct 17 17:16:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 17 Oct 2007 17:16:00 -0000 Subject: frysk-core/frysk/debuginfo DebugInfo.java Chan ... Message-ID: <20071017171623.6676.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-17 17:16:23 Modified files: frysk/debuginfo: DebugInfo.java ChangeLog Log message: 2007-10-17 Teresa Thomas * DebugInfo.java (print): Throw exceptions at unhandled catch statements. (printNoSymbolTable): Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.42&r2=1.43 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.217&r2=1.218 From cagney@sourceware.org Wed Oct 17 17:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 17:54:00 -0000 Subject: frysk-gui/frysk/gui/srcwin ChangeLog SourceWin ... Message-ID: <20071017175436.21807.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-gui Changes by: cagney@sourceware.org 2007-10-17 17:54:36 Modified files: frysk/gui/srcwin: ChangeLog SourceWindowFactory.java Log message: Index: frysk-gui/frysk/gui/srcwin/ChangeLog 2007-10-17 Andrew Cagney * SourceWindowFactory.java: Update; use frysk.proc.FindProc. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/ChangeLog.diff?cvsroot=frysk&r1=1.524&r2=1.525 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-gui/frysk/gui/srcwin/SourceWindowFactory.java.diff?cvsroot=frysk&r1=1.113&r2=1.114 From cagney@sourceware.org Wed Oct 17 17:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 17:56:00 -0000 Subject: frysk-core/frysk/proc dead/ChangeLog dead/Linu ... Message-ID: <20071017175657.22348.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 17:56:57 Modified files: frysk/proc/dead: ChangeLog LinuxExeHost.java LinuxExeProc.java LinuxExeTask.java LinuxHost.java LinuxProc.java LinuxTask.java frysk/proc/live: ChangeLog LinuxHost.java LinuxProc.java LinuxTask.java Added files: frysk/proc/dead: DeadHost.java DeadProc.java DeadTask.java frysk/proc/live: LiveHost.java LiveProc.java LiveTask.java Log message: Index: frysk-core/frysk/proc/dead/ChangeLog 2007-10-17 Andrew Cagney * DeadHost.java: New. * DeadProc.java: New. * DeadTask.java: New. * LinuxExeTask.java: Extend DeadTask. * LinuxExeProc.java: Extend DeadProc. * LinuxExeHost.java: Extend DeadHost. * LinuxHost.java: Extend DeadHost. * LinuxProc.java: Extend DeadProc. * LinuxTask.java: Extend DeadTask. Index: frysk-core/frysk/proc/live/ChangeLog 2007-10-17 Andrew Cagney * LiveHost.java: New. * LiveProc.java: New. * LiveTask.java: New. * LinuxHost.java: Extend LiveHost. * LinuxProc.java: Extend LiveProc. * LinuxTask.java: Extend LiveTask. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/DeadHost.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/DeadProc.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/DeadTask.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.42&r2=1.43 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeHost.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeProc.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeTask.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxHost.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxProc.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxTask.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LiveHost.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LiveProc.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LiveTask.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxHost.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxProc.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LinuxTask.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 From jflavio@sourceware.org Wed Oct 17 18:09:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 17 Oct 2007 18:09:00 -0000 Subject: frysk-imports frysk/pkglibdir/funit-frameless. ... Message-ID: <20071017180951.971.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: jflavio@sourceware.org 2007-10-17 18:09:51 Modified files: frysk/pkglibdir: funit-frameless.S include : frysk-asm.h Log message: Fixed several frysk assembly small errors for PowerPC64. Updated the unit test for frameless functions which do not support Power because there is a gap in frysk assembly architecture for power. Need to review frysk assembly for that. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-frameless.S.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/frysk-asm.h.diff?cvsroot=frysk&r1=1.23&r2=1.24 From kvanhees@sourceware.org Wed Oct 17 19:00:00 2007 From: kvanhees@sourceware.org (kvanhees@sourceware.org) Date: Wed, 17 Oct 2007 19:00:00 -0000 Subject: frysk-core/frysk/pkglibdir ChangeLog funit-add ... Message-ID: <20071017190031.16204.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: kvanhees@sourceware.org 2007-10-17 19:00:31 Modified files: frysk/pkglibdir: ChangeLog funit-addresses.c Log message: Added include for stdlib.h. This is needed because malloc() is used in this code. Note that gcc didn't flag this as a problem when compiling with -O even though -Wall -Werror was specified. This was only flagged when compiling using -O0. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/ChangeLog.diff?cvsroot=frysk&r1=1.133&r2=1.134 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-addresses.c.diff?cvsroot=frysk&r1=1.3&r2=1.4 From swagiaal@sourceware.org Wed Oct 17 21:01:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 17 Oct 2007 21:01:00 -0000 Subject: frysk-core/frysk/value ChangeLog StandardTypes ... Message-ID: <20071017210140.5053.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-17 21:01:40 Modified files: frysk/value : ChangeLog StandardTypes.java Log message: Index: frysk-core/frysk/value/ChangeLog +2007-10-17 Sami Wagiaalla + + * StandardTypes.java: Changed the size of VOIDPTR64B_T and + VOIDPTR64L_T from 4 to 8. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.151&r2=1.152 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/StandardTypes.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 From cagney@sourceware.org Wed Oct 17 21:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 21:01:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog DebugInfo ... Message-ID: <20071017210141.5121.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 21:01:41 Modified files: frysk/debuginfo: ChangeLog DebugInfoFrame.java VirtualDebugInfoFrame.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-17 Andrew Cagney * VirtualDebugInfoFrame.java (subIndex): Make private. * DebugInfoFrame.java (index): Make private. (typeEntry): Make private and final. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.218&r2=1.219 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.22&r2=1.23 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Wed Oct 17 22:10:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 22:10:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071017221012.13178.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 22:10:12 Modified files: frysk/debuginfo: ChangeLog DebugInfoFrame.java DebugInfoStackFactory.java VirtualDebugInfoFrame.java frysk/stack : ChangeLog Frame.java FrameDecorator.java LibunwindFrame.java StackFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-17 Andrew Cagney * DebugInfoFrame.java (DebugInfoFrame(FrameDecorator,Frame)): Replace DebugInfoFrame(Frame). (setInnerDebugInfoFrame(DebugInfoFrame)) (setOuterDebugInfoFrame(DebugInfoFrame)): Delete. (innerDebugInfoFrame, outerDebugInfoFrame): Delete. (getOuterDebugInfoFrame()): Simplify. (getInnerDebugInfoFrame()): Simplify. (unwind()): New. * VirtualDebugInfoFrame.java (VirtualDebugInfoFrame(FrameDecorator,Frame)): Replace VirtualDebugInfoFrame(Frame). * DebugInfoStackFactory.java (createVirtualStackTrace(Task)): Simplify. (createDebugInfoStackTrace(Task)): Update. (createDebugInfoFrame(Frame)): Delete. * TestDebugInfoStackTrace.java: Update. Index: frysk-core/frysk/stack/ChangeLog 2007-10-17 Andrew Cagney * Frame.java (getOuter()): Make concrete. (unwind()): New, abstract. (Frame(Frame,Task)): Replace Frame(Frame). * FrameDecorator.java (getOuter()): Delete. (FrameDecorator(FrameDecorator,Frame)): Replace FrameDecorator(Frame). * LibunwindFrame.java (getOuter()): Delete. (outer): Delete. (getLibunwindOuter()): Delete. (unwind()): New. (LibunwindFrame(Cursor,Frame,Task)): Replace LibunwindFrame(Cursor,Task). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.219&r2=1.220 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.80&r2=1.81 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameDecorator.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindFrame.java.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/StackFactory.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 From cagney@sourceware.org Wed Oct 17 22:18:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 22:18:00 -0000 Subject: frysk-core/frysk isa/ChangeLog isa/IA32Registe ... Message-ID: <20071017221825.15862.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-17 22:18:25 Modified files: frysk/isa : ChangeLog IA32Registers.java frysk/proc : ChangeLog X86BankRegisters.java frysk/stack : ChangeLog LibunwindRegisterMapFactory.java Added files: frysk/isa : X87Registers.java Log message: Index: frysk-core/frysk/isa/ChangeLog 2007-10-17 Andrew Cagney * IA32Registers.java (ST0, ST1, ST2, ST3, ST4, ST5, ST6) (ST7): Move to ... * X87Registers.java: ... to here. New file. Index: frysk-core/frysk/proc/ChangeLog 2007-10-17 Andrew Cagney * X86BankRegisters.java: Use X87Registers.ST* Index: frysk-core/frysk/stack/ChangeLog 2007-10-17 Andrew Cagney * LibunwindRegisterMapFactory.java: Use X87Registers.ST* Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/X87Registers.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/ChangeLog.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/isa/IA32Registers.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/ChangeLog.diff?cvsroot=frysk&r1=1.846&r2=1.847 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/X86BankRegisters.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.81&r2=1.82 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From cagney@sourceware.org Wed Oct 17 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 17 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071017235103.20392.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-17 23:51:03 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.702&r2=1.703 From cagney@sourceware.org Thu Oct 18 02:45:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 18 Oct 2007 02:45:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071018024536.1495.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-18 02:45:36 Modified files: frysk/debuginfo: ChangeLog DebugInfo.java frysk/expr : ChangeLog Added files: frysk/expr : ScratchSymTab.java TestArithmetics.java TestbedSymTab.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-17 Andrew Cagney * DebugInfo.java (printNoSymbolTable(String,boolean)): Delete TmpSymTab, use ScratchSymTab. Index: frysk-core/frysk/expr/ChangeLog 2007-10-17 Andrew Cagney * TestArithmetics.java: New. * TestbedSymTab.java: New. * ScratchSymTab.java: New. 2007-10-16 Andrew Cagney * Completer.g: Delete for now; workaround makefile race. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.220&r2=1.221 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfo.java.diff?cvsroot=frysk&r1=1.43&r2=1.44 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ScratchSymTab.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TestArithmetics.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TestbedSymTab.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.88&r2=1.89 From cagney@sourceware.org Thu Oct 18 03:36:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 18 Oct 2007 03:36:00 -0000 Subject: frysk-core/frysk expr/ChangeLog expr/TestbedSy ... Message-ID: <20071018033658.24236.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-18 03:36:58 Modified files: frysk/expr : ChangeLog TestbedSymTab.java frysk/value : ChangeLog CompositeType.java Added files: frysk/expr : TestVariables.java Log message: Index: frysk-core/frysk/expr/ChangeLog 2007-10-17 Andrew Cagney * TestbedSymTab.java: Add a simple symbol table. * TestVariables.java: New. Index: frysk-core/frysk/value/ChangeLog 2007-10-17 Andrew Cagney * CompositeType.java: Make public. (CompositeType(String,int)): Make package-local. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TestVariables.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.89&r2=1.90 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TestbedSymTab.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.152&r2=1.153 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/CompositeType.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From rmoseley@sourceware.org Thu Oct 18 07:02:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Thu, 18 Oct 2007 07:02:00 -0000 Subject: frysk-core/frysk hpd/ChangeLog hpd/PeekCommand ... Message-ID: <20071018070239.11389.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-18 07:02:39 Modified files: frysk/hpd : ChangeLog PeekCommand.java LoadCommand.java frysk/proc/dead: LinuxExeHost.java LinuxExeTask.java LinuxExeProc.java ExeByteBuffer.java ChangeLog Log message: * LoadCommand.java: Add loop to add DebugInfoFrame stuff. * PeekCommand.java: Remove debug stuff and correct comments. * LinuxExeHost.java: Add DeconstructExeFile class and update method. * LinuxExeProc.java: Pass ElfData to the constructor; add sendrecISA method; change MapAddressHeader to MemoryMap in buildMetaData. * LinuxExeTask.java: Merger my changes with changes below; return info instead of null for sendrecISA and sendrecIsa. * ExeByteBuffer.java: Change MapAddressHeader to MemoryMap. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.124&r2=1.125 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/PeekCommand.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/LoadCommand.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeHost.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeTask.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/LinuxExeProc.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ExeByteBuffer.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/dead/ChangeLog.diff?cvsroot=frysk&r1=1.43&r2=1.44 From swagiaal@sourceware.org Thu Oct 18 14:33:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 18 Oct 2007 14:33:00 -0000 Subject: frysk-core/frysk/testbed ChangeLog RegsCase.java Message-ID: <20071018143356.2691.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-18 14:33:56 Modified files: frysk/testbed : ChangeLog RegsCase.java Log message: Index: frysk-core/frysk/testbed/ChangeLog +2007-10-18 Sami Wagiaalla + + * RegsCase.java (testAccessRegisterRead): Marked + as unreslovedX8664. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/ChangeLog.diff?cvsroot=frysk&r1=1.75&r2=1.76 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/testbed/RegsCase.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From rmoseley@sourceware.org Thu Oct 18 15:27:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Thu, 18 Oct 2007 15:27:00 -0000 Subject: frysk-core/frysk/dwfl DwflFactory.java ChangeLog Message-ID: <20071018152753.3544.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: rmoseley@sourceware.org 2007-10-18 15:27:53 Modified files: frysk/dwfl : DwflFactory.java ChangeLog Log message: * DwflFactory.java: Check for a null vdso before attempting to get vdso addresses. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/dwfl/DwflFactory.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/dwfl/ChangeLog.diff?cvsroot=frysk&r1=1.22&r2=1.23 From cagney@sourceware.org Thu Oct 18 16:11:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 18 Oct 2007 16:11:00 -0000 Subject: frysk-core/frysk/stack ChangeLog FrameLevel.ja ... Message-ID: <20071018161104.30291.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-18 16:11:04 Modified files: frysk/stack : ChangeLog Added files: frysk/stack : FrameLevel.java TestFrameLevel.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-18 Andrew Cagney * FrameLevel.java: New. * TestFrameLevel.java: New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameLevel.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/TestFrameLevel.java.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.82&r2=1.83 From swagiaal@sourceware.org Thu Oct 18 16:17:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 18 Oct 2007 16:17:00 -0000 Subject: frysk-core/frysk/rt ChangeLog TestDisplayValue ... Message-ID: <20071018161742.1138.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: swagiaal@sourceware.org 2007-10-18 16:17:42 Modified files: frysk/rt : ChangeLog TestDisplayValue.java Log message: Index: frysk-core/frysk/rt/ChangeLog +2007-10-18 Sami Wagiaalla + + * TestDisplayValue.java (testVarOutOfScope): Marked + as unresolved. + Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/rt/ChangeLog.diff?cvsroot=frysk&r1=1.363&r2=1.364 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/rt/TestDisplayValue.java.diff?cvsroot=frysk&r1=1.16&r2=1.17 From pmachata@sourceware.org Thu Oct 18 16:23:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Thu, 18 Oct 2007 16:23:00 -0000 Subject: frysk-core/frysk/ftrace ObjectFile.java ChangeLog Message-ID: <20071018162318.3124.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmachata@sourceware.org 2007-10-18 16:23:18 Modified files: frysk/ftrace : ObjectFile.java ChangeLog Log message: * ObjectFile.java: Fix assignment of symbols to origins. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ObjectFile.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/ftrace/ChangeLog.diff?cvsroot=frysk&r1=1.15&r2=1.16 From pmachata@sourceware.org Thu Oct 18 16:23:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Thu, 18 Oct 2007 16:23:00 -0000 Subject: frysk-core/frysk/bindir ChangeLog fltrace.java Message-ID: <20071018162348.3304.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmachata@sourceware.org 2007-10-18 16:23:48 Modified files: frysk/bindir : ChangeLog fltrace.java Log message: * fltrace.java: Support -plt commandline parameter. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.156&r2=1.157 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/fltrace.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 From cagney@sourceware.org Thu Oct 18 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 18 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071018235102.2625.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-18 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.703&r2=1.704 From pmachata@sourceware.org Fri Oct 19 11:41:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 19 Oct 2007 11:41:00 -0000 Subject: frysk-core/frysk/bindir ChangeLog fltrace.java Message-ID: <20071019114133.14520.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmachata@sourceware.org 2007-10-19 11:41:33 Modified files: frysk/bindir : ChangeLog fltrace.java Log message: * Support -dyn, -sym commandline parameters. * Support version matching. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.157&r2=1.158 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/fltrace.java.diff?cvsroot=frysk&r1=1.6&r2=1.7 From pmachata@sourceware.org Fri Oct 19 15:15:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 19 Oct 2007 15:15:00 -0000 Subject: frysk-core/frysk/bindir ChangeLog fltrace.java ... Message-ID: <20071019151522.1931.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmachata@sourceware.org 2007-10-19 15:15:22 Modified files: frysk/bindir : ChangeLog fltrace.java fltrace.xml Log message: * fltrace.java: Fix synopsis. * fltrace.xml: Write manual. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.158&r2=1.159 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/fltrace.java.diff?cvsroot=frysk&r1=1.7&r2=1.8 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/fltrace.xml.diff?cvsroot=frysk&r1=1.1&r2=1.2 From jflavio@sourceware.org Fri Oct 19 16:10:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Fri, 19 Oct 2007 16:10:00 -0000 Subject: frysk-imports frysk/pkglibdir/funit-location.S ... Message-ID: <20071019161034.8467.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-imports Changes by: jflavio@sourceware.org 2007-10-19 16:10:34 Modified files: frysk/pkglibdir: funit-location.S funit-raise.S funit-symbols.S include : fixme-asm.h frysk-asm.h Log message: This patch make some updates to fix frysk assembly for power. Besides that, it patches some unit test which are not available for Power now (due frysk assembly limits) and the way these test were wroten. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-location.S.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-raise.S.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/pkglibdir/funit-symbols.S.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/fixme-asm.h.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-imports/include/frysk-asm.h.diff?cvsroot=frysk&r1=1.24&r2=1.25 From cmoller@sourceware.org Fri Oct 19 17:06:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Fri, 19 Oct 2007 17:06:00 -0000 Subject: frysk-utrace/utracer/utracer/docs Message-ID: <20071019170639.5552.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-19 17:06:39 frysk-utrace/utracer/utracer/docs Update of /cvs/frysk/frysk-utrace/utracer/utracer/docs In directory sourceware.org:/tmp/cvs-serv5527/docs Log Message: Directory /cvs/frysk/frysk-utrace/utracer/utracer/docs added to the repository From cmoller@sourceware.org Fri Oct 19 17:33:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Fri, 19 Oct 2007 17:33:00 -0000 Subject: frysk-utrace/utracer/utracer/docs Makefile utr ... Message-ID: <20071019173300.26766.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-19 17:33:00 Added files: utracer/utracer/docs: Makefile utracer.sgml utracer_attach.sgml utracer_attach_body.sgml utracer_open.sgml utracer_open_body.sgml utracer_set_syscall.sgml utracer_set_syscall_body.sgml utracer_unregister.sgml utracer_unregister_body.sgml Log message: * utracer.sgml: New file: a DocBook SGML book wrapper for the various refentry SGML files used to create man pages. * utracer_attach_body.sgml: * utracer_open_body.sgml: * utracer_set_syscall_body.sgml: * utracer_unregister_body.sgml: New files containing the refentry SGML for the various functions. (Well, the ones I've written so far--there are maybe a dozen left to go.) * utracer_attach.sgml: * utracer_open.sgml: * utracer_set_syscall.sgml: * utracer_unregister.sgml: New files containing individual wrappers for the refentries. * Makeflle: New file to build the individual manpages (*.2), a pretty utracer.pdf, and a not so pretty utracer.txt. The latter two are, at the moment, basically a compendium of the man pages, but I'll som more useful narrative as time permits. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/Makefile.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_attach.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_attach_body.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_open.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_open_body.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_set_syscall.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_set_syscall_body.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_unregister.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_unregister_body.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cagney@sourceware.org Fri Oct 19 17:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 17:42:00 -0000 Subject: frysk-core/frysk/stack ChangeLog Frame.java Message-ID: <20071019174252.2365.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 17:42:52 Modified files: frysk/stack : ChangeLog Frame.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-19 Andrew Cagney * Frame.java (level): New. (level()): New. (Frame(Frame,Task)): Set level. (toPrint(PrintWriter,boolean)): New. (toPrint(PrintWriter,boolean,boolean)): Call. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.83&r2=1.84 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.22&r2=1.23 From cagney@sourceware.org Fri Oct 19 18:24:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 18:24:00 -0000 Subject: frysk-core/frysk debuginfo/ChangeLog debuginfo ... Message-ID: <20071019182406.26467.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 18:24:06 Modified files: frysk/debuginfo: ChangeLog TestDebugInfoStackTrace.java TestFrameDebugInfo.java frysk/stack : ChangeLog Frame.java StackFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-19 Andrew Cagney * TestFrameDebugInfo.java (testFrameAdjustedAddress()): Use StackFactory.printStack. * TestDebugInfoStackTrace.java: Delete commented out calls to StackFactory.printStackTrace. Index: frysk-core/frysk/stack/ChangeLog 2007-10-19 Andrew Cagney * StackFactory.java (printStack(PrintWriter,Frame)): New. * Frame.java (toPrint(PrintWriter)): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.221&r2=1.222 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.28&r2=1.29 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.84&r2=1.85 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.23&r2=1.24 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/StackFactory.java.diff?cvsroot=frysk&r1=1.19&r2=1.20 From cagney@sourceware.org Fri Oct 19 18:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 18:39:00 -0000 Subject: frysk-core/frysk/util ChangeLog FCatch.java Ft ... Message-ID: <20071019183941.2241.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 18:39:41 Modified files: frysk/util : ChangeLog FCatch.java Ftrace.java TestFCatch.java Log message: Index: frysk-core/frysk/util/ChangeLog 2007-10-19 Andrew Cagney * FCatch.java (generateStackTrace(Task)): Use StackFactory.printStack(PrintWriter,Frame). * TestFCatch.java: Ditto. * Ftrace.java (generateStackTrace(Task)): Ditto. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.194&r2=1.195 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/FCatch.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/Ftrace.java.diff?cvsroot=frysk&r1=1.18&r2=1.19 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/TestFCatch.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 From cagney@sourceware.org Fri Oct 19 19:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 19:26:00 -0000 Subject: frysk-core/frysk/stack ChangeLog Frame.java Fr ... Message-ID: <20071019192608.4113.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 19:26:08 Modified files: frysk/stack : ChangeLog Frame.java FrameDecorator.java StackFactory.java Log message: Index: frysk-core/frysk/stack/ChangeLog 2007-10-19 Andrew Cagney * Frame.java (toPrint(PrintWriter,boolean,boolean)): Delete. (toPrint(PrintWriter,boolean)): Delete. * StackFactory.java (printStackTrace(PrintWriter,Frame,boolean)): Delete. (printTaskStackTrace(PrintWriter,Task,boolean)): Update. * FrameDecorator.java (toPrint(PrintWriter,boolean)): Delete. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.85&r2=1.86 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/FrameDecorator.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/StackFactory.java.diff?cvsroot=frysk&r1=1.20&r2=1.21 From cagney@sourceware.org Fri Oct 19 20:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 20:25:00 -0000 Subject: frysk-core/frysk/debuginfo ChangeLog DebugInfo ... Message-ID: <20071019202530.6790.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 20:25:30 Modified files: frysk/debuginfo: ChangeLog DebugInfoFrame.java DebugInfoStackFactory.java Log message: Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-19 Andrew Cagney * DebugInfoFrame.java (toPrint(PrintWriter,boolean,boolean)): Replace toPrint(PrintWriter,boolean,boolean,boolean), remove printScopes parameter. (printScopes(PrintWriter)): New. * DebugInfoStackFactory.java (printStackTrace(PrintWriter, DebugInfoFrame,int,boolean,boolean,boolean)): Print scopes here. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.222&r2=1.223 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.14&r2=1.15 From cagney@sourceware.org Fri Oct 19 21:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 21:19:00 -0000 Subject: frysk-core/frysk bindir/ChangeLog bindir/TestF ... Message-ID: <20071019211916.4442.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 21:19:16 Modified files: frysk/bindir : ChangeLog TestFstack.java frysk/debuginfo: ChangeLog TestFrameDebugInfo.java VirtualDebugInfoFrame.java frysk/hpd : ChangeLog TestWhereCommand.java Log message: Index: frysk-core/frysk/bindir/ChangeLog 2007-10-19 Andrew Cagney * TestFstack.java (testBackTraceWithDashV()): Check for "inline". Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-19 Andrew Cagney * VirtualDebugInfoFrame.java (toPrint(PrintWriter,boolean,boolean)): New. * TestFrameDebugInfo.java (testVirtualStackTrace()): Check for inline. Index: frysk-core/frysk/hpd/ChangeLog 2007-10-19 Andrew Cagney * TestWhereCommand.java (testFhpdVirtualStackTrace()): Check for "inline". Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.159&r2=1.160 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/TestFstack.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.223&r2=1.224 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java.diff?cvsroot=frysk&r1=1.29&r2=1.30 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.125&r2=1.126 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestWhereCommand.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From tthomas@sourceware.org Fri Oct 19 22:04:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 19 Oct 2007 22:04:00 -0000 Subject: frysk-core/frysk expr/TestbedSymTab.java expr/ ... Message-ID: <20071019220415.6968.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: tthomas@sourceware.org 2007-10-19 22:04:14 Modified files: frysk/expr : TestbedSymTab.java ScratchSymTab.java CExpr.g ChangeLog CExprEvaluator.g CExprAnnotator.g ExprSymTab.java frysk/value : TypeDecorator.java ChangeLog Type.java frysk/debuginfo: ChangeLog DebugInfoEvaluator.java Log message: 2007-10-19 Teresa Thomas * ScratchSymTab.java (getWordSize): New. * ExprSymTab.java (getWordSize): New. * TestbedSymTab.java (getWordSize): New. * CExprEvaluator.g (ADDRESS_OF): Updated; Use getWordSize (SIZEOF): New. * CExprAnnotator.g (POINTERTO): Removed. * CExpr.g: Simplified; Operator precedence redefined, expressions renamed, SIZEOF added, fixed bug with parenthesis. 2007-10-19 Teresa Thomas * DebugInfoEvaluator.java (getWordSize): New. 2007-10-19 Teresa Thomas * Type.java (addressOf): wordSize added to parameter list. * TypeDecorator.java (addressOf): Updated. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/TestbedSymTab.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ScratchSymTab.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExpr.g.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ChangeLog.diff?cvsroot=frysk&r1=1.90&r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprEvaluator.g.diff?cvsroot=frysk&r1=1.8&r2=1.9 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/CExprAnnotator.g.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/expr/ExprSymTab.java.diff?cvsroot=frysk&r1=1.10&r2=1.11 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/TypeDecorator.java.diff?cvsroot=frysk&r1=1.9&r2=1.10 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/ChangeLog.diff?cvsroot=frysk&r1=1.153&r2=1.154 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/value/Type.java.diff?cvsroot=frysk&r1=1.39&r2=1.40 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.224&r2=1.225 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoEvaluator.java.diff?cvsroot=frysk&r1=1.95&r2=1.96 From cagney@sourceware.org Fri Oct 19 22:38:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 22:38:00 -0000 Subject: frysk-core/frysk bindir/ChangeLog bindir/TestF ... Message-ID: <20071019223804.8627.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-19 22:38:04 Modified files: frysk/bindir : ChangeLog TestFstack.java frysk/debuginfo: ChangeLog DebugInfoFrame.java DebugInfoStackFactory.java VirtualDebugInfoFrame.java frysk/hpd : ChangeLog TestWhereCommand.java frysk/stack : ChangeLog Frame.java StackFactory.java Log message: Index: frysk-core/frysk/bindir/ChangeLog 2007-10-19 Andrew Cagney * TestFstack.java (): Check for decimal stack levels. Index: frysk-core/frysk/debuginfo/ChangeLog 2007-10-19 Andrew Cagney * VirtualDebugInfoFrame.java (printIndex(PrintWriter)): Delete. (getSubIndex()): Delete. (setIndex()): Delete. (subIndex): Delete. * DebugInfoFrame.java (printIndex(PrintWriter)): Delete. (getIndex()): Delete. (setIndex(int)): Delete. (index): Delete. (unwind()): Don't call setIndex(int). * DebugInfoStackFactory.java (createVirtualStackTrace(Task)): Don't call setIndex(int). (printStackTrace(PrintWriter,DebugInfoFrame,int,boolean,boolean, boolean): Call Frame.printLevel(). Index: frysk-core/frysk/hpd/ChangeLog 2007-10-19 Andrew Cagney * TestWhereCommand.java (testFhpdVirtualStackTrace()): Check for decimal stack levels. (testFhpdVirtualStackTraceWithScopes()): Check in stages. Index: frysk-core/frysk/stack/ChangeLog 2007-10-19 Andrew Cagney * StackFactory.java (printStack(PrintWriter,Frame)): Call Frame.printLevel(). (printTaskStackTrace(PrintWriter,Task,boolean)): Call Frame.printLevel(). * Frame.java(toPrint(PrintWriter,boolean)): Print frame level. (toPrint(PrintFrame)): Call toPrint(PrintWriter,boolean). (printLevel()): New. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/ChangeLog.diff?cvsroot=frysk&r1=1.160&r2=1.161 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/bindir/TestFstack.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/ChangeLog.diff?cvsroot=frysk&r1=1.225&r2=1.226 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoFrame.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java.diff?cvsroot=frysk&r1=1.15&r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java.diff?cvsroot=frysk&r1=1.5&r2=1.6 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.126&r2=1.127 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/TestWhereCommand.java.diff?cvsroot=frysk&r1=1.2&r2=1.3 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/ChangeLog.diff?cvsroot=frysk&r1=1.86&r2=1.87 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/Frame.java.diff?cvsroot=frysk&r1=1.25&r2=1.26 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/stack/StackFactory.java.diff?cvsroot=frysk&r1=1.21&r2=1.22 From cagney@sourceware.org Fri Oct 19 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 19 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071019235102.17963.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-19 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.704&r2=1.705 From cagney@sourceware.org Sat Oct 20 15:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 20 Oct 2007 15:04:00 -0000 Subject: frysk-core/frysk/hpd CLI.java ChangeLog FrameC ... Message-ID: <20071020150405.19704.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-20 15:04:05 Modified files: frysk/hpd : CLI.java ChangeLog FrameCommands.java WhereCommand.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-20 Andrew Cagney * CLI.java (TaskInfo): Delete stackLevel. (getTaskStackLevel(Task)): Delete. (setTaskStackLevel(Task,int)): Delete. * FrameCommands.java: Update. * WhereCommand.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CLI.java.diff?cvsroot=frysk&r1=1.35&r2=1.36 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.127&r2=1.128 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/FrameCommands.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/WhereCommand.java.diff?cvsroot=frysk&r1=1.12&r2=1.13 From cmoller@sourceware.org Sat Oct 20 21:25:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Sat, 20 Oct 2007 21:25:00 -0000 Subject: frysk-utrace/utracer/utracer/docs Makefile utr ... Message-ID: <20071020212539.7417.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-20 21:25:39 Modified files: utracer/utracer/docs: Makefile utracer.sgml utracer_attach_body.sgml utracer_open_body.sgml utracer_set_syscall_body.sgml utracer_unregister_body.sgml Added files: utracer/utracer/docs: utracer_intro.sgml utracer_intro_body.sgml Log message: * utracer_intro.sgml: * utracer_intro_body.sgml: Added introduction. * utracer.sgml: * utracer_attach_body.sgml: * utracer_open_body.sgml: * utracer_set_syscall_body.sgml: * utracer_unregister_body.sgml: Bits of editing. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_intro.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_intro_body.sgml.diff?cvsroot=frysk&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/Makefile.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer.sgml.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_attach_body.sgml.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_open_body.sgml.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_set_syscall_body.sgml.diff?cvsroot=frysk&r1=1.1&r2=1.2 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/utracer_unregister_body.sgml.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cmoller@sourceware.org Sat Oct 20 21:26:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Sat, 20 Oct 2007 21:26:00 -0000 Subject: frysk-utrace/utracer/utracer/docs ChangeLog Message-ID: <20071020212644.8766.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-20 21:26:44 Added files: utracer/utracer/docs: ChangeLog Log message: Added ChangeLog Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/ChangeLog.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cmoller@sourceware.org Sat Oct 20 21:29:00 2007 From: cmoller@sourceware.org (cmoller@sourceware.org) Date: Sat, 20 Oct 2007 21:29:00 -0000 Subject: frysk-utrace/utracer/utracer/docs .cvsignore Message-ID: <20071020212907.11413.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-utrace Changes by: cmoller@sourceware.org 2007-10-20 21:29:07 Added files: utracer/utracer/docs: .cvsignore Log message: Added .cvsignore Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-utrace/utracer/utracer/docs/.cvsignore.diff?cvsroot=frysk&r1=NONE&r2=1.1 From cagney@sourceware.org Sat Oct 20 22:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 20 Oct 2007 22:19:00 -0000 Subject: frysk-core/frysk/hpd CLI.java ChangeLog FocusC ... Message-ID: <20071020221932.13640.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: cagney@sourceware.org 2007-10-20 22:19:32 Modified files: frysk/hpd : CLI.java ChangeLog FocusCommand.java Log message: Index: frysk-core/frysk/hpd/ChangeLog 2007-10-20 Andrew Cagney * CLI.java (handlers): Change to a SortedMap; make private. * FocusCommand.java: Update. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CLI.java.diff?cvsroot=frysk&r1=1.36&r2=1.37 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.128&r2=1.129 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/FocusCommand.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From cagney@sourceware.org Sat Oct 20 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 20 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071020235102.11419.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-20 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.705&r2=1.706 From mark@sourceware.org Sun Oct 21 05:28:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Sun, 21 Oct 2007 05:28:00 -0000 Subject: frysk-core/frysk/proc/live ChangeLog LogicalMe ... Message-ID: <20071021052807.17607.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: mark@sourceware.org 2007-10-21 05:28:07 Modified files: frysk/proc/live: ChangeLog LogicalMemoryBuffer.java TestByteBuffer.java Log message: Fixes bug #5201 * LogicalMemoryBuffer.java (poke): Allow poke when no breakpoints in the way. * TestByteBuffer.java: Enable LogicalMemoryBuffer write tests. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/ChangeLog.diff?cvsroot=frysk&r1=1.24&r2=1.25 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/LogicalMemoryBuffer.java.diff?cvsroot=frysk&r1=1.3&r2=1.4 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/proc/live/TestByteBuffer.java.diff?cvsroot=frysk&r1=1.4&r2=1.5 From cagney@sourceware.org Sun Oct 21 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 21 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071021235103.30163.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-21 23:51:03 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.706&r2=1.707 From pmuldoon@sourceware.org Mon Oct 22 15:43:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 22 Oct 2007 15:43:00 -0000 Subject: frysk-core/frysk/util ChangeLog IA32LinuxElfCo ... Message-ID: <20071022154339.12941.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmuldoon@sourceware.org 2007-10-22 15:43:39 Modified files: frysk/util : ChangeLog IA32LinuxElfCorefile.java Log message: 2007-10-22 Phil Muldoon * IA32LinuxElfCorefile.java (writeNotePrstatus): Convert to use getRegister() and BankRegisters. (byteToBigInteger): New. Temporary function to build a BigInteget from a byte stream. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/ChangeLog.diff?cvsroot=frysk&r1=1.195&r2=1.196 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/util/IA32LinuxElfCorefile.java.diff?cvsroot=frysk&r1=1.1&r2=1.2 From cagney@sourceware.org Mon Oct 22 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 22 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071022235102.19964.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-22 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.707&r2=1.708 From pmuldoon@sourceware.org Tue Oct 23 15:24:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Tue, 23 Oct 2007 15:24:00 -0000 Subject: frysk-core/frysk/hpd ChangeLog CoreCommand.java Message-ID: <20071023152417.24469.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-core Changes by: pmuldoon@sourceware.org 2007-10-23 15:24:17 Modified files: frysk/hpd : ChangeLog CoreCommand.java Log message: 2007-10-23 Phil Muldoon * CoreCommand.java (CoreCommand): Generate stack info for all threads up front. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/ChangeLog.diff?cvsroot=frysk&r1=1.129&r2=1.130 http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-core/frysk/hpd/CoreCommand.java.diff?cvsroot=frysk&r1=1.13&r2=1.14 From cagney@sourceware.org Tue Oct 23 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 23 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071023235102.31649.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-23 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.708&r2=1.709 From moore@sourceware.org Wed Oct 24 13:46:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Wed, 24 Oct 2007 13:46:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, cvs-sync, updated. da5e4c18fcc7ee49bd41a3aca658164853f831df Message-ID: <20071024134614.27966.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, cvs-sync has been updated via da5e4c18fcc7ee49bd41a3aca658164853f831df (commit) via 1a6bf6a7ad92926c72fc7c99727ee443673defb0 (commit) from b69ec75d8963615bcb4ea6aa6951c04272ecc318 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit da5e4c18fcc7ee49bd41a3aca658164853f831df Author: Andrew Cagney Date: Tue Oct 23 23:51:02 2007 +0000 *** empty log message *** commit 1a6bf6a7ad92926c72fc7c99727ee443673defb0 Author: Phil Muldoon Date: Tue Oct 23 15:24:17 2007 +0000 2007-10-23 Phil Muldoon * CoreCommand.java (CoreCommand): Generate stack info for all threads up front. ----------------------------------------------------------------------- Summary of changes: frysk-common/version.in | 2 +- frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/CoreCommand.java | 14 ++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Wed Oct 24 13:46:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Wed, 24 Oct 2007 13:46:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. da5e4c18fcc7ee49bd41a3aca658164853f831df Message-ID: <20071024134617.28009.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via da5e4c18fcc7ee49bd41a3aca658164853f831df (commit) via 1a6bf6a7ad92926c72fc7c99727ee443673defb0 (commit) from b69ec75d8963615bcb4ea6aa6951c04272ecc318 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit da5e4c18fcc7ee49bd41a3aca658164853f831df Author: Andrew Cagney Date: Tue Oct 23 23:51:02 2007 +0000 *** empty log message *** commit 1a6bf6a7ad92926c72fc7c99727ee443673defb0 Author: Phil Muldoon Date: Tue Oct 23 15:24:17 2007 +0000 2007-10-23 Phil Muldoon * CoreCommand.java (CoreCommand): Generate stack info for all threads up front. ----------------------------------------------------------------------- Summary of changes: frysk-common/version.in | 2 +- frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/CoreCommand.java | 14 ++++++-------- 3 files changed, 12 insertions(+), 9 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 24 23:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 24 Oct 2007 23:51:00 -0000 Subject: frysk-common version.in Message-ID: <20071024235102.26122.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: frysk-common Changes by: cagney@sourceware.org 2007-10-24 23:51:02 Modified files: . : version.in Log message: Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/frysk-common/version.in.diff?cvsroot=frysk&r1=1.709&r2=1.710 From cagney@sourceware.org Thu Oct 25 15:15:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 25 Oct 2007 15:15:00 -0000 Subject: CVSROOT commitinfo Message-ID: <20071025151548.19993.qmail@sourceware.org> CVSROOT: /cvs/frysk Module name: CVSROOT Changes by: cagney@sourceware.org 2007-10-25 15:15:48 Modified files: . : commitinfo Log message: Disable most commits. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/CVSROOT/commitinfo.diff?cvsroot=frysk&r1=1.2&r2=1.3 From cagney@sourceware.org Thu Oct 25 20:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 25 Oct 2007 20:04:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 704ef97640b9398e7efd8cb80571f0cb57e8f81c Message-ID: <20071025200418.11124.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 704ef97640b9398e7efd8cb80571f0cb57e8f81c (commit) from da5e4c18fcc7ee49bd41a3aca658164853f831df (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 704ef97640b9398e7efd8cb80571f0cb57e8f81c Author: Andrew Cagney Date: Thu Oct 25 16:01:12 2007 -0400 Index: frysk-core/frysk/hpd/ChangeLog 2007-10-25 Andrew Cagney * Input.java: Rename Command.java. * CommandHandler.java: Update. * CLIHandler.java: Update. * CLI.java: Update. * ActionsCommand.java: Update. * BreakpointCommand.java: Update. * AttachCommand.java: Update. * PrintCommand.java: Update. * AliasCommand.java: Update. * DisplayCommand.java: Update. * DisassembleCommand.java: Update. * DisableCommand.java: Update. * DetachCommand.java: Update. * DeleteCommand.java: Update. * DefsetCommand.java: Update. * CoreCommand.java: Update. * DebuginfoCommand.java: Update. * WhichsetsCommand.java: Update. * WhereCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UndefsetCommand.java: Update. * UnsetCommand.java: Update. * UnaliasCommand.java: Update. * TestHpdCommandParser.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * StepFinishCommand.java: Update. * StepInstructionCommand.java: Update. * StepCommand.java: Update. * SetCommand.java: Update. * RunCommand.java: Update. * RegsCommand.java: Update. * PtypeCommand.java: Update. * QuitCommand.java: Update. * PeekCommand.java: Update. * PlocationCommand.java: Update. * LoadCommand.java: Update. * ListCommand.java: Update. * HaltCommand.java: Update. * HelpCommand.java: Update. * GoCommand.java: Update. * FocusCommand.java: Update. * FrameCommands.java: Update.Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 2 +- frysk-core/frysk/hpd/AliasCommand.java | 2 +- frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/BreakpointCommand.java | 2 +- frysk-core/frysk/hpd/CLI.java | 8 +- frysk-core/frysk/hpd/CLIHandler.java | 2 +- frysk-core/frysk/hpd/ChangeLog | 47 +++++ frysk-core/frysk/hpd/Command.java | 198 ---------------------- frysk-core/frysk/hpd/CommandHandler.java | 8 +- frysk-core/frysk/hpd/CoreCommand.java | 2 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 2 +- frysk-core/frysk/hpd/DefsetCommand.java | 2 +- frysk-core/frysk/hpd/DeleteCommand.java | 2 +- frysk-core/frysk/hpd/DetachCommand.java | 2 +- frysk-core/frysk/hpd/DisableCommand.java | 2 +- frysk-core/frysk/hpd/DisassembleCommand.java | 2 +- frysk-core/frysk/hpd/DisplayCommand.java | 2 +- frysk-core/frysk/hpd/EnableCommand.java | 2 +- frysk-core/frysk/hpd/ExamineCommand.java | 2 +- frysk-core/frysk/hpd/FocusCommand.java | 2 +- frysk-core/frysk/hpd/FrameCommands.java | 2 +- frysk-core/frysk/hpd/GoCommand.java | 2 +- frysk-core/frysk/hpd/HaltCommand.java | 2 +- frysk-core/frysk/hpd/HelpCommand.java | 2 +- frysk-core/frysk/hpd/Input.java | 175 +++++++++++++++++++ frysk-core/frysk/hpd/ListCommand.java | 2 +- frysk-core/frysk/hpd/LoadCommand.java | 2 +- frysk-core/frysk/hpd/PeekCommand.java | 2 +- frysk-core/frysk/hpd/PlocationCommand.java | 2 +- frysk-core/frysk/hpd/PrintCommand.java | 2 +- frysk-core/frysk/hpd/PtypeCommand.java | 2 +- frysk-core/frysk/hpd/QuitCommand.java | 4 +- frysk-core/frysk/hpd/RegsCommand.java | 2 +- frysk-core/frysk/hpd/RunCommand.java | 2 +- frysk-core/frysk/hpd/SetCommand.java | 2 +- frysk-core/frysk/hpd/StepCommand.java | 2 +- frysk-core/frysk/hpd/StepFinishCommand.java | 2 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 2 +- frysk-core/frysk/hpd/StepNextCommand.java | 2 +- frysk-core/frysk/hpd/StepNextiCommand.java | 2 +- frysk-core/frysk/hpd/TestHpdCommandParser.java | 2 +- frysk-core/frysk/hpd/UnaliasCommand.java | 2 +- frysk-core/frysk/hpd/UndefsetCommand.java | 2 +- frysk-core/frysk/hpd/UnsetCommand.java | 2 +- frysk-core/frysk/hpd/ViewsetCommand.java | 2 +- frysk-core/frysk/hpd/WhatCommand.java | 2 +- frysk-core/frysk/hpd/WhereCommand.java | 2 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 2 +- 48 files changed, 274 insertions(+), 250 deletions(-) delete mode 100644 frysk-core/frysk/hpd/Command.java create mode 100644 frysk-core/frysk/hpd/Input.java hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Oct 25 20:35:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 25 Oct 2007 20:35:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 646d3b573b584bd6b2742e4d780f15812a20402f Message-ID: <20071025203518.1218.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 646d3b573b584bd6b2742e4d780f15812a20402f (commit) from 704ef97640b9398e7efd8cb80571f0cb57e8f81c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 646d3b573b584bd6b2742e4d780f15812a20402f Author: Andrew Cagney Date: Thu Oct 25 16:33:42 2007 -0400 b/frysk-core/frysk/hpd/ChangeLog index 116a130..cab923c 100644 2007-10-25 Andrew Cagney * Command.java: Rename CLIHandler.java. * ActionsCommand.java: Update. * AliasCommand.java: Update. * AttachCommand.java: Update. * BreakpointCommand.java: Update. * CLI.java: Update. * CoreCommand.java: Update. * DebuginfoCommand.java: Update. * DefsetCommand.java: Update. * DeleteCommand.java: Update. * DetachCommand.java: Update. * DetachCommand.java: Update. * DisableCommand.java: Update. * DisassembleCommand.java: Update. * DisplayCommand.java: Update. * EnableCommand.java: Update. * ExamineCommand.java: Update. * FocusCommand.java: Update. * FrameCommands.java: Update. * GoCommand.java: Update. * HaltCommand.java: Update. * HelpCommand.java: Update. * ListCommand.java: Update. * LoadCommand.java: Update. * PeekCommand.java: Update. * PlocationCommand.java: Update. * PrintCommand.java: Update. * PtypeCommand.java: Update. * QuitCommand.java: Update. * RegsCommand.java: Update. * RunCommand.java: Update. * SetCommand.java: Update. * StepCommand.java: Update. * StepFinishCommand.java: Update. * StepInstructionCommand.java: Update. * StepNextCommand.java: Update. * StepNextiCommand.java: Update. * TestHpdCommandParser.java: Update. * UnaliasCommand.java: Update. * UndefsetCommand.java: Update. * UnsetCommand.java: Update. * ViewsetCommand.java: Update. * WhatCommand.java: Update. * WhereCommand.java: Update. * WhichsetsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: .../frysk/hpd/{CLIHandler.java => Command.java} | 0 1 files changed, 0 insertions(+), 0 deletions(-) rename frysk-core/frysk/hpd/{CLIHandler.java => Command.java} (100%) hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Thu Oct 25 20:45:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Thu, 25 Oct 2007 20:45:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 862f3de8e97dfdb0d3b302631aadd0ddd746a391 Message-ID: <20071025204502.8342.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 862f3de8e97dfdb0d3b302631aadd0ddd746a391 (commit) from 646d3b573b584bd6b2742e4d780f15812a20402f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 862f3de8e97dfdb0d3b302631aadd0ddd746a391 Author: Tim Moore Date: Thu Oct 25 22:41:30 2007 +0200 Add links to Eclipse files in frysk-top ----------------------------------------------------------------------- Summary of changes: .cdtproject | 1 + .classpath | 1 + .externalToolBuilders | 1 + .project | 1 + .settings | 1 + 5 files changed, 5 insertions(+), 0 deletions(-) create mode 120000 .cdtproject create mode 120000 .classpath create mode 120000 .externalToolBuilders create mode 120000 .project create mode 120000 .settings hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Oct 25 20:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 25 Oct 2007 20:49:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. fd329abe0e4e4795836c5364e76e15d3dbd69ef2 Message-ID: <20071025204914.10697.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via fd329abe0e4e4795836c5364e76e15d3dbd69ef2 (commit) via 630181014b0dbbb3ac51b972a2ce42af76e5b243 (commit) from 862f3de8e97dfdb0d3b302631aadd0ddd746a391 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fd329abe0e4e4795836c5364e76e15d3dbd69ef2 Merge: 630181014b0dbbb3ac51b972a2ce42af76e5b243 862f3de8e97dfdb0d3b302631aadd0ddd746a391 Author: Andrew Cagney Date: Thu Oct 25 16:47:16 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 630181014b0dbbb3ac51b972a2ce42af76e5b243 Author: Andrew Cagney Date: Thu Oct 25 16:46:49 2007 -0400 index 116a130..b6ab290 100644 frysk-core/frysk/hpd/ChangeLog 2007-10-25 Andrew Cagney * CommandHandler.java: Delete. * Command.java: Rename CLIHandler.java; do not extend CommandHandler. * ActionsCommand.java: Update. * AliasCommand.java: Update. * AttachCommand.java: Update. * BreakpointCommand.java: Update. * CLI.java: Update. * CoreCommand.java: Update. * DebuginfoCommand.java: Update. * DefsetCommand.java: Update. * DeleteCommand.java: Update. * DetachCommand.java: Update. * DetachCommand.java: Update. * DisableCommand.java: Update. * DisassembleCommand.java: Update. * DisplayCommand.java: Update. * EnableCommand.java: Update. * ExamineCommand.java: Update. * FocusCommand.java: Update. * FrameCommands.java: Update. * GoCommand.java: Update. * HaltCommand.java: Update. * HelpCommand.java: Update. * ListCommand.java: Update. * LoadCommand.java: Update. * PeekCommand.java: Update. * PlocationCommand.java: Update. * PrintCommand.java: Update. * PtypeCommand.java: Update. * QuitCommand.java: Update. * RegsCommand.java: Update. * RunCommand.java: Update. * SetCommand.java: Update. * StepCommand.java: Update. * StepFinishCommand.java: Update. * StepInstructionCommand.java: Update. * StepNextCommand.java: Update. * StepNextiCommand.java: Update. * TestHpdCommandParser.java: Update. * UnaliasCommand.java: Update. * UndefsetCommand.java: Update. * UnsetCommand.java: Update. * ViewsetCommand.java: Update. * WhatCommand.java: Update. * WhereCommand.java: Update. * WhichsetsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CommandHandler.java | 46 ------------------------------ 1 files changed, 0 insertions(+), 46 deletions(-) delete mode 100644 frysk-core/frysk/hpd/CommandHandler.java hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Oct 25 21:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 25 Oct 2007 21:13:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. e6a66b64f5f3f7c189ac416a8df669a786202cbe Message-ID: <20071025211314.30764.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via e6a66b64f5f3f7c189ac416a8df669a786202cbe (commit) from fd329abe0e4e4795836c5364e76e15d3dbd69ef2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e6a66b64f5f3f7c189ac416a8df669a786202cbe Author: Andrew Cagney Date: Thu Oct 25 17:10:46 2007 -0400 index 116a130..ee604bf 100644 frysk-core/frysk/hpd/ChangeLog 2007-10-25 Andrew Cagney * Command.java (parse(Input)): Rename, handle(Input). * PeekCommand.java: Update. * LoadCommand.java: Update. * ExamineCommand.java: Update. * RegsCommand.java: Update. * DisassembleCommand.java: Update. * CoreCommand.java: Update. * RunCommand.java: Update. * DisplayCommand.java: Update. * WhichsetsCommand.java: Update. * WhereCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UnsetCommand.java: Update. * UndefsetCommand.java: Update. * UnaliasCommand.java: Update. * StepInstructionCommand.java: Update. * StepCommand.java: Update. * SetCommand.java: Update. * QuitCommand.java: Update. * PtypeCommand.java: Update. * PlocationCommand.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * ListCommand.java: Update. * HelpCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FocusCommand.java: Update. * StepFinishCommand.java: Update. * EnableCommand.java: Update. * FrameCommands.java: Update. * DisableCommand.java: Update. * DetachCommand.java: Update. * DeleteCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * BreakpointCommand.java: Update. * PrintCommand.java: Update. * AttachCommand.java: Update. * AliasCommand.java: Update. * ActionsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 4 +- frysk-core/frysk/hpd/AliasCommand.java | 4 +- frysk-core/frysk/hpd/AttachCommand.java | 4 +- frysk-core/frysk/hpd/BreakpointCommand.java | 4 +- frysk-core/frysk/hpd/CLI.java | 8 +- frysk-core/frysk/hpd/ChangeLog | 91 ++++++++++++++++++++++ frysk-core/frysk/hpd/Command.java | 62 +++++++-------- frysk-core/frysk/hpd/CoreCommand.java | 4 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 4 +- frysk-core/frysk/hpd/DefsetCommand.java | 4 +- frysk-core/frysk/hpd/DeleteCommand.java | 4 +- frysk-core/frysk/hpd/DetachCommand.java | 4 +- frysk-core/frysk/hpd/DisableCommand.java | 4 +- frysk-core/frysk/hpd/DisassembleCommand.java | 4 +- frysk-core/frysk/hpd/DisplayCommand.java | 4 +- frysk-core/frysk/hpd/EnableCommand.java | 4 +- frysk-core/frysk/hpd/ExamineCommand.java | 4 +- frysk-core/frysk/hpd/FocusCommand.java | 4 +- frysk-core/frysk/hpd/FrameCommands.java | 4 +- frysk-core/frysk/hpd/GoCommand.java | 4 +- frysk-core/frysk/hpd/HaltCommand.java | 4 +- frysk-core/frysk/hpd/HelpCommand.java | 4 +- frysk-core/frysk/hpd/ListCommand.java | 4 +- frysk-core/frysk/hpd/LoadCommand.java | 4 +- frysk-core/frysk/hpd/PeekCommand.java | 4 +- frysk-core/frysk/hpd/PlocationCommand.java | 4 +- frysk-core/frysk/hpd/PrintCommand.java | 4 +- frysk-core/frysk/hpd/PtypeCommand.java | 4 +- frysk-core/frysk/hpd/QuitCommand.java | 6 +- frysk-core/frysk/hpd/RegsCommand.java | 4 +- frysk-core/frysk/hpd/RunCommand.java | 4 +- frysk-core/frysk/hpd/SetCommand.java | 4 +- frysk-core/frysk/hpd/StepCommand.java | 4 +- frysk-core/frysk/hpd/StepFinishCommand.java | 4 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 4 +- frysk-core/frysk/hpd/StepNextCommand.java | 4 +- frysk-core/frysk/hpd/StepNextiCommand.java | 4 +- frysk-core/frysk/hpd/TestHpdCommandParser.java | 4 +- frysk-core/frysk/hpd/UnaliasCommand.java | 4 +- frysk-core/frysk/hpd/UndefsetCommand.java | 4 +- frysk-core/frysk/hpd/UnsetCommand.java | 4 +- frysk-core/frysk/hpd/ViewsetCommand.java | 4 +- frysk-core/frysk/hpd/WhatCommand.java | 4 +- frysk-core/frysk/hpd/WhereCommand.java | 4 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 4 +- 45 files changed, 209 insertions(+), 122 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Fri Oct 26 08:50:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Fri, 26 Oct 2007 08:50:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 92ef039427bad9cadc3285a108c72896db587d29 Message-ID: <20071026085036.3297.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 92ef039427bad9cadc3285a108c72896db587d29 (commit) from e6a66b64f5f3f7c189ac416a8df669a786202cbe (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 92ef039427bad9cadc3285a108c72896db587d29 Author: Zhao Shujing Date: Fri Oct 26 16:48:52 2007 +0800 2007-10-26 Zhao Shujing * disassembler/DisassemblyWindow.java: remove the GtkWindow Warning. ----------------------------------------------------------------------- Summary of changes: frysk-gui/frysk/gui/ChangeLog | 4 + .../frysk/gui/gladedir/disassemblywindow.glade | 97 -------------------- 2 files changed, 4 insertions(+), 97 deletions(-) hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Oct 26 15:17:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 26 Oct 2007 15:17:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 1368769efdab16f79dd7fa501951af12a3f59cee Message-ID: <20071026151745.24009.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 1368769efdab16f79dd7fa501951af12a3f59cee (commit) via b6d6ee78054d1c76a7f16ade71c2d6e3d5b869e7 (commit) from 92ef039427bad9cadc3285a108c72896db587d29 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1368769efdab16f79dd7fa501951af12a3f59cee Merge: b6d6ee78054d1c76a7f16ade71c2d6e3d5b869e7 92ef039427bad9cadc3285a108c72896db587d29 Author: Mark Wielaard Date: Fri Oct 26 17:15:43 2007 +0200 Merge branch 'master' of git://sourceware.org/git/frysk commit b6d6ee78054d1c76a7f16ade71c2d6e3d5b869e7 Author: Mark Wielaard Date: Fri Oct 26 17:15:21 2007 +0200 Don't subtract one from EFLAGS bit mask. 2007-10-26 Mark Wielaard * RegsCase.java (IA32): Don't subtract one from EFLAGS bit mask. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/testbed/ChangeLog | 4 ++++ frysk-core/frysk/testbed/RegsCase.java | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Oct 26 15:44:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 26 Oct 2007 15:44:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 1d5c19a29134213e956b21064bb21ea80850d7b6 Message-ID: <20071026154452.11136.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 1d5c19a29134213e956b21064bb21ea80850d7b6 (commit) from 1368769efdab16f79dd7fa501951af12a3f59cee (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1d5c19a29134213e956b21064bb21ea80850d7b6 Author: Mark Wielaard Date: Fri Oct 26 17:43:35 2007 +0200 Find and use correct thread_parent task frame index. 2007-10-26 Mark Wielaard * TestDebugInfoStackTrace.java (frameAssertions): Find and use correct thread_parent task frame index. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 ++ .../frysk/debuginfo/TestDebugInfoStackTrace.java | 50 +++++++++++++------- 2 files changed, 37 insertions(+), 18 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Oct 26 16:07:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 26 Oct 2007 16:07:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 9de39c95de9daba9bffdb74ba37a7fedc52dc50a Message-ID: <20071026160705.30524.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 9de39c95de9daba9bffdb74ba37a7fedc52dc50a (commit) via 69eea99c0a89721c200108fc4c360f82fc33e0fc (commit) from 1d5c19a29134213e956b21064bb21ea80850d7b6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9de39c95de9daba9bffdb74ba37a7fedc52dc50a Merge: 69eea99c0a89721c200108fc4c360f82fc33e0fc 1d5c19a29134213e956b21064bb21ea80850d7b6 Author: Sami Wagiaalla Date: Fri Oct 26 12:06:43 2007 -0400 Reloved conflict: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/debuginfo/ChangeLog commit 69eea99c0a89721c200108fc4c360f82fc33e0fc Author: Sami Wagiaalla Date: Fri Oct 26 12:02:33 2007 -0400 frysk-core/frysk/debuginfo/ChangeLog +2007-10-26 Sami Wagiaalla + + Changed ExprSymTab.getVariable return type to ObjectDeclaration + * TestAddress.java: Updated. + * DebugInfoEvaluator.java: Updated. + frysk-core/frysk/expr/ChangeLog +2007-10-26 Sami Wagiaalla + + * ExprSymTab.java (getVariable): Changed return type + from Variable to ObjectDeclaration + * TestbedSymTab.java: Updated. + * ScratchSymTab.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 ++++++ frysk-core/frysk/debuginfo/DebugInfoEvaluator.java | 7 ++++--- frysk-core/frysk/debuginfo/TestAddress.java | 4 ++-- frysk-core/frysk/expr/ChangeLog | 7 +++++++ frysk-core/frysk/expr/ExprSymTab.java | 4 +++- frysk-core/frysk/expr/ScratchSymTab.java | 4 +++- frysk-core/frysk/expr/TestbedSymTab.java | 4 +++- 7 files changed, 28 insertions(+), 8 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Oct 26 16:38:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 26 Oct 2007 16:38:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 9d154da17b38f74798d04da43d6dd1e3ecaf49ab Message-ID: <20071026163825.3017.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 9d154da17b38f74798d04da43d6dd1e3ecaf49ab (commit) from 9de39c95de9daba9bffdb74ba37a7fedc52dc50a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9d154da17b38f74798d04da43d6dd1e3ecaf49ab Author: Sami Wagiaalla Date: Fri Oct 26 12:33:40 2007 -0400 frysk-core/frysk/expr/ChangeLog + 2007-10-26 Sami Wagiaalla + + Changed return type from Variable to ObjectDeclaration + * CExprAnnotator.g: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprAnnotator.g | 4 ++-- frysk-core/frysk/expr/ChangeLog | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Fri Oct 26 16:51:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Fri, 26 Oct 2007 16:51:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. b75ab5d8afa418e2b35a7d9264b7f25d7c8f6205 Message-ID: <20071026165152.11080.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via b75ab5d8afa418e2b35a7d9264b7f25d7c8f6205 (commit) from 9d154da17b38f74798d04da43d6dd1e3ecaf49ab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b75ab5d8afa418e2b35a7d9264b7f25d7c8f6205 Author: Tim Moore Date: Fri Oct 26 18:51:23 2007 +0200 added libunwind-ppc32 to ignored files ----------------------------------------------------------------------- Summary of changes: frysk-imports/.gitignore | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Fri Oct 26 17:44:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 26 Oct 2007 17:44:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5256b3b9bbdc640e3a733d8eac4ff7d48ff11bc3 Message-ID: <20071026174455.16701.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5256b3b9bbdc640e3a733d8eac4ff7d48ff11bc3 (commit) from b75ab5d8afa418e2b35a7d9264b7f25d7c8f6205 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5256b3b9bbdc640e3a733d8eac4ff7d48ff11bc3 Author: Teresa Thomas Date: Fri Oct 26 13:43:23 2007 -0400 [] implemented as a Type Operator. frysk-core/frysk/expr/ChangeLog 2007-10-26 Teresa Thomas * CExprEvaluator.g (INDEX): New. * CExpr.g (INDEX): New. frysk-core/frysk/value/ChangeLog 2007-10-26 Teresa Thomas * TestArray.java (testIndexOneD): New. (testIndexTwoD): New. * ArrayType.java (index): New. * Type.java (index): New. * TypeDecorator.java (index): New. frysk-core/frysk/pkglibdir/ChangeLog 2007-10-26 Teresa Thomas * funit-addresses.c (num): Delete. (oneD): New. (twoD): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExpr.g | 41 +--- frysk-core/frysk/expr/CExprEvaluator.g | 5 +- frysk-core/frysk/expr/ChangeLog | 5 + frysk-core/frysk/pkglibdir/ChangeLog | 6 + frysk-core/frysk/pkglibdir/funit-addresses.c | 7 +- frysk-core/frysk/value/ArrayType.java | 18 ++ frysk-core/frysk/value/ChangeLog | 8 + frysk-core/frysk/value/TestArray.java | 35 +++ frysk-core/frysk/value/Type.java | 13 +- frysk-core/frysk/value/TypeDecorator.java | 353 +++++++++++++------------- 10 files changed, 276 insertions(+), 215 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Oct 26 18:22:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 26 Oct 2007 18:22:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 3c40fe3f471b1887f0f360814432894068d773e2 Message-ID: <20071026182159.16353.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 3c40fe3f471b1887f0f360814432894068d773e2 (commit) via c2e491058fa86acedadbe989f38d029d1c25f63f (commit) via 85a9e62ae901d4a664ea06a5133d714d9aa965a4 (commit) from 5256b3b9bbdc640e3a733d8eac4ff7d48ff11bc3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3c40fe3f471b1887f0f360814432894068d773e2 Merge: c2e491058fa86acedadbe989f38d029d1c25f63f 5256b3b9bbdc640e3a733d8eac4ff7d48ff11bc3 Author: Andrew Cagney Date: Fri Oct 26 13:50:18 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit c2e491058fa86acedadbe989f38d029d1c25f63f Merge: 85a9e62ae901d4a664ea06a5133d714d9aa965a4 9de39c95de9daba9bffdb74ba37a7fedc52dc50a Author: Andrew Cagney Date: Fri Oct 26 12:27:34 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 85a9e62ae901d4a664ea06a5133d714d9aa965a4 Author: Andrew Cagney Date: Fri Oct 26 12:26:58 2007 -0400 frysk-core/frysk/hpd/ChangeLog 2007-10-26 Andrew Cagney * Command.java (cli): Delete. (Command(String,CLI,CommandHelp)): Delete. (Command(String,String,String,String,String)): Replace Command(CLI,String,String,String,String). (parse(CLI,Input)): Replace parse(Input). (getCLI()): Delete. * TestHpdCommandParser.java: Update. (setUp(), tearDown()): New. * CLI.java: Update. * PeekCommand.java: Update. * LoadCommand.java: Update. * ExamineCommand.java: Update. * RegsCommand.java: Update. * DisassembleCommand.java: Update. * RunCommand.java: Update. * DisplayCommand.java: Update. * WhichsetsCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UnsetCommand.java: Update. * UndefsetCommand.java: Update. * UnaliasCommand.java: Update. * StepInstructionCommand.java: Update. * StepCommand.java: Update. * SetCommand.java: Update. * QuitCommand.java: Update. * PtypeCommand.java: Update. * CoreCommand.java: Update. * PlocationCommand.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * ListCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FocusCommand.java: Update. * StepFinishCommand.java: Update. * EnableCommand.java: Update. * FrameCommands.java: Update. * DetachCommand.java: Update. * DeleteCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * AssignCommand.java: Update. * PrintCommand.java: Update. * AliasCommand.java: Update. * ActionsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 6 +- frysk-core/frysk/hpd/AliasCommand.java | 8 +- frysk-core/frysk/hpd/AssignCommand.java | 6 +- frysk-core/frysk/hpd/AttachCommand.java | 8 +- frysk-core/frysk/hpd/BreakpointCommand.java | 8 +- frysk-core/frysk/hpd/CLI.java | 102 +++++++++--------- frysk-core/frysk/hpd/ChangeLog | 49 +++++++++ frysk-core/frysk/hpd/Command.java | 18 +--- frysk-core/frysk/hpd/CoreCommand.java | 6 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 12 +- frysk-core/frysk/hpd/DefsetCommand.java | 10 +- frysk-core/frysk/hpd/DeleteCommand.java | 6 +- frysk-core/frysk/hpd/DetachCommand.java | 6 +- frysk-core/frysk/hpd/DisableCommand.java | 6 +- frysk-core/frysk/hpd/DisassembleCommand.java | 36 +++--- frysk-core/frysk/hpd/DisplayCommand.java | 6 +- frysk-core/frysk/hpd/EnableCommand.java | 7 +- frysk-core/frysk/hpd/ExamineCommand.java | 8 +- frysk-core/frysk/hpd/FocusCommand.java | 8 +- frysk-core/frysk/hpd/FrameCommands.java | 10 +- frysk-core/frysk/hpd/GoCommand.java | 6 +- frysk-core/frysk/hpd/HaltCommand.java | 6 +- frysk-core/frysk/hpd/HelpCommand.java | 8 +- frysk-core/frysk/hpd/ListCommand.java | 7 +- frysk-core/frysk/hpd/LoadCommand.java | 6 +- frysk-core/frysk/hpd/PeekCommand.java | 6 +- frysk-core/frysk/hpd/PlocationCommand.java | 23 ++--- frysk-core/frysk/hpd/PrintCommand.java | 24 ++--- frysk-core/frysk/hpd/PtypeCommand.java | 21 ++--- frysk-core/frysk/hpd/QuitCommand.java | 33 +++--- frysk-core/frysk/hpd/RegsCommand.java | 10 +- frysk-core/frysk/hpd/RunCommand.java | 123 +++++++++++----------- frysk-core/frysk/hpd/SetCommand.java | 8 +- frysk-core/frysk/hpd/StepCommand.java | 24 ++-- frysk-core/frysk/hpd/StepFinishCommand.java | 24 ++-- frysk-core/frysk/hpd/StepInstructionCommand.java | 22 ++-- frysk-core/frysk/hpd/StepNextCommand.java | 25 ++--- frysk-core/frysk/hpd/StepNextiCommand.java | 38 +++---- frysk-core/frysk/hpd/TestHpdCommandParser.java | 27 +++-- frysk-core/frysk/hpd/UnaliasCommand.java | 8 +- frysk-core/frysk/hpd/UndefsetCommand.java | 10 +- frysk-core/frysk/hpd/UnsetCommand.java | 8 +- frysk-core/frysk/hpd/ViewsetCommand.java | 8 +- frysk-core/frysk/hpd/WhatCommand.java | 6 +- frysk-core/frysk/hpd/WhereCommand.java | 10 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 10 +- 46 files changed, 425 insertions(+), 402 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Oct 26 18:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 26 Oct 2007 18:51:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 42bcf8d26d4d4c2dcfc0599c92726e1d38a27631 Message-ID: <20071026185144.3793.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 42bcf8d26d4d4c2dcfc0599c92726e1d38a27631 (commit) from 3c40fe3f471b1887f0f360814432894068d773e2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 42bcf8d26d4d4c2dcfc0599c92726e1d38a27631 Author: Andrew Cagney Date: Fri Oct 26 14:50:07 2007 -0400 Eliminate never-thrown throw ParseException. frysk-core/frysk/debuginfo/ChangeLog 2007-10-26 Andrew Cagney * DebugInfo.java: Remove throws ParseException. frysk-core/frysk/rt/ChangeLog 2007-10-26 Andrew Cagney * DisplayValue.java: No need to catch catch ParseException. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ frysk-core/frysk/debuginfo/DebugInfo.java | 11 ++++------- frysk-core/frysk/rt/ChangeLog | 4 ++++ frysk-core/frysk/rt/DisplayValue.java | 4 ---- 4 files changed, 12 insertions(+), 11 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Oct 26 19:55:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 26 Oct 2007 19:55:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. fb0e43371490bd13b7bd2597c5bdff4e8a511594 Message-ID: <20071026195517.18026.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via fb0e43371490bd13b7bd2597c5bdff4e8a511594 (commit) via 4305f492d758a25f449e819a1579249629d2b1f3 (commit) from 42bcf8d26d4d4c2dcfc0599c92726e1d38a27631 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fb0e43371490bd13b7bd2597c5bdff4e8a511594 Merge: 4305f492d758a25f449e819a1579249629d2b1f3 42bcf8d26d4d4c2dcfc0599c92726e1d38a27631 Author: Sami Wagiaalla Date: Fri Oct 26 15:55:06 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 4305f492d758a25f449e819a1579249629d2b1f3 Author: Sami Wagiaalla Date: Fri Oct 26 15:54:48 2007 -0400 frysk-core/frysk/debuginfo/ChangeLog +2007-10-26 Sami Wagiaalla + + * ObjectDeclarationSearchEngine.java + (ObjectDeclarationSearchEngine): new. + Now implements ExprSymTab. + Added frame, task and isa variables. + * TestObjectDeclarationSearchEngine.java: Updated. + frysk-core/frysk/scopes/ChangeLog +2007-10-26 Sami Wagiaalla + + Added constructor to ObjectDeclarationSearchEngine which + takes a frame. + * TestDie.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 8 +++ .../debuginfo/ObjectDeclarationSearchEngine.java | 56 +++++++++++++++++++- .../TestObjectDeclarationSearchEngine.java | 15 +++--- frysk-core/frysk/scopes/ChangeLog | 6 ++ frysk-core/frysk/scopes/TestDie.java | 4 +- 5 files changed, 77 insertions(+), 12 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Oct 26 20:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 26 Oct 2007 20:06:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 56cbb281f30fb3108ee52c5bb69f264f9f0d2f2e Message-ID: <20071026200628.30154.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 56cbb281f30fb3108ee52c5bb69f264f9f0d2f2e (commit) via d027f2f86c423eae0bda1c6bebbf479f5a7a48cd (commit) from fb0e43371490bd13b7bd2597c5bdff4e8a511594 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 56cbb281f30fb3108ee52c5bb69f264f9f0d2f2e Merge: d027f2f86c423eae0bda1c6bebbf479f5a7a48cd fb0e43371490bd13b7bd2597c5bdff4e8a511594 Author: Andrew Cagney Date: Fri Oct 26 16:04:20 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit d027f2f86c423eae0bda1c6bebbf479f5a7a48cd Author: Andrew Cagney Date: Fri Oct 26 16:03:59 2007 -0400 Replace java.text.ParseException with frysk.hpd.InvalidCommandException. frysk-core/frysk/hpd/ChangeLog 2007-10-26 Andrew Cagney * Command.java (parse(CLI,Input)): Do not throw ParseException. * InvalidCommandException.java: New. * TestPeekCommand.java: Update. * WhichsetsCommand.java: Update. * WhereCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UnsetCommand.java: Update. * UndefsetCommand.java: Update. * UnaliasCommand.java: Update. * TestSetParser.java: Update. * TestHpdCommandParser.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * StepInstructionCommand.java: Update. * StepFinishCommand.java: Update. * StepCommand.java: Update. * SetNotationParser.java: Update. * SetCommand.java: Update. * RunCommand.java: Update. * RegsCommand.java: Update. * QuitCommand.java: Update. * PtypeCommand.java: Update. * PrintCommand.java: Update. * PlocationCommand.java: Update. * PeekCommand.java: Update. * LoadCommand.java: Update. * ListCommand.java: Update. * Input.java: Update. * HelpCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FrameCommands.java: Update. * FocusCommand.java: Update. * ExamineCommand.java: Update. * EnableCommand.java: Update. * DisplayCommand.java: Update. * DisassembleCommand.java: Update. * DisableCommand.java: Update. * DetachCommand.java: Update. * DeleteCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * CoreCommand.java: Update. * CLI.java: Update. * BreakpointCommand.java: Update. * AttachCommand.java: Update. * AliasCommand.java: Update. * ActionsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 15 +++--- frysk-core/frysk/hpd/AliasCommand.java | 3 +- frysk-core/frysk/hpd/AttachCommand.java | 3 +- frysk-core/frysk/hpd/BreakpointCommand.java | 7 +-- frysk-core/frysk/hpd/CLI.java | 19 +++---- frysk-core/frysk/hpd/ChangeLog | 50 +++++++++++++++++ frysk-core/frysk/hpd/Command.java | 4 +- frysk-core/frysk/hpd/CoreCommand.java | 3 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 3 +- frysk-core/frysk/hpd/DefsetCommand.java | 6 +- frysk-core/frysk/hpd/DeleteCommand.java | 15 +++--- frysk-core/frysk/hpd/DetachCommand.java | 3 +- frysk-core/frysk/hpd/DisableCommand.java | 15 +++--- frysk-core/frysk/hpd/DisassembleCommand.java | 3 +- frysk-core/frysk/hpd/DisplayCommand.java | 7 +-- frysk-core/frysk/hpd/EnableCommand.java | 15 +++--- frysk-core/frysk/hpd/ExamineCommand.java | 3 +- frysk-core/frysk/hpd/FocusCommand.java | 3 +- frysk-core/frysk/hpd/FrameCommands.java | 3 +- frysk-core/frysk/hpd/GoCommand.java | 3 +- frysk-core/frysk/hpd/HaltCommand.java | 3 +- frysk-core/frysk/hpd/HelpCommand.java | 3 +- frysk-core/frysk/hpd/Input.java | 9 ++-- .../InvalidCommandException.java} | 21 ++++--- frysk-core/frysk/hpd/ListCommand.java | 3 +- frysk-core/frysk/hpd/LoadCommand.java | 3 +- frysk-core/frysk/hpd/PeekCommand.java | 3 +- frysk-core/frysk/hpd/PlocationCommand.java | 3 +- frysk-core/frysk/hpd/PrintCommand.java | 7 +-- frysk-core/frysk/hpd/PtypeCommand.java | 3 +- frysk-core/frysk/hpd/QuitCommand.java | 3 +- frysk-core/frysk/hpd/RegsCommand.java | 3 +- frysk-core/frysk/hpd/RunCommand.java | 3 +- frysk-core/frysk/hpd/SetCommand.java | 3 +- frysk-core/frysk/hpd/SetNotationParser.java | 58 +++++++++++--------- frysk-core/frysk/hpd/StepCommand.java | 3 +- frysk-core/frysk/hpd/StepFinishCommand.java | 3 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 3 +- frysk-core/frysk/hpd/StepNextCommand.java | 4 +- frysk-core/frysk/hpd/StepNextiCommand.java | 3 +- frysk-core/frysk/hpd/TestHpdCommandParser.java | 3 +- frysk-core/frysk/hpd/TestPeekCommand.java | 20 +++---- frysk-core/frysk/hpd/TestSetParser.java | 19 +++---- frysk-core/frysk/hpd/UnaliasCommand.java | 3 +- frysk-core/frysk/hpd/UndefsetCommand.java | 3 +- frysk-core/frysk/hpd/UnsetCommand.java | 3 +- frysk-core/frysk/hpd/ViewsetCommand.java | 3 +- frysk-core/frysk/hpd/WhatCommand.java | 3 +- frysk-core/frysk/hpd/WhereCommand.java | 3 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 3 +- 50 files changed, 198 insertions(+), 192 deletions(-) copy frysk-core/frysk/{proc/ProcLogger.java => hpd/InvalidCommandException.java} (89%) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Oct 26 20:47:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 26 Oct 2007 20:47:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. b87196a91c95b4492be52880f63aae352058a916 Message-ID: <20071026204659.26615.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via b87196a91c95b4492be52880f63aae352058a916 (commit) from 56cbb281f30fb3108ee52c5bb69f264f9f0d2f2e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b87196a91c95b4492be52880f63aae352058a916 Author: Andrew Cagney Date: Fri Oct 26 16:45:09 2007 -0400 Delete unused functions. frysk-core/frysk/hpd/ChangeLog 2007-10-26 Andrew Cagney * UserHelp.java (isValidCommand(String)): Delete. (commandHelp): Make private. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 3 +++ frysk-core/frysk/hpd/UserHelp.java | 13 +++---------- 2 files changed, 6 insertions(+), 10 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Oct 26 20:53:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 26 Oct 2007 20:53:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 68491788962c077b6d44265064faf8287b239392 Message-ID: <20071026205354.30891.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 68491788962c077b6d44265064faf8287b239392 (commit) from b87196a91c95b4492be52880f63aae352058a916 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 68491788962c077b6d44265064faf8287b239392 Author: Andrew Cagney Date: Fri Oct 26 16:51:50 2007 -0400 Delete unused. frysk-core/frysk/hpd/ChangeLog 2007-10-26 Andrew Cagney * UserHelp.java (addHelp(String,String,String,String)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 2 ++ frysk-core/frysk/hpd/UserHelp.java | 6 ------ 2 files changed, 2 insertions(+), 6 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Oct 28 18:00:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 28 Oct 2007 18:00:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. a5d0e051ff7a95e27b653a507843718f58a38509 Message-ID: <20071028180054.29116.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via a5d0e051ff7a95e27b653a507843718f58a38509 (commit) from 68491788962c077b6d44265064faf8287b239392 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a5d0e051ff7a95e27b653a507843718f58a38509 Author: Andrew Cagney Date: Sun Oct 28 14:05:49 2007 -0400 Replace cat ParseException with catch RuntimeException frysk-gui/frysk/gui/srcwin/ChangeLog 2007-10-28 Andrew Cagney * SourceView.java: Catch RuntimeException instead of ParseException. * SourceBuffer.java: Ditto. * InlineSourceView.java: Ditto. * InlineBuffer.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-gui/frysk/gui/srcwin/ChangeLog | 8 +++++++ frysk-gui/frysk/gui/srcwin/InlineBuffer.java | 19 +++++----------- frysk-gui/frysk/gui/srcwin/InlineSourceView.java | 23 ++++++-------------- frysk-gui/frysk/gui/srcwin/SourceBuffer.java | 8 +----- frysk-gui/frysk/gui/srcwin/SourceView.java | 24 ++++++--------------- 5 files changed, 30 insertions(+), 52 deletions(-) hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Mon Oct 29 07:18:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Mon, 29 Oct 2007 07:18:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 530c823861f4e5e4f7dacec28042ad4a1985cecb Message-ID: <20071029071839.19771.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 530c823861f4e5e4f7dacec28042ad4a1985cecb (commit) from a5d0e051ff7a95e27b653a507843718f58a38509 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 530c823861f4e5e4f7dacec28042ad4a1985cecb Author: Tim Moore Date: Mon Oct 29 08:18:05 2007 +0100 Removed CVSROOT directory ----------------------------------------------------------------------- Summary of changes: CVSROOT/checkoutlist | 15 ---------- CVSROOT/commitinfo | 17 ------------ CVSROOT/config | 21 -------------- CVSROOT/cvswrappers | 57 --------------------------------------- CVSROOT/editinfo | 21 -------------- CVSROOT/loginfo | 30 --------------------- CVSROOT/modules | 72 -------------------------------------------------- CVSROOT/notify | 12 -------- CVSROOT/rcsinfo | 13 --------- CVSROOT/taginfo | 20 -------------- CVSROOT/verifymsg | 21 -------------- 11 files changed, 0 insertions(+), 299 deletions(-) delete mode 100644 CVSROOT/checkoutlist delete mode 100644 CVSROOT/commitinfo delete mode 100644 CVSROOT/config delete mode 100644 CVSROOT/cvswrappers delete mode 100644 CVSROOT/editinfo delete mode 100644 CVSROOT/loginfo delete mode 100644 CVSROOT/modules delete mode 100644 CVSROOT/notify delete mode 100644 CVSROOT/rcsinfo delete mode 100644 CVSROOT/taginfo delete mode 100644 CVSROOT/verifymsg hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Mon Oct 29 09:25:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 29 Oct 2007 09:25:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 4629c96b8d734004a235b41506f47277210d6748 Message-ID: <20071029092558.26636.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 4629c96b8d734004a235b41506f47277210d6748 (commit) from 530c823861f4e5e4f7dacec28042ad4a1985cecb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 4629c96b8d734004a235b41506f47277210d6748 Author: Mark Wielaard Date: Mon Oct 29 10:25:14 2007 +0100 Fix bug #4895 updateHit gets called for each task. frysk-core/frysk/proc/ChangeLog 2007-10-29 Mark Wielaard * Observable.java (observers): Now a HashMap. (add): Keep count. (delete): Likewise. (contains): New method. (iterator): Use HashMap.keySet(). (removeAllObservers): Likewise. * Task.java (notifyCodeBreakpoint): Check whether observer is contained in the codeObservers of this Task. * TestTaskObserverCode.java (testMultiTaskUpdate): New test. (testMultiTaskUpdateUnblockDelete): Likewise. (requestDummyRun): New variant that takes a Task. frysk-core/frysk/proc/live/ChangeLog 2007-10-29 Mark Wielaard * LinuxTaskState.java (sendContinue): Add logging. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 14 +++ frysk-core/frysk/proc/Observable.java | 43 ++++++-- frysk-core/frysk/proc/Task.java | 5 +- frysk-core/frysk/proc/TestTaskObserverCode.java | 128 +++++++++++++++++++++++ frysk-core/frysk/proc/live/ChangeLog | 4 + frysk-core/frysk/proc/live/LinuxTaskState.java | 2 + 6 files changed, 184 insertions(+), 12 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Oct 29 16:43:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 29 Oct 2007 16:43:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 7d45f23c958ffd6dd41f94dcaf4853c4904c9807 Message-ID: <20071029164329.5087.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 7d45f23c958ffd6dd41f94dcaf4853c4904c9807 (commit) from 4629c96b8d734004a235b41506f47277210d6748 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7d45f23c958ffd6dd41f94dcaf4853c4904c9807 Author: Phil Muldoon Date: Mon Oct 29 16:24:21 2007 +0000 Fix missing pid == null handling. 2007-10-29 Phil Muldoon * fcore.java (dumpPid): Null check return of getProcFromPid. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/fcore.java | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Oct 29 17:25:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 29 Oct 2007 17:25:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 8d575607413cb50db6498e61bc135818e525d8e0 Message-ID: <20071029172540.3481.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 8d575607413cb50db6498e61bc135818e525d8e0 (commit) from 7d45f23c958ffd6dd41f94dcaf4853c4904c9807 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8d575607413cb50db6498e61bc135818e525d8e0 Author: Teresa Thomas Date: Mon Oct 29 13:24:57 2007 -0400 frysk-core/frysk/value/ChangeLog 2007-10-29 Teresa Thomas * PointerType.java (add): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 4 ++++ frysk-core/frysk/value/PointerType.java | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Oct 29 18:23:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 29 Oct 2007 18:23:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 7cea33b7004b2ffc60b93569c87b9553e901ec9d Message-ID: <20071029182244.13459.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 7cea33b7004b2ffc60b93569c87b9553e901ec9d (commit) from 8d575607413cb50db6498e61bc135818e525d8e0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7cea33b7004b2ffc60b93569c87b9553e901ec9d Author: Teresa Thomas Date: Mon Oct 29 14:21:53 2007 -0400 Delete function getValueFIXME and unused expr operations. frysk-core/frysk/expr/ChangeLog 2007-10-29 Teresa Thomas * CExprEvaluator.g (REFERENCE): Delete. * CExpr.g (REFERENCE): Delete. (SUBSCRIPT): Delete. * ScratchSymTab.java (getValueFIXME): Delete. * ExprSymTab.java (getValueFIXME): Delete. frysk-core/frysk/debuginfo/ChangeLog 2007-10-29 Teresa Thomas * DebugInfoEvaluator.java (getValueFIXME): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 +++ frysk-core/frysk/debuginfo/DebugInfoEvaluator.java | 26 -------------------- frysk-core/frysk/expr/CExpr.g | 2 - frysk-core/frysk/expr/CExprEvaluator.g | 14 +---------- frysk-core/frysk/expr/ChangeLog | 8 ++++++ frysk-core/frysk/expr/ExprSymTab.java | 10 ------- frysk-core/frysk/expr/ScratchSymTab.java | 11 -------- 7 files changed, 13 insertions(+), 62 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Oct 29 18:56:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 29 Oct 2007 18:56:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. ab163c6796f68e64132cd5dfd64a5a3fc5f08f8e Message-ID: <20071029185634.1168.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via ab163c6796f68e64132cd5dfd64a5a3fc5f08f8e (commit) from 7cea33b7004b2ffc60b93569c87b9553e901ec9d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ab163c6796f68e64132cd5dfd64a5a3fc5f08f8e Author: Sami Wagiaalla Date: Mon Oct 29 14:43:34 2007 -0400 frysk-core/frysk/bindir/ChangeLog +2007-10-29 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashV): Marked as + unresolved(5156). + frysk-core/frysk/hpd/ChangeLog +2007-10-29 Sami Wagiaalla + + * TestWhereCommand.java (testFhpdVirtualStackTrace): Marked as + unresolved(5156). + (testFhpdVirtualStackTraceWithScopes): Ditto. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/TestFstack.java | 3 +++ frysk-core/frysk/hpd/ChangeLog | 6 ++++++ frysk-core/frysk/hpd/TestWhereCommand.java | 6 ++++++ 4 files changed, 20 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Oct 29 20:48:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 29 Oct 2007 20:48:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 4dae4663bb90f5012e8d574a1078272f918f2b19 Message-ID: <20071029204814.16419.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 4dae4663bb90f5012e8d574a1078272f918f2b19 (commit) via 7e44e3b7a52fd77aa23fc5383829ddd4e48f75e1 (commit) from ab163c6796f68e64132cd5dfd64a5a3fc5f08f8e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 4dae4663bb90f5012e8d574a1078272f918f2b19 Author: Andrew Cagney Date: Mon Oct 29 16:42:10 2007 -0400 Rename HpdCommandParser to OptionParser. frysk-core/frysk/hpd/ChangeLog 2007-10-29 Andrew Cagney * OptionParser.java: Rename HpdCommandParser.java; make members private; use Iterator, List and LinkedList. (setHeader(String)): Delete. (setFooter(String)): Delete. * TestOptionParser.java: Rename TestHpdCommandParser.java. * DisassembleCommand.java: Update. (addOptions): Delete. * Command.java: Update. * CoreCommand.java: Update. * ExamineCommand.java: Update. * PeekCommand.java: Update. * LoadCommand.java: Update. commit 7e44e3b7a52fd77aa23fc5383829ddd4e48f75e1 Author: Andrew Cagney Date: Mon Oct 29 16:31:53 2007 -0400 Rename HpdCommandParser to OptionParser; cleanup. frysk-core/frysk/hpd/ChangeLog 2007-10-29 Andrew Cagney * OptionParser.java: Rename HpdCommandParser.java; make members private; use Iterator, List and LinkedList. (setHeader(String)): Delete. (setFooter(String)): Delete. * TestOptionParser.java: Rename TestHpdCommandParser.java. * DisassembleCommand.java: Update. (addOptions): Delete. * Command.java: Update. * CoreCommand.java: Update. * ExamineCommand.java: Update. * PeekCommand.java: Update. * LoadCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 15 +++ frysk-core/frysk/hpd/Command.java | 6 +- frysk-core/frysk/hpd/CoreCommand.java | 12 +- frysk-core/frysk/hpd/DisassembleCommand.java | 14 +-- frysk-core/frysk/hpd/ExamineCommand.java | 11 +- frysk-core/frysk/hpd/LoadCommand.java | 18 +-- .../{HpdCommandParser.java => OptionParser.java} | 125 ++++++++++---------- frysk-core/frysk/hpd/PeekCommand.java | 23 +--- ...HpdCommandParser.java => TestOptionParser.java} | 13 +-- 9 files changed, 112 insertions(+), 125 deletions(-) rename frysk-core/frysk/hpd/{HpdCommandParser.java => OptionParser.java} (66%) rename frysk-core/frysk/hpd/{TestHpdCommandParser.java => TestOptionParser.java} (94%) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Oct 29 21:14:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 29 Oct 2007 21:14:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. a98265b7e66e273ae5df319847afa0ac2902b8a8 Message-ID: <20071029211444.7289.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via a98265b7e66e273ae5df319847afa0ac2902b8a8 (commit) from 4dae4663bb90f5012e8d574a1078272f918f2b19 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a98265b7e66e273ae5df319847afa0ac2902b8a8 Author: Sami Wagiaalla Date: Mon Oct 29 17:14:33 2007 -0400 frysk-core/frysk/debuginfo/ChangeLog +2007-10-29 Sami Wagiaalla + + * TestAddress.java: Replaced DebugInfoEvaluator with + ObjectDeclarationSearchEngine. + * DebugInfo.java: Ditto. + * DebugInfoEvaluator.java: Deleted. + * ObjectDeclarationSearchEngine.java (getValueFIXME): Deleted. + (getValue): Added handling for register fetching. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 9 + frysk-core/frysk/debuginfo/DebugInfo.java | 4 +- frysk-core/frysk/debuginfo/DebugInfoEvaluator.java | 177 -------------------- .../debuginfo/ObjectDeclarationSearchEngine.java | 23 ++- frysk-core/frysk/debuginfo/TestAddress.java | 6 +- 5 files changed, 32 insertions(+), 187 deletions(-) delete mode 100644 frysk-core/frysk/debuginfo/DebugInfoEvaluator.java hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Oct 29 22:12:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 29 Oct 2007 22:12:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 034104129a3dc46105b04a07d0bebb1789ef0c4d Message-ID: <20071029221232.24768.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 034104129a3dc46105b04a07d0bebb1789ef0c4d (commit) via 0544e01deeb240855eb33851a7dc3c7e4ec0d2ae (commit) from a98265b7e66e273ae5df319847afa0ac2902b8a8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 034104129a3dc46105b04a07d0bebb1789ef0c4d Merge: 0544e01deeb240855eb33851a7dc3c7e4ec0d2ae a98265b7e66e273ae5df319847afa0ac2902b8a8 Author: Andrew Cagney Date: Mon Oct 29 18:10:41 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 0544e01deeb240855eb33851a7dc3c7e4ec0d2ae Author: Andrew Cagney Date: Mon Oct 29 18:10:20 2007 -0400 Add Input.accept() making class more parser friendly; test. frysk-core/frysk/hpd/ChangeLog 2007-10-29 Andrew Cagney * Input.java (accept()): New. (Input(String)): Do not accept first token. (getParameters()): Return a List. (parameter(int)): New. (size()): New. * TestInput.java: New file. * CLI.java: Call Input.accept(). * QuitCommand.java: Ditto. * StepInstructionCommand.java: Update. * PrintCommand.java: Update. * UndefsetCommand.java: Update. * WhatCommand.java: Update. * WhereCommand.java: Update. * WhichsetsCommand.java: Update. * ViewsetCommand.java: Update. * StepFinishCommand.java: Update. * UnaliasCommand.java: Update. * UnsetCommand.java: Update. * StepNextiCommand.java: Update. * TestOptionParser.java: Update. * PlocationCommand.java: Update. * AliasCommand.java: Update. * StepNextCommand.java: Update. * RunCommand.java: Update. * RegsCommand.java: Update. * StepCommand.java: Update. * PeekCommand.java: Update. * ActionsCommand.java: Update. * SetCommand.java: Update. * PtypeCommand.java: Update. * AttachCommand.java: Update. * BreakpointCommand.java: Update. * CoreCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * DeleteCommand.java: Update. * DetachCommand.java: Update. * DisableCommand.java: Update. * DisassembleCommand.java: Update. * EnableCommand.java: Update. * DisplayCommand.java: Update. * FocusCommand.java: Update. * ExamineCommand.java: Update. * GoCommand.java: Update. * FrameCommands.java: Update. * HaltCommand.java: Update. * HelpCommand.java: Update. * ListCommand.java: Update. * LoadCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 17 ++-- frysk-core/frysk/hpd/AliasCommand.java | 16 ++-- frysk-core/frysk/hpd/AttachCommand.java | 18 ++-- frysk-core/frysk/hpd/BreakpointCommand.java | 6 +- frysk-core/frysk/hpd/CLI.java | 2 +- frysk-core/frysk/hpd/ChangeLog | 50 ++++++++++ frysk-core/frysk/hpd/CoreCommand.java | 13 +-- frysk-core/frysk/hpd/DebuginfoCommand.java | 6 +- frysk-core/frysk/hpd/DefsetCommand.java | 11 +-- frysk-core/frysk/hpd/DeleteCommand.java | 8 +- frysk-core/frysk/hpd/DetachCommand.java | 4 +- frysk-core/frysk/hpd/DisableCommand.java | 8 +- frysk-core/frysk/hpd/DisassembleCommand.java | 22 ++--- frysk-core/frysk/hpd/DisplayCommand.java | 14 ++-- frysk-core/frysk/hpd/EnableCommand.java | 9 +- frysk-core/frysk/hpd/ExamineCommand.java | 6 +- frysk-core/frysk/hpd/FocusCommand.java | 11 +-- frysk-core/frysk/hpd/FrameCommands.java | 8 +- frysk-core/frysk/hpd/GoCommand.java | 4 +- frysk-core/frysk/hpd/HaltCommand.java | 4 +- frysk-core/frysk/hpd/HelpCommand.java | 6 +- frysk-core/frysk/hpd/Input.java | 102 +++++++++++++------- frysk-core/frysk/hpd/ListCommand.java | 18 ++-- frysk-core/frysk/hpd/LoadCommand.java | 10 +-- frysk-core/frysk/hpd/PeekCommand.java | 8 +- frysk-core/frysk/hpd/PlocationCommand.java | 6 +- frysk-core/frysk/hpd/PrintCommand.java | 14 +-- frysk-core/frysk/hpd/PtypeCommand.java | 6 +- frysk-core/frysk/hpd/QuitCommand.java | 2 +- frysk-core/frysk/hpd/RegsCommand.java | 8 +- frysk-core/frysk/hpd/RunCommand.java | 18 +--- frysk-core/frysk/hpd/SetCommand.java | 23 ++--- frysk-core/frysk/hpd/StepCommand.java | 4 +- frysk-core/frysk/hpd/StepFinishCommand.java | 4 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 4 +- frysk-core/frysk/hpd/StepNextCommand.java | 4 +- frysk-core/frysk/hpd/StepNextiCommand.java | 4 +- .../frysk/hpd/TestInput.java | 69 ++++++------- frysk-core/frysk/hpd/TestOptionParser.java | 5 +- frysk-core/frysk/hpd/UnaliasCommand.java | 9 +- frysk-core/frysk/hpd/UndefsetCommand.java | 9 +- frysk-core/frysk/hpd/UnsetCommand.java | 11 +-- frysk-core/frysk/hpd/ViewsetCommand.java | 12 +-- frysk-core/frysk/hpd/WhatCommand.java | 8 +- frysk-core/frysk/hpd/WhereCommand.java | 10 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 12 +-- 46 files changed, 300 insertions(+), 323 deletions(-) copy frysk-sys/frysk/sys/termios/cni/Special.cxx => frysk-core/frysk/hpd/TestInput.java (62%) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Oct 29 23:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 29 Oct 2007 23:05:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. dacc59358eb2afc6fa9f5e6726aec527dfadd403 Message-ID: <20071029230523.23783.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via dacc59358eb2afc6fa9f5e6726aec527dfadd403 (commit) from 034104129a3dc46105b04a07d0bebb1789ef0c4d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit dacc59358eb2afc6fa9f5e6726aec527dfadd403 Author: Andrew Cagney Date: Mon Oct 29 19:03:37 2007 -0400 Add MultiLevelCommand, and TopLevelCommand. frysk-core/frysk/hpd/ChangeLog 2007-10-29 Andrew Cagney * CLI.java (execCommand(String)): Use TopLevelCommand. (topLevelCommand): New. * TopLevelCommand.java: New. * MultiLevelCommand.java: New. * TestOptionParser.java: Simplify. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 19 +-- frysk-core/frysk/hpd/ChangeLog | 6 + frysk-core/frysk/hpd/TestOptionParser.java | 197 +++++++++++++--------------- 3 files changed, 101 insertions(+), 121 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Oct 30 02:28:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 30 Oct 2007 02:28:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. d93af7ec2b4a7d0c4771d6f55556f959748c8712 Message-ID: <20071030022809.2685.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via d93af7ec2b4a7d0c4771d6f55556f959748c8712 (commit) from dacc59358eb2afc6fa9f5e6726aec527dfadd403 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d93af7ec2b4a7d0c4771d6f55556f959748c8712 Author: Andrew Cagney Date: Mon Oct 29 22:26:18 2007 -0400 Rename Command.parse() to Command.interpret() to match interpreter pattern. frysk-core/frysk/hpd/ChangeLog 2007-10-29 Andrew Cagney * Command.java (interpret(CLI,Input)): Rename parse(CLI,Input). * CLI.java: Update. * UnaliasCommand.java: Update. * WhichsetsCommand.java: Update. * WhereCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UnsetCommand.java: Update. * UndefsetCommand.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * StepInstructionCommand.java: Update. * StepFinishCommand.java: Update. * StepCommand.java: Update. * SetCommand.java: Update. * RunCommand.java: Update. * RegsCommand.java: Update. * QuitCommand.java: Update. * PtypeCommand.java: Update. * PrintCommand.java: Update. * PlocationCommand.java: Update. * PeekCommand.java: Update. * MultiLevelCommand.java: Update. * LoadCommand.java: Update. * ListCommand.java: Update. * HelpCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FrameCommands.java: Update. * FocusCommand.java: Update. * ExamineCommand.java: Update. * EnableCommand.java: Update. * DisplayCommand.java: Update. * DisassembleCommand.java: Update. * DisableCommand.java: Update. * DetachCommand.java: Update. * DeleteCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * CoreCommand.java: Update. * BreakpointCommand.java: Update. * AttachCommand.java: Update. * AliasCommand.java: Update. * ActionsCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionsCommand.java | 2 +- frysk-core/frysk/hpd/AliasCommand.java | 2 +- frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/BreakpointCommand.java | 2 +- frysk-core/frysk/hpd/CLI.java | 2 +- frysk-core/frysk/hpd/ChangeLog | 45 ++++++++++++++++++++++ frysk-core/frysk/hpd/Command.java | 2 +- frysk-core/frysk/hpd/CoreCommand.java | 2 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 2 +- frysk-core/frysk/hpd/DefsetCommand.java | 2 +- frysk-core/frysk/hpd/DeleteCommand.java | 2 +- frysk-core/frysk/hpd/DetachCommand.java | 2 +- frysk-core/frysk/hpd/DisableCommand.java | 2 +- frysk-core/frysk/hpd/DisassembleCommand.java | 2 +- frysk-core/frysk/hpd/DisplayCommand.java | 2 +- frysk-core/frysk/hpd/EnableCommand.java | 2 +- frysk-core/frysk/hpd/ExamineCommand.java | 2 +- frysk-core/frysk/hpd/FocusCommand.java | 2 +- frysk-core/frysk/hpd/FrameCommands.java | 2 +- frysk-core/frysk/hpd/GoCommand.java | 2 +- frysk-core/frysk/hpd/HaltCommand.java | 2 +- frysk-core/frysk/hpd/HelpCommand.java | 2 +- frysk-core/frysk/hpd/ListCommand.java | 2 +- frysk-core/frysk/hpd/LoadCommand.java | 2 +- frysk-core/frysk/hpd/PeekCommand.java | 2 +- frysk-core/frysk/hpd/PlocationCommand.java | 2 +- frysk-core/frysk/hpd/PrintCommand.java | 2 +- frysk-core/frysk/hpd/PtypeCommand.java | 2 +- frysk-core/frysk/hpd/QuitCommand.java | 4 +- frysk-core/frysk/hpd/RegsCommand.java | 2 +- frysk-core/frysk/hpd/RunCommand.java | 2 +- frysk-core/frysk/hpd/SetCommand.java | 2 +- frysk-core/frysk/hpd/StepCommand.java | 2 +- frysk-core/frysk/hpd/StepFinishCommand.java | 2 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 2 +- frysk-core/frysk/hpd/StepNextCommand.java | 2 +- frysk-core/frysk/hpd/StepNextiCommand.java | 2 +- frysk-core/frysk/hpd/UnaliasCommand.java | 2 +- frysk-core/frysk/hpd/UndefsetCommand.java | 2 +- frysk-core/frysk/hpd/UnsetCommand.java | 2 +- frysk-core/frysk/hpd/ViewsetCommand.java | 2 +- frysk-core/frysk/hpd/WhatCommand.java | 2 +- frysk-core/frysk/hpd/WhereCommand.java | 2 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 2 +- 44 files changed, 89 insertions(+), 44 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Oct 30 11:30:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 30 Oct 2007 11:30:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5144e6d4b597dec48bfb246a30a51ab33369ee0d Message-ID: <20071030113030.19471.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5144e6d4b597dec48bfb246a30a51ab33369ee0d (commit) from d93af7ec2b4a7d0c4771d6f55556f959748c8712 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5144e6d4b597dec48bfb246a30a51ab33369ee0d Author: Stan Cox Date: Mon Oct 29 21:23:57 2007 -0400 Add generated type test framework * Makefile.rules (JUnitTests.java): Use files-java.list. * Makefile.am (pkglib_PROGRAMS): Add funit-type-entry. * TestTypeEntryType.shjava: New file. * TestTypeEntryValue.shjava: New file. * gen-type-expect-tests.py: New file. ----------------------------------------------------------------------- Summary of changes: .../frysk/debuginfo/TestTypeEntryType.shjava | 5 + .../frysk/debuginfo/TestTypeEntryValue.shjava | 3 + .../frysk/debuginfo/gen-type-expect-tests.py | 261 ++++++++++++++++++++ frysk-core/frysk/pkglibdir/funit-type-entry.sh | 4 + frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 253 +++++++++++++++++++ 5 files changed, 526 insertions(+), 0 deletions(-) create mode 100644 frysk-core/frysk/debuginfo/TestTypeEntryType.shjava create mode 100644 frysk-core/frysk/debuginfo/TestTypeEntryValue.shjava create mode 100644 frysk-core/frysk/debuginfo/gen-type-expect-tests.py create mode 100644 frysk-core/frysk/pkglibdir/funit-type-entry.sh create mode 100644 frysk-core/frysk/pkglibdir/gen-type-funit-tests.py hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Tue Oct 30 11:44:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Tue, 30 Oct 2007 11:44:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f11f04ecd60a5b695f9a5f5e9c90429d558ff9e0 Message-ID: <20071030114409.27441.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f11f04ecd60a5b695f9a5f5e9c90429d558ff9e0 (commit) from 5144e6d4b597dec48bfb246a30a51ab33369ee0d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f11f04ecd60a5b695f9a5f5e9c90429d558ff9e0 Author: Tim Moore Date: Tue Oct 30 12:38:05 2007 +0100 Start rewriting documentation to reflect the change from CVS to Git ----------------------------------------------------------------------- Summary of changes: htdocs/build/git-fu.html | 13 ++++++++++++- htdocs/build/index.html | 26 ++++++++++---------------- 2 files changed, 22 insertions(+), 17 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Oct 30 14:28:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 30 Oct 2007 14:28:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. eb1389135847c29164b25cd2c6ad986b774f8cf5 Message-ID: <20071030142844.6312.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via eb1389135847c29164b25cd2c6ad986b774f8cf5 (commit) via 28189fe0fd5348e3c716916ef0f818ebc599ace2 (commit) from f11f04ecd60a5b695f9a5f5e9c90429d558ff9e0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit eb1389135847c29164b25cd2c6ad986b774f8cf5 Merge: 28189fe0fd5348e3c716916ef0f818ebc599ace2 f11f04ecd60a5b695f9a5f5e9c90429d558ff9e0 Author: Stan Cox Date: Tue Oct 30 10:11:46 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk commit 28189fe0fd5348e3c716916ef0f818ebc599ace2 Author: Stan Cox Date: Tue Oct 30 09:47:01 2007 -0400 Support generated type test framework. * Makefile.rules (JUnitTests.java): Use files-java.list. * Makefile.am (pkglib_PROGRAMS): Add funit-type-entry. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.rules | 5 +++-- frysk-core/ChangeLog | 4 ++++ frysk-core/Makefile.am | 12 ++++++++++++ frysk-core/frysk/debuginfo/ChangeLog | 6 ++++++ frysk-core/frysk/pkglibdir/ChangeLog | 5 +++++ 6 files changed, 34 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Oct 30 15:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 30 Oct 2007 15:40:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 46142009832e842b692e37de660e5666653b6a50 Message-ID: <20071030154028.26863.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 46142009832e842b692e37de660e5666653b6a50 (commit) from eb1389135847c29164b25cd2c6ad986b774f8cf5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 46142009832e842b692e37de660e5666653b6a50 Author: Andrew Cagney Date: Tue Oct 30 11:38:51 2007 -0400 Really add MultiLevelCommand.java and TopLevelCommand.java? ----------------------------------------------------------------------- Summary of changes: .../hpd/{Command.java => MultiLevelCommand.java} | 67 ++++++++++++++----- .../hpd/{Command.java => TopLevelCommand.java} | 69 ++++++++++++++------ 2 files changed, 100 insertions(+), 36 deletions(-) copy frysk-core/frysk/hpd/{Command.java => MultiLevelCommand.java} (58%) copy frysk-core/frysk/hpd/{Command.java => TopLevelCommand.java} (55%) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Oct 30 16:26:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 30 Oct 2007 16:26:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. aac94ab6cd473f4f7053398dcc7e86fd13609119 Message-ID: <20071030162611.26240.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via aac94ab6cd473f4f7053398dcc7e86fd13609119 (commit) via 801f9a2d375c50f0614377866055223b81bb6a05 (commit) via dda0823a9480cd9cc0744f11b8878c8c9697b78f (commit) from 46142009832e842b692e37de660e5666653b6a50 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit aac94ab6cd473f4f7053398dcc7e86fd13609119 Author: Andrew Cagney Date: Tue Oct 30 12:23:21 2007 -0400 Detect "main" in .c and .cxx generator scripts. frysk-common/ChangeLog 2007-10-30 Andrew Cagney * Makefile.gen.sh (has_main): Handle .c-in, .cxx-in, .c-sh, and .cxx-sh files. frysk-core/frysk/pkglibdir/ChangeLog 2007-10-30 Andrew Cagney * funit-type-entry.c-sh: Add main() marker for Makefile.gen.sh. commit 801f9a2d375c50f0614377866055223b81bb6a05 Author: Andrew Cagney Date: Tue Oct 30 12:09:07 2007 -0400 Remove redundant funit-type-entry rules. 2007-10-30 Andrew Cagney * Makefile.am (frysk/debuginfo/TestTypeEntryType.java) (frysk/debuginfo/TestTypeEntryValue.java): Depend on funit-type-entry.c, not funit-type-entry. (frysk/pkglibdir/funit-type-entry): Delete rule. commit dda0823a9480cd9cc0744f11b8878c8c9697b78f Author: Andrew Cagney Date: Tue Oct 30 11:44:21 2007 -0400 Rename .javain to .java-in; rename .shjava to .java-sh; et.al. frysk-common/ChangeLog 2007-10-30 Andrew Cagney * TestRunner.java-in: Rename TestRunner.javain. * Makefile.rules (.java-sh, .c-sh, .cxx-sh, .java-in, .cxx-in, .c-in): New rules. (.mkjava, MKJAVA): Delete. * Makefile.gen.sh: Replace .shjava, .javain, and .cxxin with -sh and -in rules. Delete .mkjava rules. frysk-core/frysk/debuginfo/ChangeLog 2007-10-30 Andrew Cagney * TestTypeEntryType.java-sh: Rename TestTypeEntryType.shjava. * TestTypeEntryValue.java-sh: Rename TestTypeEntryValue.shjava. frysk-core/frysk/pkglibdir/ChangeLog 2007-10-30 Andrew Cagney * funit-type-entry.c-sh: Rename funit-type-entry.sh. frysk-gui/frysk/gui/ChangeLog 2007-10-30 Andrew Cagney * FryskGui.java-in: Rename FryskGui.javain. frysk-sys/frysk/ChangeLog 2007-10-30 Andrew Cagney * cni/Config.cxx-in: Rename cni/Config.cxxin. frysk-sys/frysk/sys/ChangeLog 2007-10-30 Andrew Cagney * SyscallNum.java-sh: Rename SyscallNum.shjava. frysk-sys/inua/ChangeLog 2007-10-30 Andrew Cagney * elf/AT.java-sh: Rename elf/AT.shjava. frysk-sys/lib/unwind/ChangeLog 2007-10-30 Andrew Cagney * UnwindPPC64.java-sh: Rename UnwindPPC64.shjava. * UnwindX86.java-sh: Rename UnwindX86.shjava. * UnwindX8664.java-sh: Rename UnwindX8664.shjava. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 12 +++ frysk-common/Makefile.gen.sh | 78 ++++++++++--------- frysk-common/Makefile.rules | 57 +++++++++------ .../{TestRunner.javain => TestRunner.java-in} | 0 frysk-core/ChangeLog | 7 ++ frysk-core/Makefile.am | 12 +--- frysk-core/frysk/debuginfo/ChangeLog | 5 + ...eEntryType.shjava => TestTypeEntryType.java-sh} | 0 ...ntryValue.shjava => TestTypeEntryValue.java-sh} | 0 frysk-core/frysk/pkglibdir/ChangeLog | 6 ++ frysk-core/frysk/pkglibdir/funit-type-entry.c-sh | 4 + frysk-core/frysk/pkglibdir/funit-type-entry.sh | 4 - frysk-gui/frysk/gui/ChangeLog | 4 + .../gui/{FryskGui.javain => FryskGui.java-in} | 0 frysk-sys/frysk/ChangeLog | 4 + .../frysk/cni/{Config.cxxin => Config.cxx-in} | 0 frysk-sys/frysk/sys/ChangeLog | 4 + .../sys/{SyscallNum.shjava => SyscallNum.java-sh} | 0 frysk-sys/inua/ChangeLog | 4 + frysk-sys/inua/elf/{AT.shjava => AT.java-sh} | 0 frysk-sys/lib/unwind/ChangeLog | 6 ++ .../{UnwindPPC64.shjava => UnwindPPC64.java-sh} | 2 +- .../{UnwindPPC64.shjava => UnwindX86.java-sh} | 2 +- frysk-sys/lib/unwind/UnwindX86.shjava | 43 ----------- .../{UnwindPPC64.shjava => UnwindX8664.java-sh} | 2 +- frysk-sys/lib/unwind/UnwindX8664.shjava | 43 ----------- 26 files changed, 136 insertions(+), 163 deletions(-) rename frysk-common/{TestRunner.javain => TestRunner.java-in} (100%) rename frysk-core/frysk/debuginfo/{TestTypeEntryType.shjava => TestTypeEntryType.java-sh} (100%) rename frysk-core/frysk/debuginfo/{TestTypeEntryValue.shjava => TestTypeEntryValue.java-sh} (100%) create mode 100644 frysk-core/frysk/pkglibdir/funit-type-entry.c-sh delete mode 100644 frysk-core/frysk/pkglibdir/funit-type-entry.sh rename frysk-gui/frysk/gui/{FryskGui.javain => FryskGui.java-in} (100%) rename frysk-sys/frysk/cni/{Config.cxxin => Config.cxx-in} (100%) rename frysk-sys/frysk/sys/{SyscallNum.shjava => SyscallNum.java-sh} (100%) rename frysk-sys/inua/elf/{AT.shjava => AT.java-sh} (100%) copy frysk-sys/lib/unwind/{UnwindPPC64.shjava => UnwindPPC64.java-sh} (96%) copy frysk-sys/lib/unwind/{UnwindPPC64.shjava => UnwindX86.java-sh} (96%) delete mode 100644 frysk-sys/lib/unwind/UnwindX86.shjava rename frysk-sys/lib/unwind/{UnwindPPC64.shjava => UnwindX8664.java-sh} (96%) delete mode 100644 frysk-sys/lib/unwind/UnwindX8664.shjava hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Oct 30 17:10:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 30 Oct 2007 17:10:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 6cba36f999c359d4b8852857d74aff5c6e1be869 Message-ID: <20071030171027.27901.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 6cba36f999c359d4b8852857d74aff5c6e1be869 (commit) via 0c4428ebddbf921b78540bbc86de0df663a33e9f (commit) from aac94ab6cd473f4f7053398dcc7e86fd13609119 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 6cba36f999c359d4b8852857d74aff5c6e1be869 Merge: 0c4428ebddbf921b78540bbc86de0df663a33e9f aac94ab6cd473f4f7053398dcc7e86fd13609119 Author: Stan Cox Date: Tue Oct 30 13:00:25 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk commit 0c4428ebddbf921b78540bbc86de0df663a33e9f Author: Stan Cox Date: Tue Oct 30 12:59:56 2007 -0400 Trim $(srcdir) from JUnitTests.java list * Makefile.rules (JUnitTests.java): Trim $(srcdir) from test list. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.rules | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Oct 30 17:23:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 30 Oct 2007 17:23:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 42a9d6f47e521d0520f4844c62f641407dfc91ef Message-ID: <20071030172352.1461.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 42a9d6f47e521d0520f4844c62f641407dfc91ef (commit) from 6cba36f999c359d4b8852857d74aff5c6e1be869 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 42a9d6f47e521d0520f4844c62f641407dfc91ef Author: Andrew Cagney Date: Tue Oct 30 13:21:20 2007 -0400 2007-10-30 Andrew Cagney * Makefile.gen.sh (.cxx-in, .cxx-sh, .c-in, .c-sh): Do not add to sources line. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 3 +++ frysk-common/Makefile.gen.sh | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Oct 30 18:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 30 Oct 2007 18:51:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. ec523d106391dafc70a593c27f9a23009008f5ca Message-ID: <20071030185112.29082.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via ec523d106391dafc70a593c27f9a23009008f5ca (commit) from 42a9d6f47e521d0520f4844c62f641407dfc91ef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ec523d106391dafc70a593c27f9a23009008f5ca Author: Andrew Cagney Date: Tue Oct 30 14:49:40 2007 -0400 A simple broken program. frysk-core/frysk/pkglibdir/ChangeLog 2007-10-30 Andrew Cagney * funit-hello.c: New file. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 2 + .../pkglibdir/{funit-syscalls.c => funit-hello.c} | 23 +++++++++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) copy frysk-core/frysk/pkglibdir/{funit-syscalls.c => funit-hello.c} (90%) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Oct 30 19:45:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 30 Oct 2007 19:45:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 78ad8a9e03f7dc5a709971efe0e84acde7e9e2fc Message-ID: <20071030194502.3374.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 78ad8a9e03f7dc5a709971efe0e84acde7e9e2fc (commit) from ec523d106391dafc70a593c27f9a23009008f5ca (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 78ad8a9e03f7dc5a709971efe0e84acde7e9e2fc Author: Stan Cox Date: Tue Oct 30 15:34:28 2007 -0400 Trim blddir from JUnitTests.java test list. * Makefile.rules (JUnitTests.java): Also trim blddir. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 6 +++++- frysk-common/Makefile.rules | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Tue Oct 30 23:16:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Tue, 30 Oct 2007 23:16:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f6f4dedcd05613eccc03e1311b8412cc65afdffd Message-ID: <20071030231647.1567.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f6f4dedcd05613eccc03e1311b8412cc65afdffd (commit) via f8e8494ffc9a978efdbec038859db2aa31f89abb (commit) via 6a370e7b421bea70c2a1a7259b398f14c63d6f48 (commit) from 78ad8a9e03f7dc5a709971efe0e84acde7e9e2fc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f6f4dedcd05613eccc03e1311b8412cc65afdffd Author: Petr Machata Date: Wed Oct 31 00:07:17 2007 +0100 Necessary changelogs commit f8e8494ffc9a978efdbec038859db2aa31f89abb Author: Petr Machata Date: Wed Oct 31 00:04:34 2007 +0100 ltrace symbol cache fix, cleanups * Fixed storing of loaded symbol table to cache. * Changed syntax of -plt, -sym, -dyn arguments to ltrace commandline utility. * Few cleanups. commit 6a370e7b421bea70c2a1a7259b398f14c63d6f48 Author: Petr Machata Date: Tue Oct 30 23:59:29 2007 +0100 Add testcase for #5234. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 6 ++ frysk-core/frysk/bindir/fltrace.java | 20 +---- frysk-core/frysk/bindir/fltrace.xml | 12 ++-- frysk-core/frysk/ftrace/ChangeLog | 4 + frysk-core/frysk/ftrace/Ltrace.java | 95 +++++++++-------------- frysk-core/frysk/ftrace/ObjectFile.java | 4 +- frysk-core/frysk/proc/ChangeLog | 4 + frysk-core/frysk/proc/TestTaskObserverCode.java | 96 +++++++++++++++++++++++ 8 files changed, 159 insertions(+), 82 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Tue Oct 30 23:20:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Tue, 30 Oct 2007 23:20:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. baa7ae0ce66f27ee35261c32f699ebd7020ab35f Message-ID: <20071030232033.3257.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via baa7ae0ce66f27ee35261c32f699ebd7020ab35f (commit) from f6f4dedcd05613eccc03e1311b8412cc65afdffd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit baa7ae0ce66f27ee35261c32f699ebd7020ab35f Author: Petr Machata Date: Wed Oct 31 00:20:04 2007 +0100 Make the test case testMultiTaskUpdateCalledSeveralTimes unresolved ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/TestTaskObserverCode.java | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 31 02:28:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 31 Oct 2007 02:28:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. ad7871d0467520931cdb50a6e363343def80fd6a Message-ID: <20071031022759.2835.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via ad7871d0467520931cdb50a6e363343def80fd6a (commit) from baa7ae0ce66f27ee35261c32f699ebd7020ab35f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ad7871d0467520931cdb50a6e363343def80fd6a Author: Andrew Cagney Date: Tue Oct 30 22:26:28 2007 -0400 Disable generated type tests, unresolved 5235. frysk-core/frysk/debuginfo/ChangeLog 2007-10-30 Andrew Cagney * gen-type-expect-tests.py: Mark all tests as unresolved, 5235. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 2 + .../frysk/debuginfo/gen-type-expect-tests.py | 42 ++++++++++++++++++++ 2 files changed, 44 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Wed Oct 31 19:37:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 31 Oct 2007 19:37:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. ccec90da41bbf02f31154e6d4625e143becaa7b4 Message-ID: <20071031193731.20386.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via ccec90da41bbf02f31154e6d4625e143becaa7b4 (commit) from ad7871d0467520931cdb50a6e363343def80fd6a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ccec90da41bbf02f31154e6d4625e143becaa7b4 Author: Sami Wagiaalla Date: Wed Oct 31 15:35:55 2007 -0400 Delete get method from CompositeType frysk-core/frysk/value/ChangeLog +2007-10-31 Sami Wagiaalla + + * CompositeType.java (get): Deleted. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 4 ++++ frysk-core/frysk/value/CompositeType.java | 17 ----------------- 2 files changed, 4 insertions(+), 17 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Wed Oct 31 20:29:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Wed, 31 Oct 2007 20:29:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 80725c1b8691b8c8d50c4a0f0578f58188e4b7c4 Message-ID: <20071031202915.24945.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 80725c1b8691b8c8d50c4a0f0578f58188e4b7c4 (commit) from ccec90da41bbf02f31154e6d4625e143becaa7b4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 80725c1b8691b8c8d50c4a0f0578f58188e4b7c4 Author: Petr Machata Date: Wed Oct 31 20:34:19 2007 +0100 Stack tracing on syscalls and symbols * `-s` option introduced with the same semantics as in ftrace. * `#` is now allowed as operator in working set rules, with the semantics of "dump core when you hit this". * Now using "," as delimiter between rules, to mimic ftrace. * Stub of signal handling. * Manual page updated. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/fltrace.java | 168 +++++++++++++++++++++++++++------ frysk-core/frysk/bindir/fltrace.xml | 61 +++++-------- frysk-core/frysk/ftrace/Ltrace.java | 32 ++++++- 3 files changed, 191 insertions(+), 70 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Wed Oct 31 20:41:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 31 Oct 2007 20:41:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 43ef04c521f150e27428fe4e93bf215ee737d59a Message-ID: <20071031204130.32265.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 43ef04c521f150e27428fe4e93bf215ee737d59a (commit) from 80725c1b8691b8c8d50c4a0f0578f58188e4b7c4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 43ef04c521f150e27428fe4e93bf215ee737d59a Author: Sami Wagiaalla Date: Wed Oct 31 16:34:30 2007 -0400 swagiaal: CompositeType.java: Moved getValue inside the Memeber class. +2007-10-31 Sami Wagiaalla + + * CompositeType.java: Moved getValue inside the Memeber class. + + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 4 ++++ frysk-core/frysk/value/CompositeType.java | 18 ++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 31 21:16:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 31 Oct 2007 21:16:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f87037a8feb54da0d972d14f9089976b4f24d0af Message-ID: <20071031211606.27406.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f87037a8feb54da0d972d14f9089976b4f24d0af (commit) via b293ec8713bfc401241fc2dc0935fea152794438 (commit) from 43ef04c521f150e27428fe4e93bf215ee737d59a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f87037a8feb54da0d972d14f9089976b4f24d0af Merge: b293ec8713bfc401241fc2dc0935fea152794438 43ef04c521f150e27428fe4e93bf215ee737d59a Author: Andrew Cagney Date: Wed Oct 31 17:21:17 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit b293ec8713bfc401241fc2dc0935fea152794438 Author: Andrew Cagney Date: Wed Oct 31 17:20:55 2007 -0400 For .c-in et.al., list base .c in SOURCES. frysk-common/ChangeLog 2007-10-31 Andrew Cagney * Makefile.gen.sh (.c-in, .cxx-in, .c-sh, .cxx-sh): Add base .c or .cxx file to ...SOURCES and not the original source. Drop use of automake's nodist_ ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 6 ++++++ frysk-common/Makefile.gen.sh | 24 ++++++++++-------------- 2 files changed, 16 insertions(+), 14 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 31 21:36:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 31 Oct 2007 21:36:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 09b08e63045abd9eb9f1f51c10a51f60946b929d Message-ID: <20071031213643.5048.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 09b08e63045abd9eb9f1f51c10a51f60946b929d (commit) from f87037a8feb54da0d972d14f9089976b4f24d0af (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 09b08e63045abd9eb9f1f51c10a51f60946b929d Author: Andrew Cagney Date: Wed Oct 31 17:34:56 2007 -0400 Track location of Input parameters; expand HPD Input token tests. frysk-core/frysk/hpd/ChangeLog 2007-10-31 Andrew Cagney * TestInput.java (getParameters()): Delete. (parameters()): New. (remove(int)): New. (tokenize(String)): Rewrite. (testEmpty()): New. (testOneToken()): New. (testOneSpacedToken()): New. (testSeveralTokens()): New. (testDoubleQuote()): New. (testDoubleQuoteInToken()): New. (testEmptyQuote()): New. (testEmptyQuoteBetweenParameters()): New. (testEscapedQuote()): New. (testSetAndParameters()): New. (testMissingQuote()): New. (testMissingRightBracket()): New. (testMissingEscapee()): New. * OptionParser.java: Eliminate calls to Input.getParameters(). * TestOptionParser.java: Ditto. * PlocationCommand.java: Ditto. * PrintCommand.java: Ditto. * PtypeCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 25 ++++ frysk-core/frysk/hpd/Input.java | 168 +++++++++++++++++----------- frysk-core/frysk/hpd/OptionParser.java | 18 ++-- frysk-core/frysk/hpd/PlocationCommand.java | 2 +- frysk-core/frysk/hpd/PrintCommand.java | 2 +- frysk-core/frysk/hpd/PtypeCommand.java | 2 +- frysk-core/frysk/hpd/RunCommand.java | 4 +- frysk-core/frysk/hpd/TestInput.java | 127 ++++++++++++++++++--- frysk-core/frysk/hpd/TestOptionParser.java | 60 +++++------ 9 files changed, 276 insertions(+), 132 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 31 21:41:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 31 Oct 2007 21:41:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 0b0b1c4358f2b4a6e21709c894a1813130c5702e Message-ID: <20071031214114.9922.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 0b0b1c4358f2b4a6e21709c894a1813130c5702e (commit) from 09b08e63045abd9eb9f1f51c10a51f60946b929d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0b0b1c4358f2b4a6e21709c894a1813130c5702e Author: Andrew Cagney Date: Wed Oct 31 17:39:39 2007 -0400 Fix typo in ChangeLog entry; s/TestInput/Input/. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Oct 31 23:59:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 31 Oct 2007 23:59:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. e96fe6edeb58b43ae24f3813fbfaf4422cab7ab7 Message-ID: <20071031235909.27430.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via e96fe6edeb58b43ae24f3813fbfaf4422cab7ab7 (commit) via 86f82520dcb5fbf7c1527c77823ab3499c6e7762 (commit) from 0b0b1c4358f2b4a6e21709c894a1813130c5702e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e96fe6edeb58b43ae24f3813fbfaf4422cab7ab7 Merge: 86f82520dcb5fbf7c1527c77823ab3499c6e7762 0b0b1c4358f2b4a6e21709c894a1813130c5702e Author: Andrew Cagney Date: Wed Oct 31 20:03:55 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 86f82520dcb5fbf7c1527c77823ab3499c6e7762 Author: Andrew Cagney Date: Wed Oct 31 20:03:40 2007 -0400 Simplify Makefile.gen.sh, by not bothering with nodist_ stuff. frysk-common/ChangeLog 2007-10-31 Andrew Cagney * Makefile.gen.sh (nodist_lib_sources): Delete. (nodist_TestRunner_SOURCES): Delete. (dist_prefix): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.gen.sh | 16 ++++++---------- frysk-gui/ChangeLog | 5 +++++ frysk-gui/Makefile.am | 16 ++++++++-------- 4 files changed, 23 insertions(+), 18 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Thu Nov 1 13:45:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Thu, 01 Nov 2007 13:45:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 7fbf910f93d2343fe3b88d553a8c4f8fb7cb74dc Message-ID: <20071101134548.4735.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 7fbf910f93d2343fe3b88d553a8c4f8fb7cb74dc (commit) from e96fe6edeb58b43ae24f3813fbfaf4422cab7ab7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7fbf910f93d2343fe3b88d553a8c4f8fb7cb74dc Author: Petr Machata Date: Thu Nov 1 14:01:30 2007 +0100 Better support for '#' stack tracing operator * `-#` is now recognized correctly by rule parser, and implemented as "still trace the symbol, but do not stack trace". * Simplified working set handling. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 9 ++ frysk-core/frysk/bindir/fltrace.java | 160 +++++++++++++++++---------------- frysk-core/frysk/bindir/fltrace.xml | 22 +++-- 3 files changed, 104 insertions(+), 87 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 1 13:56:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 01 Nov 2007 13:56:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. c9596ac48aadaab5ab03d474558908c45207f6cc Message-ID: <20071101135647.7149.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via c9596ac48aadaab5ab03d474558908c45207f6cc (commit) via c0494873607b37e8b09baf4e203465df6d624cd7 (commit) via f121bcd0b1366d243f2c39f665ba5b87c80ec1ad (commit) from 7fbf910f93d2343fe3b88d553a8c4f8fb7cb74dc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c9596ac48aadaab5ab03d474558908c45207f6cc Merge: c0494873607b37e8b09baf4e203465df6d624cd7 7fbf910f93d2343fe3b88d553a8c4f8fb7cb74dc Author: Stan Cox Date: Thu Nov 1 09:55:30 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk commit c0494873607b37e8b09baf4e203465df6d624cd7 Merge: f121bcd0b1366d243f2c39f665ba5b87c80ec1ad 0b0b1c4358f2b4a6e21709c894a1813130c5702e Author: Stan Cox Date: Thu Nov 1 09:54:58 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk Conflicts: frysk-core/frysk/value/ChangeLog frysk-core/frysk/value/CompositeType.java commit f121bcd0b1366d243f2c39f665ba5b87c80ec1ad Author: Stan Cox Date: Wed Oct 31 17:48:23 2007 -0400 Fix type display so TestTypeEntryType passes. * TypeEntry.java (getUnionType): New. (getType): Add UNION_TYPE_, VOLATILE_TYPE_, CONST_TYPE_. * TypeDecorator.java (toPrint): Handle PointerType. * PointerType.java toPrint(String s, PrintWriter writer): New. * ArrayType.java toPrint(String s, PrintWriter writer): New. * CompositeType.java toPrint(int indentation, PrintWriter writer): New. * Type.java getName: Make public. * cni/DwarfDie.cxx (skip_storage_attr): Remove. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 ++ frysk-core/frysk/debuginfo/TypeEntry.java | 88 +++++++++++++++++++++++++--- frysk-core/frysk/value/ArrayType.java | 13 +++-- frysk-core/frysk/value/ChangeLog | 10 +++- frysk-core/frysk/value/CompositeType.java | 32 +++++++++-- frysk-core/frysk/value/PointerType.java | 15 ++++- frysk-core/frysk/value/Type.java | 2 +- frysk-core/frysk/value/TypeDecorator.java | 12 +++- frysk-sys/lib/dwfl/ChangeLog | 4 + frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 16 +----- 10 files changed, 154 insertions(+), 43 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 1 14:30:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 01 Nov 2007 14:30:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 444d18a7e125da5104dc6e9160139853b1e06052 Message-ID: <20071101143029.31213.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 444d18a7e125da5104dc6e9160139853b1e06052 (commit) from c9596ac48aadaab5ab03d474558908c45207f6cc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 444d18a7e125da5104dc6e9160139853b1e06052 Author: Stan Cox Date: Thu Nov 1 10:29:03 2007 -0400 Fix CompositeType.java merge snafu. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/CompositeType.java | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 1 15:55:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 01 Nov 2007 15:55:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. a99c99562d24d2fbe6374d297593d971786a7c1e Message-ID: <20071101155545.18777.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via a99c99562d24d2fbe6374d297593d971786a7c1e (commit) via 111619e175d86ebb35477f7b311c8a6209075322 (commit) from 444d18a7e125da5104dc6e9160139853b1e06052 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a99c99562d24d2fbe6374d297593d971786a7c1e Merge: 111619e175d86ebb35477f7b311c8a6209075322 444d18a7e125da5104dc6e9160139853b1e06052 Author: Stan Cox Date: Thu Nov 1 11:54:58 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk commit 111619e175d86ebb35477f7b311c8a6209075322 Author: Stan Cox Date: Thu Nov 1 11:50:08 2007 -0400 Run type tests, value tests still unresolved. * gen-type-expect-tests.py (j.start_test): Only mark value tests as unresolved. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++ .../frysk/debuginfo/gen-type-expect-tests.py | 35 +++++++++---------- frysk-core/frysk/value/ChangeLog | 4 ++ 3 files changed, 26 insertions(+), 18 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 16:09:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 16:09:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. d73f544eaf719dc55d9878ebff42ec9e6e58b5bd Message-ID: <20071101160938.1768.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via d73f544eaf719dc55d9878ebff42ec9e6e58b5bd (commit) via 2aa1d69de5afd827a967d160667eec3316ab2f06 (commit) from a99c99562d24d2fbe6374d297593d971786a7c1e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d73f544eaf719dc55d9878ebff42ec9e6e58b5bd Merge: 2aa1d69de5afd827a967d160667eec3316ab2f06 a99c99562d24d2fbe6374d297593d971786a7c1e Author: Andrew Cagney Date: Thu Nov 1 12:08:01 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 2aa1d69de5afd827a967d160667eec3316ab2f06 Author: Andrew Cagney Date: Thu Nov 1 12:07:44 2007 -0400 Add Input.stringValue to get the entire input's value. frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * Input.java (stringValue()): New. (getFullCommand()): Delete. (stringArrayValue()): Rename parameters. * PlocationCommand.java: Use. * PrintCommand.java: Use. * PtypeCommand.java: Use. * RunCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 10 +++++ frysk-core/frysk/hpd/Input.java | 21 +++++++---- frysk-core/frysk/hpd/PlocationCommand.java | 7 +--- frysk-core/frysk/hpd/PrintCommand.java | 9 ++--- frysk-core/frysk/hpd/PtypeCommand.java | 5 +-- frysk-core/frysk/hpd/RunCommand.java | 2 +- frysk-core/frysk/hpd/TestInput.java | 53 +++++++++++++++++++--------- 7 files changed, 67 insertions(+), 40 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 16:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 16:25:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 55e198f683d22fd3d6c8fde69b3006383b054a2d Message-ID: <20071101162507.12852.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 55e198f683d22fd3d6c8fde69b3006383b054a2d (commit) from d73f544eaf719dc55d9878ebff42ec9e6e58b5bd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 55e198f683d22fd3d6c8fde69b3006383b054a2d Author: Andrew Cagney Date: Thu Nov 1 12:23:38 2007 -0400 Add Input.Token.toString(). frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * Input.java (Token.toString()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 2 ++ frysk-core/frysk/hpd/Input.java | 7 +++++++ 2 files changed, 9 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 1 18:03:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 01 Nov 2007 18:03:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5ece74f14d68ecbe840fa56644740ab26b614971 Message-ID: <20071101180326.32428.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5ece74f14d68ecbe840fa56644740ab26b614971 (commit) via c4602fb8f5e32895cd2bb51d597523194a9c0200 (commit) from 55e198f683d22fd3d6c8fde69b3006383b054a2d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5ece74f14d68ecbe840fa56644740ab26b614971 Merge: c4602fb8f5e32895cd2bb51d597523194a9c0200 55e198f683d22fd3d6c8fde69b3006383b054a2d Author: Teresa Thomas Date: Thu Nov 1 13:00:37 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/value/ChangeLog Framework to evaluate arithmetic expressions using double dispatch. frysk-core/frysk/value/ChangeLog 2007-11-01 Teresa Thomas * IntegerUnit.java: New file. * FloatingPointUnit.java: New file. * AddressUnit.java: New file. * ArithmeticUnit.java: New file. * ArithmeticType.java (add): Use getALU. * Type.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. * IntegerType.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. (getALU(PointerType)): New. * FloatingPointType.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. * PointerType.java: (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. (getALU(PointerType)): New. (add): Delete. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-01 Teresa Thomas * funit-addresses.c (float_): New. (double_): New. commit c4602fb8f5e32895cd2bb51d597523194a9c0200 Author: Teresa Thomas Date: Thu Nov 1 12:57:26 2007 -0400 frysk-core/frysk/value/ChangeLog 2007-11-01 Teresa Thomas * IntegerUnit.java: New file. * FloatingPointUnit.java: New file. * AddressUnit.java: New file. * ArithmeticUnit.java: New file. * ArithmeticType.java (add): Use getALU. * Type.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. * IntegerType.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. (getALU(PointerType)): New. * FloatingPointType.java (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. * PointerType.java: (getALU(Type)): New. (getALU(IntegerType)): New. (getALU(FloatingPointType)): New. (getALU(PointerType)): New. (add): Delete. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-01 Teresa Thomas * funit-addresses.c (float_): New. (double_): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 5 ++ frysk-core/frysk/pkglibdir/funit-addresses.c | 2 + .../value/{VoidType.java => AddressUnit.java} | 54 ++++++++++++------- frysk-core/frysk/value/ArithmeticType.java | 20 +++----- frysk-core/frysk/value/ArithmeticUnit.java | 51 ++++++++++++++++++ frysk-core/frysk/value/ChangeLog | 22 ++++++++ frysk-core/frysk/value/FloatingPointType.java | 16 ++++++ ...ScratchLocation.java => FloatingPointUnit.java} | 43 ++++++++-------- frysk-core/frysk/value/IntegerType.java | 20 +++++++ .../value/{ClassType.java => IntegerUnit.java} | 20 ++++--- frysk-core/frysk/value/PointerType.java | 27 +++++----- frysk-core/frysk/value/Type.java | 10 ++++ 12 files changed, 215 insertions(+), 75 deletions(-) copy frysk-core/frysk/value/{VoidType.java => AddressUnit.java} (64%) create mode 100644 frysk-core/frysk/value/ArithmeticUnit.java copy frysk-core/frysk/value/{ScratchLocation.java => FloatingPointUnit.java} (72%) copy frysk-core/frysk/value/{ClassType.java => IntegerUnit.java} (84%) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 1 18:55:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 01 Nov 2007 18:55:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f830b783687f42c1f0ada84e54b2694878e52c16 Message-ID: <20071101185545.4658.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f830b783687f42c1f0ada84e54b2694878e52c16 (commit) from 5ece74f14d68ecbe840fa56644740ab26b614971 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f830b783687f42c1f0ada84e54b2694878e52c16 Author: Teresa Thomas Date: Thu Nov 1 14:54:32 2007 -0400 Delete get method in ArrayType. 2007-11-01 Teresa Thomas * ArrayType.java (get): Delete. * TestArray.java (testArrayOfArrayOfNumber): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ArrayType.java | 35 ---------------------------- frysk-core/frysk/value/ChangeLog | 5 ++++ frysk-core/frysk/value/TestArray.java | 40 ++++++-------------------------- 3 files changed, 13 insertions(+), 67 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 19:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 19:19:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5ab75e3e321494d854b608c9a49b35d82b83b0ff Message-ID: <20071101191917.19573.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5ab75e3e321494d854b608c9a49b35d82b83b0ff (commit) via db7b92ed953e9ccc27d7e89df00b346fa1c4ce53 (commit) from f830b783687f42c1f0ada84e54b2694878e52c16 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5ab75e3e321494d854b608c9a49b35d82b83b0ff Merge: db7b92ed953e9ccc27d7e89df00b346fa1c4ce53 f830b783687f42c1f0ada84e54b2694878e52c16 Author: Andrew Cagney Date: Thu Nov 1 15:17:40 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit db7b92ed953e9ccc27d7e89df00b346fa1c4ce53 Author: Andrew Cagney Date: Thu Nov 1 15:17:27 2007 -0400 Add a sentinel token to Input.java (simplifies callers). frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * Input.java (tokenize(String)): Add a sentinel token. (size()): Adjust. (Input(String)): Update. (stringValue()): Simplify. (stringArrayValue()): Update. (accept()): Update. * TestInput.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 8 ++++++ frysk-core/frysk/hpd/Input.java | 25 ++++++++++--------- frysk-core/frysk/hpd/TestInput.java | 46 +++++++++++++++++++++------------- 3 files changed, 49 insertions(+), 30 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 19:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 19:49:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 3d06c438b3071f125a4e192fce6d528bead30355 Message-ID: <20071101194924.6920.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 3d06c438b3071f125a4e192fce6d528bead30355 (commit) via 6fd3991b4c18ac81d18ec1ba2a1124bde681af46 (commit) via 09e617df1bc6166deccb40f198957b50c3bfff16 (commit) via c95850d3c1a85617bff5fa0a2e33c669017fc429 (commit) via 7180467e5f5bf8d92d60b1410301f9b441356a54 (commit) from 5ab75e3e321494d854b608c9a49b35d82b83b0ff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 3d06c438b3071f125a4e192fce6d528bead30355 Author: Andrew Cagney Date: Thu Nov 1 15:32:36 2007 -0400 Refactor completers to be per-command. frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * CompletionFactory.java: New. * PrintCommand.java (complete(CLI,Input,int,List)): New. * Command.java (complete(CLI,Input,int,List)): New. * MultiLevelCommand.java (complete(CLI,Input,int,List)): New. * CLI.java (complete(CLI,Input,int,List)): Call topLevelCommand.complete(CLI,Input,int,List). commit 6fd3991b4c18ac81d18ec1ba2a1124bde681af46 Author: Andrew Cagney Date: Thu Nov 1 12:10:28 2007 -0400 Add a completer factory. * CompleterFactory.java: New. * PrintCommand.java (complete(CLI,Input,int,List)): New. commit 09e617df1bc6166deccb40f198957b50c3bfff16 Author: Andrew Cagney Date: Wed Oct 31 23:01:51 2007 -0400 Move completer to Command class. 2007-10-31 Andrew Cagney * Command.java (complete(CLI,Input,int,List)): New. * MultiLevelCommand.java (complete(CLI,Input,int,List)): New. * CLI.java (complete(CLI,Input,int,List)): Call topLevelCommand.complete(CLI,Input,int,List). commit c95850d3c1a85617bff5fa0a2e33c669017fc429 Author: Andrew Cagney Date: Wed Oct 31 17:53:57 2007 -0400 Stub addition of token location to Input. commit 7180467e5f5bf8d92d60b1410301f9b441356a54 Author: Andrew Cagney Date: Tue Oct 30 12:30:25 2007 -0400 frysk-core/frysk/hpd/ChangeLog 2007-10-30 Andrew Cagney * Command.java (complete(CLI,Input,int,List)): New. * MultiLevelCommand.java (complete(CLI,Input,int,List)): New. * CLI.java (complete(CLI,Input,int,List)): Call topLevelCommand.complete(CLI,Input,int,List). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 42 ++------------ frysk-core/frysk/hpd/ChangeLog | 9 +++- frysk-core/frysk/hpd/Command.java | 16 ++++++ ...ebuginfoCommand.java => CompletionFactory.java} | 58 +++++++++++++------- frysk-core/frysk/hpd/Input.java | 5 ++- frysk-core/frysk/hpd/MultiLevelCommand.java | 48 ++++++++++++++--- frysk-core/frysk/hpd/PrintCommand.java | 6 ++ 7 files changed, 119 insertions(+), 65 deletions(-) copy frysk-core/frysk/hpd/{DebuginfoCommand.java => CompletionFactory.java} (65%) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 1 19:55:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 01 Nov 2007 19:55:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. e15ffe04ea59dc702049c30aa5dd1056146cca64 Message-ID: <20071101195531.9698.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via e15ffe04ea59dc702049c30aa5dd1056146cca64 (commit) via a8e31f562e741188e95ae56e6a76ec07cd1c9f4f (commit) from 3d06c438b3071f125a4e192fce6d528bead30355 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e15ffe04ea59dc702049c30aa5dd1056146cca64 Merge: a8e31f562e741188e95ae56e6a76ec07cd1c9f4f 3d06c438b3071f125a4e192fce6d528bead30355 Author: Stan Cox Date: Thu Nov 1 15:55:21 2007 -0400 Merge branch 'master' of ssh://sourceware.org/git/frysk commit a8e31f562e741188e95ae56e6a76ec07cd1c9f4f Author: Stan Cox Date: Thu Nov 1 15:54:51 2007 -0400 Temporarily mark generated type tests as unresolved. * gen-type-expect-tests.py (j.start_test): Make unresolved optional. (j.start_test): ...but for now continue to mark all as unresolved. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++-- .../frysk/debuginfo/gen-type-expect-tests.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 1 20:05:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 01 Nov 2007 20:05:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 21e4f55695b984351d10d6c31b83d26db9320d12 Message-ID: <20071101200503.14792.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 21e4f55695b984351d10d6c31b83d26db9320d12 (commit) via 15974e0978c51088fcd1790e209fe916c5e3cbb3 (commit) from e15ffe04ea59dc702049c30aa5dd1056146cca64 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 21e4f55695b984351d10d6c31b83d26db9320d12 Merge: 15974e0978c51088fcd1790e209fe916c5e3cbb3 e15ffe04ea59dc702049c30aa5dd1056146cca64 Author: Teresa Thomas Date: Thu Nov 1 15:59:27 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/hpd/PrintCommand.java commit 15974e0978c51088fcd1790e209fe916c5e3cbb3 Author: Teresa Thomas Date: Thu Nov 1 15:58:28 2007 -0400 Include types while printing pointers. 2007-11-01 Teresa Thomas * PrintCommand.java (interpret): Include types while printing pointers. * TestPrint.java (testAddressOf): Updated. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 6 ++++++ frysk-core/frysk/hpd/PrintCommand.java | 11 ++++++++++- frysk-core/frysk/hpd/TestPrint.java | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 20:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 20:13:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. d3279f42b8b7a5d41d8ed555b16ec03cfdb1f750 Message-ID: <20071101201303.26509.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via d3279f42b8b7a5d41d8ed555b16ec03cfdb1f750 (commit) via 4f81cf21be731043f65e5d1a9b89a1a61459cd8b (commit) via 363069779145144df3c68044dbf1179fb1cff882 (commit) from 21e4f55695b984351d10d6c31b83d26db9320d12 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d3279f42b8b7a5d41d8ed555b16ec03cfdb1f750 Author: Andrew Cagney Date: Thu Nov 1 16:11:24 2007 -0400 Remove stray System.out.println calls. frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * MultiLevelCommand.java: Delete stray println calls. commit 4f81cf21be731043f65e5d1a9b89a1a61459cd8b Merge: 363069779145144df3c68044dbf1179fb1cff882 21e4f55695b984351d10d6c31b83d26db9320d12 Author: Andrew Cagney Date: Thu Nov 1 16:09:46 2007 -0400 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 363069779145144df3c68044dbf1179fb1cff882 Author: Andrew Cagney Date: Thu Nov 1 16:09:29 2007 -0400 Delete stray System.out.println calls. frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * MultiLevelCommand.java: Delete stray println calls. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/MultiLevelCommand.java | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 1 20:27:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 01 Nov 2007 20:27:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. fbff6ae82603c65c901e253c7ab4945d460fd451 Message-ID: <20071101202709.2701.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via fbff6ae82603c65c901e253c7ab4945d460fd451 (commit) via 112afb116fabbc33393b8433151755f48f87e172 (commit) from d3279f42b8b7a5d41d8ed555b16ec03cfdb1f750 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit fbff6ae82603c65c901e253c7ab4945d460fd451 Author: Andrew Cagney Date: Thu Nov 1 16:25:33 2007 -0400 Protyotype completer for command. 2007-11-01 Andrew Cagney * LoadCommand.java (complete(CLI,Input,int,List)): New. * CompletionFactory.java (completeFileName(CLI,Input,int,List)): New. commit 112afb116fabbc33393b8433151755f48f87e172 Author: Andrew Cagney Date: Thu Nov 1 16:23:14 2007 -0400 Prototype tab completion for load command. 2007-11-01 Andrew Cagney * LoadCommand.java (complete(CLI,Input,int,List)): New. * CompletionFactory.java (completeFileName(CLI,Input,int,List)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 3 +++ frysk-core/frysk/hpd/CompletionFactory.java | 13 +++++++++++++ frysk-core/frysk/hpd/LoadCommand.java | 6 ++++++ 3 files changed, 22 insertions(+), 0 deletions(-) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 2 01:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 02 Nov 2007 01:04:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5d1b036912714aaf96f18a475b26dddd6d3dd404 Message-ID: <20071102010413.24374.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5d1b036912714aaf96f18a475b26dddd6d3dd404 (commit) from fbff6ae82603c65c901e253c7ab4945d460fd451 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5d1b036912714aaf96f18a475b26dddd6d3dd404 Author: Andrew Cagney Date: Thu Nov 1 21:02:17 2007 -0400 Backport jline off-by-one fix. frysk-core/frysk/debuginfo/ChangeLog 2007-11-01 Andrew Cagney * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Remove off-by-one workaround. frysk-core/frysk/hpd/ChangeLog 2007-11-01 Andrew Cagney * Command.java (complete(CLI,Input,int,List)): Remove comment about off-by-one jline workaround. * CompletionFactory.java (complete(CLI,Input,int,List)): Update. * MultiLevelCommand.java (complete(CLI,Input,int,List)): Update. frysk-imports/jline/ChangeLog 2007-11-01 Andrew Cagney Backport fix from upstream. * src/jline/CandidateListCompletionHandler.java (setBuffer(ConsoleReader,String,int)): Fix off-by-one bug. (complete(ConsoleReader,List,int)): Remove +1 work-around. * src/jline/ArgumentCompletor.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++++ frysk-core/frysk/debuginfo/DebugInfo.java | 4 +++- frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/Command.java | 3 --- frysk-core/frysk/hpd/CompletionFactory.java | 6 +++++- frysk-core/frysk/hpd/MultiLevelCommand.java | 4 +--- frysk-imports/jline/ChangeLog | 8 ++++++++ .../jline/src/jline/ArgumentCompletor.java | 2 +- .../src/jline/CandidateListCompletionHandler.java | 7 +------ 9 files changed, 29 insertions(+), 15 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Fri Nov 2 06:41:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Fri, 02 Nov 2007 06:41:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f0b1b75ee2a83ab45d1f485999c0b730623b8992 Message-ID: <20071102064115.17956.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f0b1b75ee2a83ab45d1f485999c0b730623b8992 (commit) from 5d1b036912714aaf96f18a475b26dddd6d3dd404 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f0b1b75ee2a83ab45d1f485999c0b730623b8992 Author: Zhao Shujing Date: Fri Nov 2 14:39:50 2007 +0800 2007-11-02 Zhao Shujing * memory/MemoryWindow.java: Change the data visualization as a grid display. Fixes #4623. * gladedir/memorywindow.glade: Remove toBox and toSpin. ----------------------------------------------------------------------- Summary of changes: frysk-gui/frysk/gui/ChangeLog | 8 +- frysk-gui/frysk/gui/gladedir/memorywindow.glade | 72 +------ frysk-gui/frysk/gui/memory/MemoryWindow.java | 289 +++++------------------ 3 files changed, 68 insertions(+), 301 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Nov 2 11:33:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 02 Nov 2007 11:33:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. e6ef20ea4ba562272bec0390ef8f21cd135c8f65 Message-ID: <20071102113334.8040.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via e6ef20ea4ba562272bec0390ef8f21cd135c8f65 (commit) from f0b1b75ee2a83ab45d1f485999c0b730623b8992 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit e6ef20ea4ba562272bec0390ef8f21cd135c8f65 Author: Petr Machata Date: Fri Nov 2 12:32:26 2007 +0100 Better support for x8664 and i386 * IA32Arch.java: Turn off poor man's call formatter. Answer six arguments instead of four. Return Integers instead of Longs. * X8664Arch.java: Implement funcall arglist. * fltrace.java: Output values in hex. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 ++++ frysk-core/frysk/bindir/fltrace.java | 16 ++++++++++++---- frysk-core/frysk/ftrace/ChangeLog | 7 +++++++ frysk-core/frysk/ftrace/IA32Arch.java | 11 +++++++---- frysk-core/frysk/ftrace/X8664Arch.java | 26 ++++++++++++++++++++++++-- 5 files changed, 54 insertions(+), 10 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Fri Nov 2 14:22:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 02 Nov 2007 14:22:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5fba661cfc4cfc9ba9712629ff9722f25e900f86 Message-ID: <20071102142240.31598.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 5fba661cfc4cfc9ba9712629ff9722f25e900f86 (commit) from e6ef20ea4ba562272bec0390ef8f21cd135c8f65 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5fba661cfc4cfc9ba9712629ff9722f25e900f86 Author: Teresa Thomas Date: Fri Nov 2 10:13:12 2007 -0400 Ctors in ArithmeticUnit redesigned. frysk-core/frysk/value 2007-11-02 Teresa Thomas * FloatingPointUnit.java: Ctors redefined. * IntegerUnit.java (IntegerUnit): Parameter types changed. * AddressUnit.java (AddressUnit): Ditto. * IntegerType.java (getALU(IntegerType)): Updated. * FloatingPointType.java (getALU(IntegerType)): Updated. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/AddressUnit.java | 4 ++-- frysk-core/frysk/value/ChangeLog | 9 +++++++++ frysk-core/frysk/value/FloatingPointType.java | 2 +- frysk-core/frysk/value/FloatingPointUnit.java | 18 ++++++------------ frysk-core/frysk/value/IntegerType.java | 4 ++-- frysk-core/frysk/value/IntegerUnit.java | 4 ++-- 6 files changed, 22 insertions(+), 19 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Nov 2 16:42:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 02 Nov 2007 16:42:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 616c9bbb472fb0b0d23e4ae233c2f19926fe8d20 Message-ID: <20071102164233.23941.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 616c9bbb472fb0b0d23e4ae233c2f19926fe8d20 (commit) from 5fba661cfc4cfc9ba9712629ff9722f25e900f86 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 616c9bbb472fb0b0d23e4ae233c2f19926fe8d20 Author: Petr Machata Date: Fri Nov 2 16:51:55 2007 +0100 New test for ltrace Testing whether arguments recorded at function call match reality, and that return values are as expected. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 4 + frysk-core/frysk/ftrace/TestLtrace.java | 89 +++++++++++++++++++- frysk-core/frysk/pkglibdir/ChangeLog | 4 + .../{funit-syscallloop.c => funit-calls.c} | 31 +++---- 4 files changed, 108 insertions(+), 20 deletions(-) copy frysk-core/frysk/pkglibdir/{funit-syscallloop.c => funit-calls.c} (83%) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 2 17:32:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 02 Nov 2007 17:32:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 94c3775976a8c86382d595b703098b0c71497fd2 Message-ID: <20071102173208.23841.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 94c3775976a8c86382d595b703098b0c71497fd2 (commit) from 616c9bbb472fb0b0d23e4ae233c2f19926fe8d20 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 94c3775976a8c86382d595b703098b0c71497fd2 Author: Sami Wagiaalla Date: Fri Nov 2 13:18:04 2007 -0400 swagiaal: Delete InlinedSubroutine and added an inlined attribute to subprogram. frysk-core/frysk/debuginfo/ChangeLog +2007-11-02 Sami Wagiaalla + + Delete InlinedSubroutine, and added an inlined attribute + to subprogram. + * DebugInfoFrame.java: Updated. + * DebugInfoStackFactory.java: Updated. + * TestFrameDebugInfo.java: Updated frysk-core/frysk/scopes/ChangeLog +2007-11-02 Sami Wagiaalla + + Delete InlinedSubroutine, and added an inlined attribute + to subprogram. + * InlinedSubroutine.java: Deleted. + * ScopeFactory.java: Updated. + * Subroutine.java: Added isInlined(); + * ScopeFactory.java: Updated + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 8 +++ frysk-core/frysk/debuginfo/DebugInfoFrame.java | 17 +++---- .../frysk/debuginfo/DebugInfoStackFactory.java | 8 ++-- frysk-core/frysk/debuginfo/TestFrameDebugInfo.java | 4 +- frysk-core/frysk/scopes/ChangeLog | 9 +++ frysk-core/frysk/scopes/InlinedSubroutine.java | 54 -------------------- frysk-core/frysk/scopes/ScopeFactory.java | 15 +----- frysk-core/frysk/scopes/Subroutine.java | 39 ++++++++++++++ frysk-core/frysk/scopes/TestScopeFactory.java | 2 +- 9 files changed, 71 insertions(+), 85 deletions(-) delete mode 100644 frysk-core/frysk/scopes/InlinedSubroutine.java hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 2 20:33:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 02 Nov 2007 20:33:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 602efc42dc06336fa2938f15290a6dc721559db5 Message-ID: <20071102203334.1069.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 602efc42dc06336fa2938f15290a6dc721559db5 (commit) from 94c3775976a8c86382d595b703098b0c71497fd2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 602efc42dc06336fa2938f15290a6dc721559db5 Author: Sami Wagiaalla Date: Fri Nov 2 16:31:19 2007 -0400 swagiaal: Renamed Struct to Composite. frysk-core/frysk/scopes/ChangeLog +2007-11-02 Sami Wagiaalla + + * Struct.java: Renamed this... + * Composite.java: ...to this. + * TestScopes.java (testGetOriginalSubprogram): Updated + * Subroutine.java (getComposite): Updated + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/scopes/ChangeLog | 7 +++++++ .../frysk/scopes/{Struct.java => Composite.java} | 9 +++++++-- frysk-core/frysk/scopes/Subroutine.java | 6 +++--- frysk-core/frysk/scopes/TestScopes.java | 2 +- 4 files changed, 18 insertions(+), 6 deletions(-) rename frysk-core/frysk/scopes/{Struct.java => Composite.java} (89%) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Sat Nov 3 02:41:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Sat, 03 Nov 2007 02:41:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 8c4b048cc0b6f01798236cf67bd3faccced7fd0d Message-ID: <20071103024059.27074.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 8c4b048cc0b6f01798236cf67bd3faccced7fd0d (commit) from 602efc42dc06336fa2938f15290a6dc721559db5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8c4b048cc0b6f01798236cf67bd3faccced7fd0d Author: Stan Cox Date: Fri Nov 2 22:40:13 2007 -0400 Make TestTypeEntry pass. * TestTypeEntry.java (testScalar): Properly match volatile. (testArray): Properly match multi dimension array bounds. (testStruct): Likewise. (testClass): Allow for type qualifier. * CompositeType.java: Fix inheritance whitespace display. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 7 +++++++ frysk-core/frysk/debuginfo/TestTypeEntry.java | 16 ++++++++-------- frysk-core/frysk/value/ChangeLog | 4 ++++ frysk-core/frysk/value/CompositeType.java | 1 + 4 files changed, 20 insertions(+), 8 deletions(-) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Nov 5 16:39:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 05 Nov 2007 16:39:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 7c8b3606f7bbdba53db6b9002a14c788871c2ef0 Message-ID: <20071105163908.17045.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 7c8b3606f7bbdba53db6b9002a14c788871c2ef0 (commit) from 8c4b048cc0b6f01798236cf67bd3faccced7fd0d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7c8b3606f7bbdba53db6b9002a14c788871c2ef0 Author: Stan Cox Date: Mon Nov 5 11:37:24 2007 -0500 Allow asLong for a value with a decorated type. * Value.java (asLong): Get type via gettUltimateType. (asBigInteger): Likewise. (doubleValue): Likewise. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 6 ++++++ frysk-core/frysk/value/Value.java | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 5 18:51:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 05 Nov 2007 18:51:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 0c64e6f6b3a9ee51744685e58512d0ca08491aab Message-ID: <20071105185153.27638.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 0c64e6f6b3a9ee51744685e58512d0ca08491aab (commit) via 3c1340e831c55c5d7ca917e2370083e18532aac9 (commit) via 12b355bed615ba7a4e7640acd46904a45828cf8f (commit) from 7c8b3606f7bbdba53db6b9002a14c788871c2ef0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 0c64e6f6b3a9ee51744685e58512d0ca08491aab Merge: 3c1340e831c55c5d7ca917e2370083e18532aac9 7c8b3606f7bbdba53db6b9002a14c788871c2ef0 Author: Teresa Thomas Date: Mon Nov 5 13:38:57 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 3c1340e831c55c5d7ca917e2370083e18532aac9 Merge: 12b355bed615ba7a4e7640acd46904a45828cf8f 8c4b048cc0b6f01798236cf67bd3faccced7fd0d Author: Teresa Thomas Date: Mon Nov 5 10:53:24 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 12b355bed615ba7a4e7640acd46904a45828cf8f Author: Teresa Thomas Date: Mon Nov 5 10:24:15 2007 -0500 Implement getAddress for ByteBufferLocation. 2007-11-05 Teresa Thomas * ByteBufferLocation.java (offset): New. (ByteBufferLocation): Updated. (getAddress): Implemented. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ByteBufferLocation.java | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 5 19:54:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 05 Nov 2007 19:54:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. f75b400997a86b427c954cbb75458eb685082bae Message-ID: <20071105195429.4806.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via f75b400997a86b427c954cbb75458eb685082bae (commit) from 0c64e6f6b3a9ee51744685e58512d0ca08491aab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit f75b400997a86b427c954cbb75458eb685082bae Author: Teresa Thomas Date: Mon Nov 5 14:50:40 2007 -0500 Implement *(array + index), Call add(), plusEquals() directly from expression evaluator. frysk-core/frysk/value/ChangeLog 2007-11-05 Teresa Thomas * TestValue.java: Update. * ArithmeticUnit.java (plusEqual): New. * ArithmeticType.java (add): Delete. (plusEqual): Delete. * Type.java (add): Delete. (plusEqual): Delete. * TestArray.java (testAdd): New test. * AddressUnit.java (AddressUnit(ArrayType, int wordSize)): New. (addArray): New. * ArrayType.java (getALU): Give wordSize to ALU. * FloatingPointType.java (getALU): Ditto. * IntegerType.java (getALU): Ditto. * PointerType.java (getALU): Ditto. * Type.java (getALU): Ditto. * TypeDecorator.java (add): Delete. (plusEqual): Delete. frysk-core/frysk/expr/ChangeLog 2007-11-05 Teresa Thomas * CExprEvaluator.g (PLUS): Use getALU. (PLUSEQUAL): Use getALU. * ScratchSymTab.java (getWordSize): Return bogus word size when no task attached. frysk-core/frysk/debuginfo/ChangeLog 2007-11-05 Teresa Thomas * PieceLocation.java (getAddress): Edit exception message. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++ frysk-core/frysk/debuginfo/PieceLocation.java | 2 +- frysk-core/frysk/expr/CExprEvaluator.g | 11 ++++--- frysk-core/frysk/expr/ChangeLog | 6 ++++ frysk-core/frysk/expr/ScratchSymTab.java | 5 ++- frysk-core/frysk/value/AddressUnit.java | 39 +++++++++++++++++++++--- frysk-core/frysk/value/ArithmeticType.java | 8 ----- frysk-core/frysk/value/ArithmeticUnit.java | 3 ++ frysk-core/frysk/value/ArrayType.java | 24 +++++++++++++++ frysk-core/frysk/value/ChangeLog | 23 ++++++++++++++ frysk-core/frysk/value/FloatingPointType.java | 8 ++-- frysk-core/frysk/value/IntegerType.java | 10 +++--- frysk-core/frysk/value/PointerType.java | 10 +++--- frysk-core/frysk/value/TestArray.java | 21 +++++++++++++ frysk-core/frysk/value/TestValue.java | 18 ++++++------ frysk-core/frysk/value/Type.java | 13 ++------ frysk-core/frysk/value/TypeDecorator.java | 6 ---- 17 files changed, 153 insertions(+), 59 deletions(-) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 5 20:12:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 05 Nov 2007 20:12:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. b87d52695755287f818d2ea2aa6838159037c131 Message-ID: <20071105201207.23059.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via b87d52695755287f818d2ea2aa6838159037c131 (commit) from f75b400997a86b427c954cbb75458eb685082bae (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b87d52695755287f818d2ea2aa6838159037c131 Author: Teresa Thomas Date: Mon Nov 5 15:11:09 2007 -0500 Delete unused function getValueFIXME. 2007-11-05 Teresa Thomas * TestbedSymTab.java (getValueFIXME): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/ChangeLog | 4 ++++ frysk-core/frysk/expr/TestbedSymTab.java | 12 ------------ 2 files changed, 4 insertions(+), 12 deletions(-) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Nov 5 21:18:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 05 Nov 2007 21:18:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 1f743a637ed71ac1edb56baf96bf7164746a9986 Message-ID: <20071105211857.27824.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 1f743a637ed71ac1edb56baf96bf7164746a9986 (commit) via bdfa33bbf284c5ae57c9153dbed7221cffe76cdb (commit) via b7b26ffa3178205ac00a8f5d879f16dbc53dd725 (commit) via c64d932a6aec18fdecb156db093eec2b20491941 (commit) from b87d52695755287f818d2ea2aa6838159037c131 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1f743a637ed71ac1edb56baf96bf7164746a9986 Author: Sami Wagiaalla Date: Mon Nov 5 15:55:00 2007 -0500 swagiaal: Added javadoc to ComposityType::add(). frysk-core/frysk/value/ChangeLog +2007-11-05 Sami Wagiaalla + + * CompositeType.java (add): Added javadoc. + commit bdfa33bbf284c5ae57c9153dbed7221cffe76cdb Author: Sami Wagiaalla Date: Mon Nov 5 14:01:31 2007 -0500 swagiaal: Removed print statement from funit-cpp-scopes-class-static.cxx. frysk-core/frysk/pkglibdir/ChangeLog +2007-11-05 Sami Wagiaalla + + * funit-cpp-scopes-class-static.cxx: Removed print statement. + commit b7b26ffa3178205ac00a8f5d879f16dbc53dd725 Author: Sami Wagiaalla Date: Mon Nov 5 13:53:41 2007 -0500 swagiaal: Added test for retrieving class of a static function frysk-core/frysk/pkglibdir/ChangeLog +2007-11-05 Sami Wagiaalla + + * funit-cpp-scopes-class-static.cxx: New file. + frysk-core/frysk/scopes/ChangeLog +2007-11-05 Sami Wagiaalla + + * TestScopes.java (testGetOriginalStaticSubprogram): New test. + commit c64d932a6aec18fdecb156db093eec2b20491941 Author: Sami Wagiaalla Date: Mon Nov 5 11:54:32 2007 -0500 swagiaal: Added getName() to Composite. frysk-core/frysk/scopes/ChangeLog +2007-11-05 Sami Wagiaalla + + * Composite.java (getName): New. + (Composite): Added initialization for type. + * TestScopes.java (testGetOriginalSubprogram): Used + Composite.getName(). + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 8 +++++++ .../pkglibdir/funit-cpp-scopes-class-static.cxx | 22 ++++++++++++++++++++ frysk-core/frysk/scopes/ChangeLog | 11 ++++++++++ frysk-core/frysk/scopes/Composite.java | 7 ++++++ frysk-core/frysk/scopes/TestScopes.java | 17 ++++++++++++++- frysk-core/frysk/value/ChangeLog | 4 +++ frysk-core/frysk/value/CompositeType.java | 9 ++++++++ 7 files changed, 77 insertions(+), 1 deletions(-) create mode 100644 frysk-core/frysk/pkglibdir/funit-cpp-scopes-class-static.cxx hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 5 22:21:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 05 Nov 2007 22:21:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 7c185652b3cca2ab1cbfeeb45482ec772d1b4c5b Message-ID: <20071105222134.2475.qmail@sourceware.org> This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "frysk system monitor/debugger". The branch, master has been updated via 7c185652b3cca2ab1cbfeeb45482ec772d1b4c5b (commit) from 1f743a637ed71ac1edb56baf96bf7164746a9986 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 7c185652b3cca2ab1cbfeeb45482ec772d1b4c5b Author: Teresa Thomas Date: Mon Nov 5 17:20:13 2007 -0500 Implement [] operator for pointers to string. frysk-core/frysk/value/ChangeLog 2007-11-05 Teresa Thomas * Type.java (index): Task memory added to parameter list. * PointerType.java (index): New. * TypeDecorator.java (index): Updated. * TestArray.java (testIndexOneD): Updated. (testIndexTwoD): Updated. * TestPointer.java (testCharPointerIndex): New test. * ArrayType.java (dereference): Comments added. frysk-core/frysk/expr/ChangeLog 2007-11-05 Teresa Thomas * CExprEvaluator.g (INDEX): Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 2 +- frysk-core/frysk/expr/ChangeLog | 2 ++ frysk-core/frysk/value/ArrayType.java | 16 +++++++++++----- frysk-core/frysk/value/ChangeLog | 10 ++++++++++ frysk-core/frysk/value/PointerType.java | 17 +++++++++++++++-- frysk-core/frysk/value/TestArray.java | 6 +++--- frysk-core/frysk/value/TestPointer.java | 17 +++++++++++++++++ frysk-core/frysk/value/Type.java | 2 +- frysk-core/frysk/value/TypeDecorator.java | 4 ++-- 9 files changed, 62 insertions(+), 14 deletions(-) hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Tue Nov 6 14:58:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Tue, 06 Nov 2007 14:58:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 6c1b2134a1081b7d65f0656fcc13a9ae85d964f9 Message-ID: <20071106145806.11940.qmail@sourceware.org> The branch, master has been updated via 6c1b2134a1081b7d65f0656fcc13a9ae85d964f9 (commit) from 7c185652b3cca2ab1cbfeeb45482ec772d1b4c5b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6c1b2134a1081b7d65f0656fcc13a9ae85d964f9 Author: Phil Muldoon Date: Tue Nov 6 14:57:57 2007 +0000 Rework how corefiles and executables pair. Build a corefile status object. Return much richer information to CoreCommand. 2007-11-06 Phil Muldoon * LinuxProc.java (LinuxProc): Do not search for exe beyond pwd. * LinuxHost.java (LinuxHost): Build a CorefileStatus. (getStatus): New. (DeconstructCoreFile.update): Build status from Proc. * CorefileStatus.java: New 2007-11-06 Phil Muldoon * CoreCommand.java (interpret): Rewrite corefile model. Give much richer information back on corefile building. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 ++ frysk-core/frysk/hpd/CoreCommand.java | 45 ++++++++++++++++++-- frysk-core/frysk/proc/dead/ChangeLog | 8 ++++ .../dead/{DeadHost.java => CorefileStatus.java} | 20 ++++----- frysk-core/frysk/proc/dead/LinuxHost.java | 30 ++++++++++++- frysk-core/frysk/proc/dead/LinuxProc.java | 21 +-------- 6 files changed, 94 insertions(+), 35 deletions(-) copy frysk-core/frysk/proc/dead/{DeadHost.java => CorefileStatus.java} (88%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 324823d..9987008 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Phil Muldoon + + * CoreCommand.java (interpret): Rewrite corefile model. + Give much richer information back on corefile building. + 2007-11-01 Andrew Cagney * Command.java (complete(CLI,Input,int,List)): Remove comment diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 0b23e18..3173ef6 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -44,6 +44,9 @@ import java.util.Iterator; import frysk.debuginfo.DebugInfo; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; +import frysk.proc.dead.CorefileStatus; +import frysk.proc.dead.LinuxHost; +import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.Task; @@ -68,16 +71,50 @@ public class CoreCommand extends Command { File coreFile = new File(cmd.parameter(0)); Proc coreProc; + File exeFile = null; + LinuxHost coreHost = null; if (cmd.size() == 1) - coreProc = frysk.util.Util.getProcFromCoreFile(coreFile); + coreHost = new LinuxHost(Manager.eventLoop, coreFile); else { - File exeFile = new File(cmd.parameter(1)); - coreProc = frysk.util.Util.getProcFromCoreFile(coreFile, exeFile); + exeFile = new File(cmd.parameter(1)); + coreHost = new LinuxHost(Manager.eventLoop, coreFile, exeFile); + } + + Iterator i = coreHost.getProcIterator(); + + if (i.hasNext()) + coreProc = (Proc) i.next(); + else { + cli.addMessage("Cannot find a process in corefile: '" + coreFile.getAbsolutePath()+"'. This may not be a valid ELF corefile.", Message.TYPE_ERROR); + return; + } + if (i.hasNext()) { + cli.addMessage("There appears to be two or more processes in corefile: '" + coreFile.getAbsolutePath()+"'. This is not valid for an ELF corefile", Message.TYPE_ERROR); + return; + } + CorefileStatus status = coreHost.getStatus(); + if (status.hasExe == false) + { + String message = "The corefile: '"+coreFile.getAbsolutePath()+"' has no executable associated with it. The executable name "; + String exeName = ""; + if (exeFile != null) + { + exeName = exeFile.getAbsolutePath(); + message += "specified by the user on the Core command was: '" + exeName; + } + else + { + exeName = coreProc.getExe(); + message += "automatically read from the corefile was: '" + exeName; + } + message+="'. This executable could not be read. Please specifiy an executable on the 'core' command (eg core core.1234 exenamedFile) for richer metadata."; + + cli.addMessage(message,Message.TYPE_WARNING); } - int procID = cli.idManager.reserveProcID(); cli.idManager.manageProc(coreProc, procID); + Iterator foo = cli.targetset.getTasks(); while (foo.hasNext()) { Task task = (Task) foo.next(); diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 9d5d3e6..c11c271 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,11 @@ +2007-11-06 Phil Muldoon + + * LinuxProc.java (LinuxProc): Do not search for exe beyond pwd. + * LinuxHost.java (LinuxHost): Build a CorefileStatus. + (getStatus): New. + (DeconstructCoreFile.update): Build status from Proc. + * CorefileStatus.java: New + 2007-10-18 Rick Moseley * LinuxExeHost.java: Add DeconstructExeFile class and update diff --git a/frysk-core/frysk/proc/dead/DeadHost.java b/frysk-core/frysk/proc/dead/CorefileStatus.java similarity index 88% copy from frysk-core/frysk/proc/dead/DeadHost.java copy to frysk-core/frysk/proc/dead/CorefileStatus.java index 29a077e..b99e1fc 100644 --- a/frysk-core/frysk/proc/dead/DeadHost.java +++ b/frysk-core/frysk/proc/dead/CorefileStatus.java @@ -33,20 +33,18 @@ // this exception. If you modify this file, you may extend this // exception to your version of the file, but you are not obligated to // do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without +// modification, you must delete this exception statement from your// version and license this file solely under the GPL without // exception. -package frysk.proc.dead; - -import frysk.proc.Host; -/** - * A dead Host/Proc/Task is characterised by its lack of state, and an - * in ability to respond to stateful requests such as add/remove - * observers. - */ +package frysk.proc.dead; -abstract class DeadHost extends Host { +public class CorefileStatus { + public boolean hasExe = false; + public boolean hasCore = true; + public String exeName = ""; + public String coreName = ""; + public boolean hasExeProblem = false; + public String message = ""; } diff --git a/frysk-core/frysk/proc/dead/LinuxHost.java b/frysk-core/frysk/proc/dead/LinuxHost.java index aa2e1e3..3bc2eeb 100644 --- a/frysk-core/frysk/proc/dead/LinuxHost.java +++ b/frysk-core/frysk/proc/dead/LinuxHost.java @@ -58,6 +58,7 @@ import frysk.proc.FindProc; public class LinuxHost extends DeadHost { + CorefileStatus status = new CorefileStatus(); boolean hasRefreshed = false; boolean exeSetToNull = false; protected File coreFile = null; @@ -93,11 +94,28 @@ public class LinuxHost extends DeadHost { { this(eventLoop, coreFile, false); if (exeFile == null) - exeSetToNull = true; - this.exeFile = exeFile; + exeSetToNull = true; + + if (exeFile.canRead() && exeFile.exists()) + this.exeFile = exeFile; + else + { + status.hasExe = false; + status.hasExeProblem = true; + status.message = "The user provided executable: " + + exeFile.getAbsolutePath() + + " could not be accessed"; + } this.sendRefresh(true); + + } + public CorefileStatus getStatus() + { + return status; + } + protected void sendRefresh(boolean refreshAll) { @@ -172,6 +190,7 @@ public class LinuxHost extends DeadHost { DeconstructCoreFile(Elf coreFileElf) { this.coreFileElf = coreFileElf; + status.coreName = coreFile.getAbsolutePath(); ElfEHeader eHeader = this.coreFileElf.getEHeader(); // Get number of program header entries. @@ -210,6 +229,13 @@ public class LinuxHost extends DeadHost { addedProcs.add(proc); + if (exeFile == null) + status.hasExe = false; + else + { + status.hasExe = true; + status.exeName = exeFile.getAbsolutePath(); + } return proc; } diff --git a/frysk-core/frysk/proc/dead/LinuxProc.java b/frysk-core/frysk/proc/dead/LinuxProc.java index 1db4019..69f0d84 100644 --- a/frysk-core/frysk/proc/dead/LinuxProc.java +++ b/frysk-core/frysk/proc/dead/LinuxProc.java @@ -90,24 +90,9 @@ public class LinuxProc extends DeadProc { // as it is written in the corefile. if ((host.exeFile == null) && (host.exeSetToNull == false)) { - File exeFileName = new File(sendrecExe()); - // XXX: Hack here, some processes do not have path information - // in the name. - if ((exeFileName.exists()) && (exeFileName.canRead())) - host.exeFile = exeFileName; - else - { - String commonLocations[] = {"/bin/","/usr/bin/"}; - for (int i=0; i The branch, master has been updated via 17c8a7ffe15ebae6973d44ba9dcf9d35487d89bc (commit) via edeb2f82b0415eac3261fa50a4ce1862212b5d1e (commit) from 6c1b2134a1081b7d65f0656fcc13a9ae85d964f9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 17c8a7ffe15ebae6973d44ba9dcf9d35487d89bc Author: Teresa Thomas Date: Tue Nov 6 15:40:02 2007 -0500 Implement -, -= operators in Arithmetic Unit. frysk-core/frysk/value/ChangeLog 2007-11-06 Teresa Thomas * ArithmeticUnit.java (subtract): New. (minusEqual): New. * AddressUnit.java (subtract): New. * IntegerUnit.java (subtract): New. * FloatingPointUnit.java (subtract): New. * Type.java (subtract): Delete. (minusEqual): Delete. * ArithmeticType.java (subtract): Delete. (minusEqual): Delete. * TypeDecorator.java (subtract): Delete. (minusEqual): Delete. * TestValue.java: Updated. frysk-core/frysk/expr/ChangeLog 2007-11-06 Teresa Thomas * CExprEvaluator.g (MINUS): Use Arithmetic Unit. (MINUSEQUAL): Ditto. commit edeb2f82b0415eac3261fa50a4ce1862212b5d1e Author: Teresa Thomas Date: Tue Nov 6 15:31:41 2007 -0500 Double dispatch for ALU simplified. frysk-core/frysk/value/ChangeLog 2007-11-06 Teresa Thomas * IntegerType.java: Double dispatch for ALU simplified. * ArrayType.java: Ditto. * PointerType.java: Ditto. * FloatingPointType.java: Ditto. * Type.java: Updated. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 14 ++++++++------ frysk-core/frysk/expr/ChangeLog | 5 +++++ frysk-core/frysk/value/AddressUnit.java | 12 ++++++++++-- frysk-core/frysk/value/ArithmeticType.java | 14 -------------- frysk-core/frysk/value/ArithmeticUnit.java | 6 ++++++ frysk-core/frysk/value/ArrayType.java | 6 +----- frysk-core/frysk/value/ChangeLog | 21 +++++++++++++++++++++ frysk-core/frysk/value/FloatingPointType.java | 10 +++++----- frysk-core/frysk/value/FloatingPointUnit.java | 5 +++++ frysk-core/frysk/value/IntegerType.java | 18 +++++++++--------- frysk-core/frysk/value/IntegerUnit.java | 5 +++++ frysk-core/frysk/value/PointerType.java | 11 +++++++---- frysk-core/frysk/value/TestValue.java | 8 ++++---- frysk-core/frysk/value/Type.java | 13 +++++++------ frysk-core/frysk/value/TypeDecorator.java | 6 ------ 15 files changed, 93 insertions(+), 61 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 0ed0db0..d5bf068 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -145,11 +145,17 @@ expr returns [Value returnVar=null] .plusEqual(v1, v2); } | ( #(MINUS expr expr) )=> #(MINUS v1=expr v2=expr) { - returnVar = v1.getType().subtract(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + .subtract(v1, v2); } + | #(MINUSEQUAL v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + .minusEqual(v1, v2); + } | #(MINUS v1=expr ) { returnVar = intType.createValue(0); - returnVar = returnVar.getType().subtract(returnVar, v1); + returnVar = returnVar.getType().getALU(v1.getType(), exprSymTab.getWordSize()) + .subtract(returnVar, v1); } | ( #(STAR expr expr) )=> #(STAR v1=expr v2=expr) { returnVar = v1.getType().multiply(v1, v2); @@ -266,10 +272,6 @@ expr returns [Value returnVar=null] v1.getType().divideEqual(v1, v2); returnVar = v1; } - | #(MINUSEQUAL v1=expr v2=expr) { - v1.getType().minusEqual(v1, v2); - returnVar = v1; - } | #(MODEQUAL v1=expr v2=expr) { v1.getType().modEqual(v1, v2); returnVar = v1; diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 82ee63c..1f93590 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Teresa Thomas + + * CExprEvaluator.g (MINUS): Use Arithmetic Unit. + (MINUSEQUAL): Ditto. + 2007-11-05 Teresa Thomas * CExprEvaluator.g (INDEX): Update. diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index 9c60d05..cf2b316 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -47,9 +47,10 @@ public class AddressUnit extends ArithmeticUnit { public AddressUnit (ArrayType t, int wordSize) { - retType = new PointerType(t.getName(), ByteOrder.BIG_ENDIAN, - wordSize, t.getType()); + retType = new PointerType(t.getName(), ByteOrder.BIG_ENDIAN, + wordSize, t.getType()); } + public AddressUnit (PointerType t) { retType = t; } @@ -107,4 +108,11 @@ extends ArithmeticUnit (arrValue.getLocation().getAddress() + arrType.getType().getSize()*intValue.asLong()); } + + public Value subtract(Value v1, Value v2) { + // v1-v2 = v1+(-v2) + Location l = new ScratchLocation (v2.asBigInteger().negate().toByteArray()); + Value v2Neg = new Value (v2.getType(), l); + return add (v1, v2Neg); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ArithmeticType.java b/frysk-core/frysk/value/ArithmeticType.java index d67ccb1..8a2ee4d 100644 --- a/frysk-core/frysk/value/ArithmeticType.java +++ b/frysk-core/frysk/value/ArithmeticType.java @@ -118,16 +118,6 @@ public abstract class ArithmeticType } } } - - public Value subtract(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() - var2.asLong()); - else if (type instanceof FloatingPointType) - return type.createValue(var1.doubleValue() - var2.doubleValue()); - else - throw new RuntimeException("type conversion botch"); - } public Value multiply(Value var1, Value var2) { ArithmeticType type = returnType(var1, var2); @@ -297,10 +287,6 @@ public abstract class ArithmeticType return var1.assign(var2); } - public Value minusEqual(Value var1, Value var2) { - return var1.assign(subtract(var1, var2)); - } - public Value timesEqual(Value var1, Value var2) { return var1.assign(multiply(var1, var2)); } diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index e4ca07e..c8aae93 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -48,7 +48,13 @@ public abstract class ArithmeticUnit public abstract Value add(Value v1, Value v2); + public abstract Value subtract(Value v1, Value v2); + public Value plusEqual(Value v1, Value v2) { return v1.assign(add(v1, v2)); } + + public Value minusEqual(Value v1, Value v2) { + return v1.assign(subtract(v1, v2)); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 9266a9b..6eb0893 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -223,11 +223,7 @@ public class ArrayType return new AddressUnit(this, wordSize); } - public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { + public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } - - public ArithmeticUnit getALU(PointerType type) { - throw new RuntimeException("Invalid Pointer Arithmetic"); - } } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 9383af9..188cec8 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,24 @@ +2007-11-06 Teresa Thomas + + * ArithmeticUnit.java (subtract): New. + (minusEqual): New. + * AddressUnit.java (subtract): New. + * IntegerUnit.java (subtract): New. + * FloatingPointUnit.java (subtract): New. + * Type.java (subtract): Delete. + (minusEqual): Delete. + * ArithmeticType.java (subtract): Delete. + (minusEqual): Delete. + * TypeDecorator.java (subtract): Delete. + (minusEqual): Delete. + * TestValue.java: Updated. + + * IntegerType.java: Double dispatch for ALU simplified. + * ArrayType.java: Ditto. + * PointerType.java: Ditto. + * FloatingPointType.java: Ditto. + * Type.java: Updated. + 2007-11-05 Sami Wagiaalla * CompositeType.java (add): Added javadoc. diff --git a/frysk-core/frysk/value/FloatingPointType.java b/frysk-core/frysk/value/FloatingPointType.java index 245043e..f20a8e8 100644 --- a/frysk-core/frysk/value/FloatingPointType.java +++ b/frysk-core/frysk/value/FloatingPointType.java @@ -98,14 +98,14 @@ public class FloatingPointType } public ArithmeticUnit getALU(IntegerType type, int wordSize) { - // FIXME: Should this be resolved by a double - // dispatch of IntegerType? - if (type instanceof PointerType) - throw new RuntimeException("Invalid Pointer Arithmetic"); return new FloatingPointUnit(this); } public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { return new FloatingPointUnit(this, type); - } + } + + public ArithmeticUnit getALU(PointerType type, int wordSize) { + throw new RuntimeException("Invalid Pointer Arithmetic"); + } } diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index c921b2e..f10a103 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -58,4 +58,9 @@ public class FloatingPointUnit return retType.createValue (v1.doubleValue() + v2.doubleValue()); } + + public Value subtract(Value v1, Value v2) { + return retType.createValue + (v1.doubleValue() - v2.doubleValue()); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index 1dd3b84..73cb5c4 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -82,19 +82,19 @@ public abstract class IntegerType return type.getALU(this, wordSize); } - public ArithmeticUnit getALU(PointerType type, int wordSize) { - return new AddressUnit(type); - } - public ArithmeticUnit getALU(IntegerType type, int wordSize) { - // FIXME: Should this be resolved by a double - // dispatch of IntegerType? - if (type instanceof PointerType) - return new AddressUnit((PointerType)type); return new IntegerUnit(this, type); } + public ArithmeticUnit getALU(PointerType type, int wordSize) { + return new AddressUnit((PointerType)type); + } + public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { return new FloatingPointUnit(type); - } + } + + public ArithmeticUnit getALU(ArrayType type, int wordSize) { + return new AddressUnit(type, wordSize); + } } diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 33a663b..32defa8 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -55,4 +55,9 @@ public class IntegerUnit return retType.createValue (v1.asBigInteger().add(v2.asBigInteger())); } + + public Value subtract(Value v1, Value v2) { + return retType.createValue + (v1.asBigInteger().subtract(v2.asBigInteger())); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 42e58c2..a0e5743 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -129,7 +129,6 @@ public class PointerType Value offset = createValue (v.asLong() + idx.asLong()*type.getSize()); return dereference (offset, taskMem) ; } - public ArithmeticUnit getALU(Type type, int wordSize) { return type.getALU(this, wordSize); @@ -139,11 +138,15 @@ public class PointerType return new AddressUnit(this); } + public ArithmeticUnit getALU(PointerType type, int wordSize) { + throw new RuntimeException("Invalid Pointer Arithmetic"); + } + public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); - } + } - public ArithmeticUnit getALU(PointerType type, int wordSize) { + public ArithmeticUnit getALU(ArrayType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); - } + } } diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 36e776e..7dbf48c 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -104,7 +104,7 @@ public class TestValue Value v2 = shortType.createValue(9); Value v3 = v1.getType().getALU(v2.getType(), 0).add(v1, v2); assertEquals ("4 + 9", 4 + 9, v3.asLong()); - v3 = v1.getType().subtract(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).subtract(v2, v1); assertEquals ("9 - 4", 9 - 4, v3.asLong()); v3 = v1.getType().multiply(v2, v1); assertEquals ("9 * 4", 9 * 4, v3.asLong()); @@ -142,7 +142,7 @@ public class TestValue assertEquals ("v3 = 4", 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).plusEqual(v3, v1); assertEquals ("v3 += 4", 8, v3.asLong()); - v3 = v1.getType().minusEqual(v3, v1); + v3 = v1.getType().getALU(v2.getType(), 0).minusEqual(v3, v1); assertEquals ("v3 -= 4", 4, v3.asLong()); v3 = v1.getType().timesEqual(v3, v1); assertEquals ("v3 *= 4", 16, v3.asLong()); @@ -168,7 +168,7 @@ public class TestValue Value v2 = doubleType.createValue(9.0); Value v3 = v1.getType().getALU(v2.getType(), 0).add(v1, v2); assertEquals ("4 + 9", 4 + 9, v3.doubleValue(), 0); - v3 = v1.getType().subtract(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).subtract(v2, v1); assertEquals ("9 - 4", 9 - 4, v3.doubleValue(), 0); v3 = v1.getType().multiply(v2, v1); assertEquals ("9 * 4", 9 * 4, v3.doubleValue(), 0); @@ -190,7 +190,7 @@ public class TestValue assertEquals ("v3 = 4", 4, v3.doubleValue(), 0); v3 = v1.getType().getALU(v3.getType(), 0).plusEqual(v3, v1); assertEquals ("v3 += 4", 8, v3.doubleValue(), 0); - v3 = v1.getType().minusEqual(v3, v1); + v3 = v1.getType().getALU(v2.getType(), 0).minusEqual(v3, v1); assertEquals ("v3 -= 4", 4, v3.doubleValue(), 0); v3 = v1.getType().timesEqual(v3, v1); assertEquals ("v3 *= 4", 16, v3.doubleValue(), 0); diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index b39e949..cb204aa 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -137,9 +137,13 @@ public abstract class Type { public ArithmeticUnit getALU(FloatingPointType type, int wordSize){ throw new RuntimeException("Invalid Arithmetic Unit"); } - public Value subtract (Value var1, Value var2) { - throw new InvalidOperatorException(this, "-"); - } + public ArithmeticUnit getALU(PointerType type, int wordSize) { + throw new RuntimeException("Invalid Arithmetic Unit"); + } + public ArithmeticUnit getALU(ArrayType type, int wordSize) { + throw new RuntimeException("Invalid Arithmetic Unit"); + } + public Value multiply (Value var1, Value var2) { throw new InvalidOperatorException(this, "*"); } @@ -203,9 +207,6 @@ public abstract class Type { public Value modEqual (Value var1, Value var2) { throw new InvalidOperatorException(this, "%="); } - public Value minusEqual (Value var1, Value var2) { - throw new InvalidOperatorException(this, "-="); - } public Value shiftLeftEqual (Value var1, Value var2) { throw new InvalidOperatorException(this, "<<="); } diff --git a/frysk-core/frysk/value/TypeDecorator.java b/frysk-core/frysk/value/TypeDecorator.java index 5e928e2..30e2fc7 100644 --- a/frysk-core/frysk/value/TypeDecorator.java +++ b/frysk-core/frysk/value/TypeDecorator.java @@ -89,9 +89,6 @@ abstract class TypeDecorator extends Type { decorated.toPrint(writer); } } - public Value subtract(Value var1, Value var2) { - return decorated.subtract(var1, var2); - } public Value multiply(Value var1, Value var2) { return decorated.multiply(var1, var2); } @@ -155,9 +152,6 @@ abstract class TypeDecorator extends Type { public Value modEqual(Value var1, Value var2) { return decorated.modEqual(var1, var2); } - public Value minusEqual(Value var1, Value var2) { - return decorated.minusEqual(var1, var2); - } public Value shiftLeftEqual(Value var1, Value var2) { return decorated.shiftLeftEqual(var1, var2); } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Tue Nov 6 22:12:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 06 Nov 2007 22:12:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 1048e398da0387157df4237cd1e896e33821aaa9 Message-ID: <20071106221206.30956.qmail@sourceware.org> The branch, master has been updated via 1048e398da0387157df4237cd1e896e33821aaa9 (commit) from 17c8a7ffe15ebae6973d44ba9dcf9d35487d89bc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1048e398da0387157df4237cd1e896e33821aaa9 Author: Teresa Thomas Date: Tue Nov 6 17:10:18 2007 -0500 New ctor for InvalidOperatorException. frysk-core/frysk/value/ChangeLog 2007-11-06 Teresa Thomas * InvalidOperatorException.java (InvalidOperatorException(Type, Type, String)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 3 +++ .../frysk/value/InvalidOperatorException.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 188cec8..8be698c 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,8 @@ 2007-11-06 Teresa Thomas + * InvalidOperatorException.java + (InvalidOperatorException(Type, Type, String)): New. + * ArithmeticUnit.java (subtract): New. (minusEqual): New. * AddressUnit.java (subtract): New. diff --git a/frysk-core/frysk/value/InvalidOperatorException.java b/frysk-core/frysk/value/InvalidOperatorException.java index 72bb87e..4b704ba 100644 --- a/frysk-core/frysk/value/InvalidOperatorException.java +++ b/frysk-core/frysk/value/InvalidOperatorException.java @@ -51,4 +51,14 @@ public class InvalidOperatorException extends RuntimeException { + type.toPrint() + "\""); } + + public InvalidOperatorException(Type t1, Type t2, String operator) { + super("Invalid operator \"" + + operator + + "\" for \"" + + t1.toPrint() + + "\", \"" + + t2.toPrint() + + "\""); + } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 7 09:55:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 07 Nov 2007 09:55:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 018fde86cb15293f8bc7fc89ae5fdc595fd1a2ce Message-ID: <20071107095536.8150.qmail@sourceware.org> The branch, master has been updated via 018fde86cb15293f8bc7fc89ae5fdc595fd1a2ce (commit) from 1048e398da0387157df4237cd1e896e33821aaa9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 018fde86cb15293f8bc7fc89ae5fdc595fd1a2ce Author: Phil Muldoon Date: Wed Nov 7 09:55:20 2007 +0000 Step two for building a richer fhpd corefile interaction. Report exceptions up to user, in a friendly manner, but abort further use of that core. 2007-11-07 Phil Muldoon * CoreCommand.java (interpret): Check for runtime exceptions from LinuxHost. Abort on exception, and (nicely) report exception message. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++ frysk-core/frysk/hpd/CoreCommand.java | 51 +++++++++++++++++++++++++++------ 2 files changed, 47 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 9987008..0b0b2cb 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-07 Phil Muldoon + + * CoreCommand.java (interpret): Check for runtime exceptions + from LinuxHost. Abort on exception, and (nicely) report exception message. + 2007-11-06 Phil Muldoon * CoreCommand.java (interpret): Rewrite corefile model. diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 3173ef6..3485353 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -55,43 +55,73 @@ public class CoreCommand extends Command { private static String desc = "open a core file"; CoreCommand() { - super("core", desc, "core core.file", desc); + super("core", desc, "core core.file [executable]", desc); } public void interpret(CLI cli, Input cmd) { + + Proc coreProc; + File exeFile = null; + LinuxHost coreHost = null; + + // If parse fails, print help if (!parser.parse(cmd)) { parser.printHelp(cli.outWriter); return; } + // If > 2 parameter, then too many parameters. if (cmd.size() > 2) { throw new InvalidCommandException("Too many parameters"); } + + // If < 1 parameter, then not enough parameters. + if (cmd.size() < 1) { + throw new InvalidCommandException("Please specify a corefile with the core command"); + } File coreFile = new File(cmd.parameter(0)); - Proc coreProc; - File exeFile = null; - LinuxHost coreHost = null; + // Build corefile host, report errors and quit if any. if (cmd.size() == 1) - coreHost = new LinuxHost(Manager.eventLoop, coreFile); + try { + coreHost = new LinuxHost(Manager.eventLoop, coreFile); + } catch (Exception e) { + cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() + + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); + return; + } else { exeFile = new File(cmd.parameter(1)); - coreHost = new LinuxHost(Manager.eventLoop, coreFile, exeFile); + try { + coreHost = new LinuxHost(Manager.eventLoop, coreFile, exeFile); + } catch (Exception e) { + cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() + + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); + return; + + } } + // Get an iterator to the one process Iterator i = coreHost.getProcIterator(); + // Find process, if not error out and return. if (i.hasNext()) - coreProc = (Proc) i.next(); + coreProc = (Proc) i.next(); else { cli.addMessage("Cannot find a process in corefile: '" + coreFile.getAbsolutePath()+"'. This may not be a valid ELF corefile.", Message.TYPE_ERROR); return; } + + // If > 1 process, this is a very odd corefile. Abort, can't handle multiple process corefiles. if (i.hasNext()) { cli.addMessage("There appears to be two or more processes in corefile: '" + coreFile.getAbsolutePath()+"'. This is not valid for an ELF corefile", Message.TYPE_ERROR); return; } + + // Check status, and report whether we managed to load an executable. If not build a message + // to the effect of why we have not. CorefileStatus status = coreHost.getStatus(); if (status.hasExe == false) { @@ -111,10 +141,12 @@ public class CoreCommand extends Command { cli.addMessage(message,Message.TYPE_WARNING); } + + // All checks are done. Host is built. Now start reserving space in the sets int procID = cli.idManager.reserveProcID(); cli.idManager.manageProc(coreProc, procID); - + // Build debug info for each task and frame. Iterator foo = cli.targetset.getTasks(); while (foo.hasNext()) { Task task = (Task) foo.next(); @@ -125,7 +157,8 @@ public class CoreCommand extends Command { frame)); } - cli.addMessage("Attached to core file: " + cmd.parameter(0), + // Finally, done. + cli.addMessage("\n* Attached to core file: " + cmd.parameter(0), Message.TYPE_NORMAL); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 7 10:38:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 07 Nov 2007 10:38:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 56f7ede3726faf57106e3b509f5f7c7073546517 Message-ID: <20071107103810.32267.qmail@sourceware.org> The branch, master has been updated via 56f7ede3726faf57106e3b509f5f7c7073546517 (commit) from 018fde86cb15293f8bc7fc89ae5fdc595fd1a2ce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 56f7ede3726faf57106e3b509f5f7c7073546517 Author: Phil Muldoon Date: Wed Nov 7 10:38:00 2007 +0000 Check ELF file is a corefile as a very first check. 2007-11-07 Phil Muldoon * LinuxHost.java (LinuxHost): Create up front ET_CORE check in constructor. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 5 +++++ frysk-core/frysk/proc/dead/LinuxHost.java | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index c11c271..4c81cac 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-07 Phil Muldoon + + * LinuxHost.java (LinuxHost): Create up front ET_CORE check in + constructor. + 2007-11-06 Phil Muldoon * LinuxProc.java (LinuxProc): Do not search for exe beyond pwd. diff --git a/frysk-core/frysk/proc/dead/LinuxHost.java b/frysk-core/frysk/proc/dead/LinuxHost.java index 3bc2eeb..52e7263 100644 --- a/frysk-core/frysk/proc/dead/LinuxHost.java +++ b/frysk-core/frysk/proc/dead/LinuxHost.java @@ -76,10 +76,16 @@ public class LinuxHost extends DeadHost { } catch (Exception e) { + System.out.println("Not in this exception"); throw new RuntimeException("Corefile " + this.coreFile + " is "+ "not a valid ELF core file."); } + if (corefileElf.getEHeader().type != ElfEHeader.PHEADER_ET_CORE) { + this.corefileElf.close(); + throw new RuntimeException("'"+this.coreFile.getAbsolutePath()+"' is not a corefile."); + } + if (doRefresh) this.sendRefresh(true); } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 7 10:43:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 07 Nov 2007 10:43:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. b0fe6a24f1b83254fd0a74c4fad2e72a46b49b26 Message-ID: <20071107104304.1117.qmail@sourceware.org> The branch, master has been updated via b0fe6a24f1b83254fd0a74c4fad2e72a46b49b26 (commit) from 56f7ede3726faf57106e3b509f5f7c7073546517 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b0fe6a24f1b83254fd0a74c4fad2e72a46b49b26 Author: Phil Muldoon Date: Wed Nov 7 10:42:47 2007 +0000 Reformat to SUN Style ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/LinuxHost.java | 355 +++++++++++++--------------- 1 files changed, 165 insertions(+), 190 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/LinuxHost.java b/frysk-core/frysk/proc/dead/LinuxHost.java index 52e7263..827cdff 100644 --- a/frysk-core/frysk/proc/dead/LinuxHost.java +++ b/frysk-core/frysk/proc/dead/LinuxHost.java @@ -33,7 +33,8 @@ // this exception. If you modify this file, you may extend this // exception to your version of the file, but you are not obligated to // do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your// version and license this file solely under the GPL without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without // exception. package frysk.proc.dead; @@ -58,197 +59,171 @@ import frysk.proc.FindProc; public class LinuxHost extends DeadHost { - CorefileStatus status = new CorefileStatus(); - boolean hasRefreshed = false; - boolean exeSetToNull = false; - protected File coreFile = null; - protected File exeFile = null; - Elf corefileElf; - EventLoop eventLoop; - - private LinuxHost(EventLoop eventLoop, File coreFile, boolean doRefresh) - { - this.coreFile = coreFile; - this.eventLoop = eventLoop; - try - { - this.corefileElf = new Elf (coreFile.getPath(), ElfCommand.ELF_C_READ); - } - catch (Exception e) - { - System.out.println("Not in this exception"); - throw new RuntimeException("Corefile " + this.coreFile + " is "+ - "not a valid ELF core file."); - } - - if (corefileElf.getEHeader().type != ElfEHeader.PHEADER_ET_CORE) { - this.corefileElf.close(); - throw new RuntimeException("'"+this.coreFile.getAbsolutePath()+"' is not a corefile."); - } - - if (doRefresh) - this.sendRefresh(true); - } - - public LinuxHost(EventLoop eventLoop, File coreFile) - { - this(eventLoop, coreFile, true); - } - - - public LinuxHost(EventLoop eventLoop, File coreFile, File exeFile) - { - this(eventLoop, coreFile, false); - if (exeFile == null) - exeSetToNull = true; - - if (exeFile.canRead() && exeFile.exists()) - this.exeFile = exeFile; - else - { - status.hasExe = false; - status.hasExeProblem = true; - status.message = "The user provided executable: " - + exeFile.getAbsolutePath() + - " could not be accessed"; - } - this.sendRefresh(true); - - - } - - public CorefileStatus getStatus() - { - return status; - } - - protected void sendRefresh(boolean refreshAll) - { - - if (this.hasRefreshed) - return; - // Iterate (build) the /proc tree, passing each found PID to - // procChanges where it can update the /proc tree. - new DeconstructCoreFile(this.corefileElf); - // Changes individual process. - for (Iterator i = procPool.values().iterator(); i.hasNext();) - { - LinuxProc proc = (LinuxProc) i.next(); - proc.sendRefresh(); - } - this.hasRefreshed = true; - } - - protected void sendRefresh (final ProcId procId, final FindProc finder) - { - - // Core files nevers never change - if (!(procPool.containsKey(procId))) - { - eventLoop.add(new Event() - { - public void execute () - { - finder.procNotFound(procId, new RuntimeException( - "Couldn't find the proc" - + procId)); - } - }); - return; - } - - - LinuxProc proc = (LinuxProc) getProc(procId); - proc.sendRefresh(); - - eventLoop.add(new Event() - { - - public void execute () - { - finder.procFound(procId); - } - }); - - } - - - protected void sendCreateAttachedProc(String stdin, String stdout, - String stderr, String[] args, - TaskObserver.Attached attached) - { - } - - - protected Proc sendrecSelf() - { - return null; - } - - - private class DeconstructCoreFile - { - List addedProcs = new LinkedList(); - //HashMap removedProcs = (HashMap) ((HashMap) procPool).clone(); - Elf coreFileElf; - ElfData noteData = null; - - DeconstructCoreFile(Elf coreFileElf) - { - this.coreFileElf = coreFileElf; - status.coreName = coreFile.getAbsolutePath(); - ElfEHeader eHeader = this.coreFileElf.getEHeader(); - - // Get number of program header entries. - long phSize = eHeader.phnum; - for (int i=0; i The branch, master has been updated via 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c (commit) from b0fe6a24f1b83254fd0a74c4fad2e72a46b49b26 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c Author: Tim Moore Date: Tue Nov 6 18:33:43 2007 +0100 Fix errors from breakpoints when rerunning a program frysk-core/frysk/rt/ChangeLog: 2007-11-06 Tim Moore * BreakpointManager.java (refreshBreakpoints): Enable breakpoint even if it has no state. frysk-core/frysk/stepping/ChangeLog 2007-11-06 Tim Moore * SteppingEngine.java (ThreadLifeObservable.updateTerminated): Clean out the dead task and its siblings if necessary. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/rt/BreakpointManager.java | 2 +- frysk-core/frysk/rt/ChangeLog | 5 ++ frysk-core/frysk/stepping/ChangeLog | 5 ++ frysk-core/frysk/stepping/SteppingEngine.java | 53 +++++++++++++++++------- 4 files changed, 48 insertions(+), 17 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/rt/BreakpointManager.java b/frysk-core/frysk/rt/BreakpointManager.java index 9ebbd99..d1737d8 100644 --- a/frysk-core/frysk/rt/BreakpointManager.java +++ b/frysk-core/frysk/rt/BreakpointManager.java @@ -220,7 +220,7 @@ public class BreakpointManager while (iter.hasNext()) { SourceBreakpoint bpt = (SourceBreakpoint)iter.next(); SourceBreakpoint.State state = bpt.getState(task); - if (state == SourceBreakpoint.DEFERRED) { + if (state == SourceBreakpoint.DEFERRED || state == null) { enableBreakpoint(bpt, task); } } diff --git a/frysk-core/frysk/rt/ChangeLog b/frysk-core/frysk/rt/ChangeLog index 82243e7..f1f42ec 100644 --- a/frysk-core/frysk/rt/ChangeLog +++ b/frysk-core/frysk/rt/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Tim Moore + + * BreakpointManager.java (refreshBreakpoints): Enable breakpoint + even if it has no state. + 2007-10-26 Andrew Cagney * DisplayValue.java: No need to catch catch ParseException. diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index b5a6454..f643eb3 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,3 +1,8 @@ +2007-11-06 Tim Moore + + * SteppingEngine.java (ThreadLifeObservable.updateTerminated): + Clean out the dead task and its siblings if necessary. + 2007-10-14 Andrew Cagney * TestSteppingEngine.java (testInstructionNext()): Call diff --git a/frysk-core/frysk/stepping/SteppingEngine.java b/frysk-core/frysk/stepping/SteppingEngine.java index 8240dc5..bfadb9a 100644 --- a/frysk-core/frysk/stepping/SteppingEngine.java +++ b/frysk-core/frysk/stepping/SteppingEngine.java @@ -1166,24 +1166,45 @@ public class SteppingEngine { /* Watch for terminating Tasks. Set the stepping state of the task * as terminated and notify the observers of the event. */ - - Integer context = (Integer) SteppingEngine.this.contextMap.get(task - .getProc()); - SteppingEngine.this.contextMap.put(task.getProc(), new Integer( + Proc proc = task.getProc(); + Integer context = (Integer)SteppingEngine.this.contextMap.get(proc); + SteppingEngine.this.contextMap.put(proc, new Integer( context.intValue() - 1)); - TaskStepEngine tse = (TaskStepEngine) SteppingEngine.this.taskStateMap - .get(task); - tse.setState(new StepTerminatedState(task)); - - if (signal) - tse.setMessage(tse.getMessage() + "Task " + task.getTid() - + " terminated from signal " + value); - else - tse.setMessage(tse.getMessage() + "Task " + task.getTid() + " terminated"); - - steppingObserver.notifyNotBlocked(tse); - + TaskStepEngine tse + = (TaskStepEngine)SteppingEngine.this.taskStateMap + .get(task); + // Must have missed the terminating event + if (tse.isAlive()) { + tse.setState(new StepTerminatedState(task)); + + if (signal) + tse.setMessage(tse.getMessage() + "Task " + + task.getTid() + + " terminated from signal " + + value); + else + tse.setMessage(tse.getMessage() + "Task " + + task.getTid() + " terminated"); + steppingObserver.notifyNotBlocked(tse); + } + // Clone task list so we can remove tasks (via cleanTask) + // without messing up the iterator. + Iterator taskIter + = ((LinkedList)SteppingEngine.this.threadsList.clone()) + .iterator(); + // Only one terminated event might be received by the + // process, so process all the tasks now. + while (taskIter.hasNext()) { + Task sibling = (Task)taskIter.next(); + if (sibling.getProc() == proc) { + TaskStepEngine siblingTse + = (TaskStepEngine)SteppingEngine.this.taskStateMap + .get(sibling); + if (!siblingTse.isAlive()) + cleanTask(sibling); + } + } return Action.CONTINUE; } hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Wed Nov 7 14:38:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Wed, 07 Nov 2007 14:38:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 925c031c35d3340a51b3ae57bae38b1818a5e278 Message-ID: <20071107143819.2602.qmail@sourceware.org> The branch, master has been updated via 925c031c35d3340a51b3ae57bae38b1818a5e278 (commit) via 350d28dba9dc96932f0a8891ee169a3324a177c7 (commit) from 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 925c031c35d3340a51b3ae57bae38b1818a5e278 Merge: 350d28dba9dc96932f0a8891ee169a3324a177c7 58677c3da1a72166a3aa8a2a2a14a4ffca765b5c Author: Stan Cox Date: Wed Nov 7 09:36:54 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/debuginfo/ChangeLog commit 350d28dba9dc96932f0a8891ee169a3324a177c7 Author: Stan Cox Date: Wed Nov 7 09:30:56 2007 -0500 Turn on TestTypeEntryType testing. * gen-type-expect-tests.py (j.start_test): Only unresolve value tests. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 7 +++++-- .../frysk/debuginfo/gen-type-expect-tests.py | 3 +-- 2 files changed, 6 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 6283daf..956665f 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,7 +1,10 @@ +2007-11-07 Stan Cox + + * gen-type-expect-tests.py (j.start_test): Only unresolve value tests. + 2007-11-05 Teresa Thomas - * PieceLocation.java (getAddress): Edit exception - message. + * PieceLocation.java (getAddress): Edit exception message. 2007-11-02 Stan Cox diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 7606641..9bb9e1b 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -169,8 +169,7 @@ public class %s extends TestLib { def start_test(self, tool, name): print(" public void test%s () {" % (name)) -# if (tool == "value"): - if (True): + if (tool == "value"): print(''' if (unresolved(5235)) return; hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 7 19:11:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 07 Nov 2007 19:11:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 718026a59c0ed8ed3a4e7eb97090244332b8c210 Message-ID: <20071107191128.22467.qmail@sourceware.org> The branch, master has been updated via 718026a59c0ed8ed3a4e7eb97090244332b8c210 (commit) from 925c031c35d3340a51b3ae57bae38b1818a5e278 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 718026a59c0ed8ed3a4e7eb97090244332b8c210 Author: Teresa Thomas Date: Wed Nov 7 14:07:52 2007 -0500 Implement *, /, *=, /= in Arithmetic Unit. frysk-core/frysk/value/ChangeLog 2007-11-07 Teresa Thomas * FloatingPointUnit.java (multiply): New. (divide): New. (mod): New. * IntegerUnit.java (multiply): New. (divide): New. (mod): New. * ArithmeticUnit.java (divide): New. (multiply): New. (timesEqual): New. (divideEqual): New. (mod): New. (modEqual): New.. * ArithmeticType.java (multiply): Delete. (timesEqual): Delete. (divide): Delete. (divideEqual): Delete. (mod): Delete (modEqual): Delete. * TypeDecorator.java (multiply): Delete. (timesEqual): Delete. (divide): Delete. (divideEqual): Delete. (mod): Delete. (modEqual): Delete. * Type.java (multiply): Delete. (timesEqual): Delete. (divide): Delete. (divideEqual): Delete. (mod): Delete. (modEqual): Delete. * TestValue.java: Updated. frysk-core/frysk/expr/ChangeLog 2007-11-06 Teresa Thomas * CExprEvaluator.g (STAR): Use Arithmetic Unit. (TIMESEQUAL): Ditto. (DIVIDE): Ditto. (DIVIDEEQUAL): Ditto. (MOD): Ditto. (MODEQUAL): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 62 +++++++++++++++---------- frysk-core/frysk/expr/ChangeLog | 9 ++++ frysk-core/frysk/value/AddressUnit.java | 4 +- frysk-core/frysk/value/ArithmeticType.java | 42 ----------------- frysk-core/frysk/value/ArithmeticUnit.java | 40 +++++++++++++++- frysk-core/frysk/value/ChangeLog | 34 +++++++++++++ frysk-core/frysk/value/FloatingPointUnit.java | 18 +++++++- frysk-core/frysk/value/IntegerUnit.java | 18 +++++++- frysk-core/frysk/value/TestValue.java | 30 ++++++------ frysk-core/frysk/value/Type.java | 20 +-------- frysk-core/frysk/value/TypeDecorator.java | 19 +------- 11 files changed, 173 insertions(+), 123 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index d5bf068..087ca64 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -137,38 +137,64 @@ identifier returns [String idSpelling=null] expr returns [Value returnVar=null] { Value v1, v2, log_expr; String s1; } : #(PLUS v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) .add(v1, v2); } | #(PLUSEQUAL v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) .plusEqual(v1, v2); } | ( #(MINUS expr expr) )=> #(MINUS v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) .subtract(v1, v2); } | #(MINUSEQUAL v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) .minusEqual(v1, v2); } | #(MINUS v1=expr ) { returnVar = intType.createValue(0); - returnVar = returnVar.getType().getALU(v1.getType(), exprSymTab.getWordSize()) + returnVar = returnVar.getType().getALU(v1.getType(), + exprSymTab.getWordSize()) .subtract(returnVar, v1); } | ( #(STAR expr expr) )=> #(STAR v1=expr v2=expr) { - returnVar = v1.getType().multiply(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .multiply(v1, v2); } + | #(TIMESEQUAL v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .timesEqual(v1, v2); + } + | #(DIVIDE v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .divide(v1, v2); + } + | #(DIVIDEEQUAL v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .divideEqual(v1, v2); + } + | #(MOD v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .mod(v1, v2); + } + | #(MODEQUAL v1=expr v2=expr) { + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .modEqual(v1, v2); + } | #(MEMORY v1=expr ) { returnVar = v1.getType().dereference(v1, exprSymTab.taskMemory()); } - | #(DIVIDE v1=expr v2=expr) { - returnVar = v1.getType().divide(v1, v2); - } - | #(MOD v1=expr v2=expr) { - returnVar = v1.getType().mod(v1, v2); - } | #(SHIFTLEFT v1=expr v2=expr) { returnVar = v1.getType().shiftLeft(v1, v2); } @@ -264,18 +290,6 @@ expr returns [Value returnVar=null] v1.assign(v2); returnVar = v1; } - | #(TIMESEQUAL v1=expr v2=expr) { - v1.getType().timesEqual(v1, v2); - returnVar = v1; - } - | #(DIVIDEEQUAL v1=expr v2=expr) { - v1.getType().divideEqual(v1, v2); - returnVar = v1; - } - | #(MODEQUAL v1=expr v2=expr) { - v1.getType().modEqual(v1, v2); - returnVar = v1; - } | #(SHIFTLEFTEQUAL v1=expr v2=expr) { v1.getType().shiftLeftEqual(v1, v2); returnVar = v1; diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 1f93590..a316bff 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,5 +1,14 @@ 2007-11-06 Teresa Thomas + * CExprEvaluator.g (STAR): Use Arithmetic Unit. + (TIMESEQUAL): Ditto. + (DIVIDE): Ditto. + (DIVIDEEQUAL): Ditto. + (MOD): Ditto. + (MODEQUAL): Ditto. + +2007-11-06 Teresa Thomas + * CExprEvaluator.g (MINUS): Use Arithmetic Unit. (MINUSEQUAL): Ditto. diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index cf2b316..ea9e285 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -41,7 +41,7 @@ package frysk.value; import inua.eio.ByteOrder; /** - * Arithmetic Operation handling for pointers and addresses. + * Operation handling for pointers and addresses. */ public class AddressUnit extends ArithmeticUnit @@ -64,6 +64,8 @@ extends ArithmeticUnit v2.getType() instanceof ArrayType ) return addArray(v1, v2); + // Commutative operation, so identify pointer + // and integer value. PointerType ptrType; Value ptrValue; Value intValue; diff --git a/frysk-core/frysk/value/ArithmeticType.java b/frysk-core/frysk/value/ArithmeticType.java index 8a2ee4d..96f8a79 100644 --- a/frysk-core/frysk/value/ArithmeticType.java +++ b/frysk-core/frysk/value/ArithmeticType.java @@ -119,36 +119,6 @@ public abstract class ArithmeticType } } - public Value multiply(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() * var2.asLong()); - else if (type instanceof FloatingPointType) - return type.createValue(var1.doubleValue() * var2.doubleValue()); - else - throw new RuntimeException("type conversion botch"); - } - - public Value divide(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() / var2.asLong()); - else if (type instanceof FloatingPointType) - return type.createValue(var1.doubleValue() / var2.doubleValue()); - else - throw new RuntimeException("type conversion botch"); - } - - public Value mod(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() % var2.asLong()); - else if (type instanceof FloatingPointType) - return type.createValue(var1.doubleValue() % var2.doubleValue()); - else - throw new RuntimeException("type conversion botch"); - } - public Value shiftLeft(Value var1, Value var2) { ArithmeticType type = returnType(var1, var2); if (type instanceof IntegerType) @@ -287,18 +257,6 @@ public abstract class ArithmeticType return var1.assign(var2); } - public Value timesEqual(Value var1, Value var2) { - return var1.assign(multiply(var1, var2)); - } - - public Value divideEqual(Value var1, Value var2) { - return var1.assign(divide(var1, var2)); - } - - public Value modEqual(Value var1, Value var2) { - return var1.assign(mod(var1, var2)); - } - public Value shiftLeftEqual(Value var1, Value var2) { return var1.assign(shiftLeft(var1, var2)); } diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index c8aae93..736f89a 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -40,15 +40,37 @@ package frysk.value; /** - * Arithmetic Operation handling for different types. + * Arithmetic and Logical Operation handling + * for different types. */ public abstract class ArithmeticUnit { protected ArithmeticType retType; - public abstract Value add(Value v1, Value v2); + public Value add(Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "+"); + } + + public Value subtract(Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "-"); + } + + public Value multiply (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "*"); + } + + public Value divide(Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "/"); + } - public abstract Value subtract(Value v1, Value v2); + public Value mod(Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "%"); + } public Value plusEqual(Value v1, Value v2) { return v1.assign(add(v1, v2)); @@ -57,4 +79,16 @@ public abstract class ArithmeticUnit public Value minusEqual(Value v1, Value v2) { return v1.assign(subtract(v1, v2)); } + + public Value timesEqual(Value v1, Value v2) { + return v1.assign(multiply(v1, v2)); + } + + public Value divideEqual (Value v1, Value v2) { + return v1.assign(divide(v1, v2)); + } + + public Value modEqual(Value v1, Value v2) { + return v1.assign(mod(v1, v2)); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 8be698c..108511e 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,37 @@ +2007-11-07 Teresa Thomas + + * FloatingPointUnit.java (multiply): New. + (divide): New. + (mod): New. + * IntegerUnit.java (multiply): New. + (divide): New. + (mod): New. + * ArithmeticUnit.java (divide): New. + (multiply): New. + (timesEqual): New. + (divideEqual): New. + (mod): New. + (modEqual): New.. + * ArithmeticType.java (multiply): Delete. + (timesEqual): Delete. + (divide): Delete. + (divideEqual): Delete. + (mod): Delete + (modEqual): Delete. + * TypeDecorator.java (multiply): Delete. + (timesEqual): Delete. + (divide): Delete. + (divideEqual): Delete. + (mod): Delete. + (modEqual): Delete. + * Type.java (multiply): Delete. + (timesEqual): Delete. + (divide): Delete. + (divideEqual): Delete. + (mod): Delete. + (modEqual): Delete. + * TestValue.java: Updated. + 2007-11-06 Teresa Thomas * InvalidOperatorException.java diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index f10a103..96cbd83 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -40,7 +40,8 @@ package frysk.value; /** - * Arithmetic Operation handling for floating points. + * Arithmetic and logical operation handling + * for floating points. */ public class FloatingPointUnit extends ArithmeticUnit @@ -63,4 +64,19 @@ public class FloatingPointUnit return retType.createValue (v1.doubleValue() - v2.doubleValue()); } + + public Value multiply (Value v1, Value v2) { + return retType.createValue + (v1.doubleValue() * v2.doubleValue()); + } + + public Value divide (Value v1, Value v2) { + return retType.createValue + (v1.doubleValue() / v2.doubleValue()); + } + + public Value mod (Value v1, Value v2) { + return retType.createValue + (v1.doubleValue() % v2.doubleValue()); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 32defa8..aff19e2 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -40,7 +40,8 @@ package frysk.value; /** - * Arithmetic Operation handling for integers. + * Arithmetic and logical Operation handling + * for integers. */ public class IntegerUnit extends ArithmeticUnit @@ -60,4 +61,19 @@ public class IntegerUnit return retType.createValue (v1.asBigInteger().subtract(v2.asBigInteger())); } + + public Value multiply (Value v1, Value v2) { + return retType.createValue + (v1.asBigInteger().multiply(v2.asBigInteger())); + } + + public Value divide (Value v1, Value v2) { + return retType.createValue + (v1.asBigInteger().divide(v2.asBigInteger())); + } + + public Value mod(Value v1, Value v2) { + return retType.createValue + (v1.asBigInteger().mod(v2.asBigInteger())); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 7dbf48c..37c7967 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -102,13 +102,14 @@ public class TestValue { Value v1 = intType.createValue(4); Value v2 = shortType.createValue(9); + // Give bogus word size values. Value v3 = v1.getType().getALU(v2.getType(), 0).add(v1, v2); assertEquals ("4 + 9", 4 + 9, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).subtract(v2, v1); assertEquals ("9 - 4", 9 - 4, v3.asLong()); - v3 = v1.getType().multiply(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).multiply(v2, v1); assertEquals ("9 * 4", 9 * 4, v3.asLong()); - v3 = v1.getType().mod(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).mod(v2, v1); assertEquals ("9 % 4", 9 % 4, v3.asLong()); v3 = v1.getType().shiftLeft(v2, v1); assertEquals ("9 << 4", 9 << 4, v3.asLong()); @@ -140,15 +141,15 @@ public class TestValue assertEquals ("9 | 4", 1, v3.asLong()); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.asLong()); - v3 = v1.getType().getALU(v2.getType(), 0).plusEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).plusEqual(v3, v1); assertEquals ("v3 += 4", 8, v3.asLong()); - v3 = v1.getType().getALU(v2.getType(), 0).minusEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).minusEqual(v3, v1); assertEquals ("v3 -= 4", 4, v3.asLong()); - v3 = v1.getType().timesEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).timesEqual(v3, v1); assertEquals ("v3 *= 4", 16, v3.asLong()); - v3 = v1.getType().divideEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).divideEqual(v3, v1); assertEquals ("v3 /= 4", 4, v3.asLong()); - v3 = v1.getType().modEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).modEqual(v3, v1); assertEquals ("v3 %= 4", 0, v3.asLong()); v3 = v1.getType().shiftLeftEqual(v3, v1); assertEquals ("v3 <<= 4", 0, v3.asLong()); @@ -166,13 +167,14 @@ public class TestValue { Value v1 = floatType.createValue((float)4.0); Value v2 = doubleType.createValue(9.0); + // Give bogus word size values. Value v3 = v1.getType().getALU(v2.getType(), 0).add(v1, v2); assertEquals ("4 + 9", 4 + 9, v3.doubleValue(), 0); v3 = v1.getType().getALU(v2.getType(), 0).subtract(v2, v1); assertEquals ("9 - 4", 9 - 4, v3.doubleValue(), 0); - v3 = v1.getType().multiply(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).multiply(v2, v1); assertEquals ("9 * 4", 9 * 4, v3.doubleValue(), 0); - v3 = v1.getType().mod(v2, v1); + v3 = v1.getType().getALU(v2.getType(), 0).mod(v2, v1); assertEquals ("9 % 4", 9 % 4, v3.doubleValue(), 0); v3 = v1.getType().lessThan(v2, v1); assertEquals ("9 < 4", 9 < 4, isTrue(v3.doubleValue())); @@ -188,15 +190,15 @@ public class TestValue assertEquals ("9 != 4", v2 != v1, isTrue(v3.doubleValue())); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.doubleValue(), 0); - v3 = v1.getType().getALU(v3.getType(), 0).plusEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).plusEqual(v3, v1); assertEquals ("v3 += 4", 8, v3.doubleValue(), 0); - v3 = v1.getType().getALU(v2.getType(), 0).minusEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).minusEqual(v3, v1); assertEquals ("v3 -= 4", 4, v3.doubleValue(), 0); - v3 = v1.getType().timesEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).timesEqual(v3, v1); assertEquals ("v3 *= 4", 16, v3.doubleValue(), 0); - v3 = v1.getType().divideEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).divideEqual(v3, v1); assertEquals ("v3 /= 4", 4, v3.doubleValue(), 0); - v3 = v1.getType().modEqual(v3, v1); + v3 = v3.getType().getALU(v1.getType(), 0).modEqual(v3, v1); assertEquals ("v3 %= 4", 0, v3.doubleValue(), 0); } } diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index cb204aa..c13cb2e 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -143,16 +143,7 @@ public abstract class Type { public ArithmeticUnit getALU(ArrayType type, int wordSize) { throw new RuntimeException("Invalid Arithmetic Unit"); } - - public Value multiply (Value var1, Value var2) { - throw new InvalidOperatorException(this, "*"); - } - public Value divide (Value var1, Value var2) { - throw new InvalidOperatorException(this, "/"); - } - public Value mod (Value var1, Value var2) { - throw new InvalidOperatorException(this, "%"); - } + public Value shiftLeft (Value var1, Value var2) { throw new InvalidOperatorException(this, "<<"); } @@ -198,15 +189,6 @@ public abstract class Type { public Value logicalNegation(Value var1) { throw new InvalidOperatorException(this, "!"); } - public Value timesEqual (Value var1, Value var2) { - throw new InvalidOperatorException(this, "*="); - } - public Value divideEqual (Value var1, Value var2) { - throw new InvalidOperatorException(this, "/="); - } - public Value modEqual (Value var1, Value var2) { - throw new InvalidOperatorException(this, "%="); - } public Value shiftLeftEqual (Value var1, Value var2) { throw new InvalidOperatorException(this, "<<="); } diff --git a/frysk-core/frysk/value/TypeDecorator.java b/frysk-core/frysk/value/TypeDecorator.java index 30e2fc7..98d0461 100644 --- a/frysk-core/frysk/value/TypeDecorator.java +++ b/frysk-core/frysk/value/TypeDecorator.java @@ -89,15 +89,7 @@ abstract class TypeDecorator extends Type { decorated.toPrint(writer); hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Wed Nov 7 20:57:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 07 Nov 2007 20:57:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 74e3e2ffac29c082dc752233408ef8efb73a0aad Message-ID: <20071107205752.6096.qmail@sourceware.org> The branch, master has been updated via 74e3e2ffac29c082dc752233408ef8efb73a0aad (commit) from 718026a59c0ed8ed3a4e7eb97090244332b8c210 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 74e3e2ffac29c082dc752233408ef8efb73a0aad Author: Sami Wagiaalla Date: Wed Nov 7 15:56:55 2007 -0500 swagiaal: Removed Value argument from CompositeType::iterator(). frysk-core/frysk/value/ChangeLog +2007-11-07 Sami Wagiaalla + + * CompositeType.java: Changed iterator() to not require + a Value object. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 5 +++++ frysk-core/frysk/value/CompositeType.java | 9 +++------ 2 files changed, 8 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 108511e..676dae7 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-07 Sami Wagiaalla + + * CompositeType.java: Changed iterator() to not require + a Value object. + 2007-11-07 Teresa Thomas * FloatingPointUnit.java (multiply): New. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index b51545d..1ce5d73 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -187,11 +187,8 @@ public abstract class CompositeType { private int idx; - Value v; - - ClassIterator (Value v) { + ClassIterator () { idx = -1; - this.v = v; } public boolean hasNext () { @@ -206,7 +203,7 @@ public abstract class CompositeType } public Object next () { - return ((Member)members.get(idx)).getValue(v); + return ((Member)members.get(idx)); } public void remove () { @@ -214,7 +211,7 @@ public abstract class CompositeType } public ClassIterator iterator (Value v) { - return new ClassIterator(v); + return new ClassIterator(); } void toPrint(PrintWriter writer, Location location, ByteBuffer memory, hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 7 22:59:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 07 Nov 2007 22:59:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 935a05a3cc0421e015b6170a5e09042fe933c4fb Message-ID: <20071107225945.8754.qmail@sourceware.org> The branch, master has been updated via 935a05a3cc0421e015b6170a5e09042fe933c4fb (commit) from 74e3e2ffac29c082dc752233408ef8efb73a0aad (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 935a05a3cc0421e015b6170a5e09042fe933c4fb Author: Andrew Cagney Date: Wed Nov 7 16:20:18 2007 -0500 Add Command.help(CLI,Input); and use/test. frysk-core/frysk/hpd/ChangeLog 2007-11-07 Andrew Cagney * CLI.java (CLI): Do not add HelpCommand using addHandler. * MultiLevelCommand.java (lookup(String)): New. (help(CLI,Input)): New. (interpret(CLI,Input)): Use lookup(String). * TopLevelCommand.java (Help): New. (TopLevelCommand(DbgVariables)): Use Help to implement "help". * Command.java (help(CLI,Input)): New. * TestHelp.java: New file. * HelpCommand.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 1 - frysk-core/frysk/hpd/ChangeLog | 12 +++ frysk-core/frysk/hpd/Command.java | 19 +++++ frysk-core/frysk/hpd/HelpCommand.java | 72 ------------------- frysk-core/frysk/hpd/MultiLevelCommand.java | 75 ++++++++++++-------- .../hpd/{TestPtypeCommand.java => TestHelp.java} | 33 ++++++--- frysk-core/frysk/hpd/TopLevelCommand.java | 27 +++++++- 7 files changed, 126 insertions(+), 113 deletions(-) delete mode 100644 frysk-core/frysk/hpd/HelpCommand.java copy frysk-core/frysk/hpd/{TestPtypeCommand.java => TestHelp.java} (78%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index ed30e4a..f72545e 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -248,7 +248,6 @@ public class CLI { addHandler(new FocusCommand()); addHandler(new GoCommand()); addHandler(new HaltCommand()); - addHandler(new HelpCommand()); addHandler(new ListCommand()); addHandler(new StepNextCommand()); addHandler(new StepNextiCommand()); diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 0b0b2cb..9ee65ef 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,15 @@ +2007-11-07 Andrew Cagney + + * CLI.java (CLI): Do not add HelpCommand using addHandler. + * MultiLevelCommand.java (lookup(String)): New. + (help(CLI,Input)): New. + (interpret(CLI,Input)): Use lookup(String). + * TopLevelCommand.java (Help): New. + (TopLevelCommand(DbgVariables)): Use Help to implement "help". + * Command.java (help(CLI,Input)): New. + * TestHelp.java: New file. + * HelpCommand.java: Delete. + 2007-11-07 Phil Muldoon * CoreCommand.java (interpret): Check for runtime exceptions diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java index c181163..c95715e 100644 --- a/frysk-core/frysk/hpd/Command.java +++ b/frysk-core/frysk/hpd/Command.java @@ -77,4 +77,23 @@ public abstract class Command { int complete(CLI cli, Input buffer, int cursor, List candidates) { return -1; } + + /** + * Print a full "help" message (syntax and then details) for this + * command. + */ + void help(CLI cli, Input buffer) { + cli.outWriter.print("Usage: "); + cli.outWriter.print(help.getSyntax()); + cli.outWriter.println(); + cli.outWriter.print(help.getFull()); + cli.outWriter.println(); + } + + /** + * Return a brief (one line) description of the command. + */ + String description() { + return help.getDescription(); + } } diff --git a/frysk-core/frysk/hpd/HelpCommand.java b/frysk-core/frysk/hpd/HelpCommand.java deleted file mode 100644 index 64dedf7..0000000 --- a/frysk-core/frysk/hpd/HelpCommand.java +++ /dev/null @@ -1,72 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.util.Iterator; - -class HelpCommand extends Command { - HelpCommand() { - super("help", "Display this help message.", "help [command]", - "Display help (possibly for a command.)"); - } - - public void interpret(CLI cli, Input cmd) { - String output = ""; - String temp = ""; - if (cmd.size() == 0) { - for (Iterator iter = cli.userhelp.getCmdList().iterator(); iter - .hasNext();) { - temp = (String) iter.next(); - output += temp + " - " + cli.userhelp.getCmdDescription(temp) - + "\n"; - } - } else { - for (Iterator iter = cli.userhelp.getCmdList().iterator(); iter - .hasNext();) { - temp = (String) iter.next(); - if (temp.compareTo(cmd.parameter(0)) == 0) { - output += cli.userhelp.getCmdSyntax(temp) + "\n"; - output += cli.userhelp.getCmdFullDescr(temp); - } - } - } - cli.addMessage(output, Message.TYPE_NORMAL); - } -} diff --git a/frysk-core/frysk/hpd/MultiLevelCommand.java b/frysk-core/frysk/hpd/MultiLevelCommand.java index 3dffede..cd13717 100644 --- a/frysk-core/frysk/hpd/MultiLevelCommand.java +++ b/frysk-core/frysk/hpd/MultiLevelCommand.java @@ -39,6 +39,7 @@ package frysk.hpd; +import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; import java.util.Iterator; @@ -55,6 +56,7 @@ public abstract class MultiLevelCommand extends Command { String full) { super(name, description, syntax, full); } + /** * Add the specified command. */ @@ -63,43 +65,58 @@ public abstract class MultiLevelCommand extends Command { return this; } - private void help(CLI cli) { - for (Iterator i = subCommands.values().iterator(); i.hasNext(); ) { - Command c = (Command)(i.next()); - cli.outWriter.print(c.getName()); - cli.outWriter.print(": "); - cli.outWriter.print(c.getHelp().getDescription()); + private Command lookup(String subAction) { + // If there's an exact match return; even when the command is + // ambiguous (e.x. "step" vs "step" "stepi"). + Command command = (Command)subCommands.get(subAction); + if (command != null) + return command; + // Look for something starting, but if multiple matches bail. + Map.Entry subEntry = null; + for (Iterator i = subCommands.entrySet().iterator(); i.hasNext(); ) { + Map.Entry entry = (Map.Entry)(i.next()); + String key = (String)entry.getKey(); + if (key.startsWith(subAction)) { + if (subEntry == null) { + subEntry = entry; + } else { + throw new InvalidCommandException("Ambigious command: " + + subAction); + } + } + } + if (subEntry == null) + throw new InvalidCommandException("Unknown command: " + subAction); + return (Command)subEntry.getValue(); + } + + /** + * Pass the help request down to the next level (if there is one) + * or just print the list of commands at this level. + */ + void help(CLI cli, Input input) { + if (input.size() == 0) { + for (Iterator i = subCommands.entrySet().iterator(); + i.hasNext(); ) { + Map.Entry entry = (Map.Entry)(i.next()); + String name = (String)entry.getKey(); + Command command = (Command)entry.getValue(); + cli.outWriter.print(name); + cli.outWriter.print(" - "); + cli.outWriter.println(command.description()); + } + } else { + lookup(input.parameter(0)).help(cli, input.accept()); } } public void interpret(CLI cli, Input input) { String subAction = input.parameter(0); if (subAction == null) { - help(cli); + help(cli, input); return; } - Command subCommand = (Command)(subCommands.get(subAction)); - if (subCommand == null) { - String subName = null; - for (Iterator i = subCommands.keySet().iterator(); i.hasNext(); ) { - String key = (String)(i.next()); - if (key.startsWith(subAction)) { - if (subName == null) { - subName = key; - } else { - throw new InvalidCommandException("Ambigious command: " - + subAction); - } - } - } - if (subCommand == null) { - throw new InvalidCommandException("Unknown command: " - + subAction); - } - // This must work! - subCommand = (Command)(subCommands.get(subName)); - } - subCommand.interpret(cli, input.accept()); + lookup(subAction).interpret(cli, input.accept()); } int complete(CLI cli, Input input, int cursor, List candidates) { diff --git a/frysk-core/frysk/hpd/TestPtypeCommand.java b/frysk-core/frysk/hpd/TestHelp.java similarity index 78% copy from frysk-core/frysk/hpd/TestPtypeCommand.java copy to frysk-core/frysk/hpd/TestHelp.java index 54a8a81..e2c7b6d 100644 --- a/frysk-core/frysk/hpd/TestPtypeCommand.java +++ b/frysk-core/frysk/hpd/TestHelp.java @@ -40,23 +40,36 @@ package frysk.hpd; /** - * Test the functionality of the ptype command. - * - * The intent here is not to test underlying code such as the type - * parser; that is the responsibility of underlying tests. + * Test the help command, and -help option. */ -public class TestPtypeCommand +public class TestHelp extends TestLib { - public void testPtype() { + public void testHelp() { e = new HpdTestbed(); - e.sendCommandExpectPrompt("ptype 2+2", "long\r\n"); + e.send("help\n"); + e.expect("actionpoints - "); + e.expect("core - "); + e.expect("finish - "); + e.expect("list - "); + e.expect("peek - "); + e.expect("regs - "); + e.expect("step - "); + e.expect("up - "); + e.expectPrompt("whichsets.*"); } - public void testPtypeFails() { + public void testHelpCompletion() { e = new HpdTestbed(); - e.sendCommandExpectPrompt("ptype bogus", "Error: Symbol \"bogus\" is not found " + - "in the current context.\r\n"); + e.send("help u\t"); + e.expect("unalias\r\nundefset\r\nunset\r\nup\r\n" + + prompt + "help u"); + } + + public void testHelpHelp() { + e = new HpdTestbed(); + e.sendCommandExpectPrompt("help help", + "Display help.*"); } } diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index f2140df..82c1447 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -39,11 +39,36 @@ package frysk.hpd; +import java.util.List; + /** * A handler class for the CLI that supplies its own help messages. */ public class TopLevelCommand extends MultiLevelCommand { + /** + * Implement top-level help. + */ + private class Help extends Command { + Help() { + super("help", "Display this help message.", "help [command]", + "Display help (possibly for a command.)"); + } + + public void interpret(CLI cli, Input cmd) { + TopLevelCommand.this.help(cli, cmd); + } + + /** + * Complete the line, throw problem back at the top level + * command. + */ + int complete(CLI cli, Input buffer, int cursor, List candidates) { + return TopLevelCommand.this.complete(cli, buffer, cursor, + candidates); + } + } + TopLevelCommand(DbgVariables dbgvars) { super(" ...", @@ -64,7 +89,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new FocusCommand()); add(new GoCommand()); add(new HaltCommand()); - add(new HelpCommand()); + add(new Help()); add(new ListCommand()); add(new StepNextCommand()); add(new StepNextiCommand()); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 04:17:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 04:17:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 767f3b3a74eeac703deb3c972e485ae0e5f6fee2 Message-ID: <20071108041710.19095.qmail@sourceware.org> The branch, master has been updated via 767f3b3a74eeac703deb3c972e485ae0e5f6fee2 (commit) from 935a05a3cc0421e015b6170a5e09042fe933c4fb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 767f3b3a74eeac703deb3c972e485ae0e5f6fee2 Author: Andrew Cagney Date: Wed Nov 7 23:15:13 2007 -0500 Add ParameterizedCommand handling command options / parameters. frysk-core/frysk/hpd/ChangeLog 2007-11-07 Andrew Cagney * TestParameterizedCommand.java: New. * CommandOption.java: New. * ParameterizedCommand.java: New. * ExamineCommand.java: Extend ParameterizedCommand. * PeekCommand.java: Ditto. * CoreCommand.java: Ditto. * LoadCommand.java: Ditto. * DisassembleCommand.java: Ditto. * OptionParser.java: Delete. * Command.java (parser): Delete. * TestOptionParser.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 12 ++ frysk-core/frysk/hpd/Command.java | 3 - .../{isa/ISAMap.java => hpd/CommandOption.java} | 64 ++++---- frysk-core/frysk/hpd/CoreCommand.java | 21 +-- frysk-core/frysk/hpd/DisassembleCommand.java | 65 ++----- frysk-core/frysk/hpd/ExamineCommand.java | 10 +- frysk-core/frysk/hpd/LoadCommand.java | 12 +- frysk-core/frysk/hpd/OptionParser.java | 190 -------------------- frysk-core/frysk/hpd/ParameterizedCommand.java | 170 +++++++++++++++++ frysk-core/frysk/hpd/PeekCommand.java | 13 +- ...onParser.java => TestParameterizedCommand.java} | 56 ++++--- 11 files changed, 284 insertions(+), 332 deletions(-) copy frysk-core/frysk/{isa/ISAMap.java => hpd/CommandOption.java} (65%) delete mode 100644 frysk-core/frysk/hpd/OptionParser.java create mode 100644 frysk-core/frysk/hpd/ParameterizedCommand.java rename frysk-core/frysk/hpd/{TestOptionParser.java => TestParameterizedCommand.java} (79%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 9ee65ef..990c128 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,17 @@ 2007-11-07 Andrew Cagney + * TestParameterizedCommand.java: New. + * CommandOption.java: New. + * ParameterizedCommand.java: New. + * ExamineCommand.java: Extend ParameterizedCommand. + * PeekCommand.java: Ditto. + * CoreCommand.java: Ditto. + * LoadCommand.java: Ditto. + * DisassembleCommand.java: Ditto. + * OptionParser.java: Delete. + * Command.java (parser): Delete. + * TestOptionParser.java: Delete. + * CLI.java (CLI): Do not add HelpCommand using addHandler. * MultiLevelCommand.java (lookup(String)): New. (help(CLI,Input)): New. diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java index c95715e..943a1a7 100644 --- a/frysk-core/frysk/hpd/Command.java +++ b/frysk-core/frysk/hpd/Command.java @@ -49,8 +49,6 @@ public abstract class Command { private final CommandHelp help; private final String name; - protected OptionParser parser; - public CommandHelp getHelp() { return help; } @@ -62,7 +60,6 @@ public abstract class Command { Command (String name, String description, String syntax, String full) { this.name = name; this.help = new CommandHelp(name, description, syntax, full); - parser = new OptionParser(name, syntax, full + "\n"); } public abstract void interpret(CLI cli, Input cmd); diff --git a/frysk-core/frysk/isa/ISAMap.java b/frysk-core/frysk/hpd/CommandOption.java similarity index 65% copy from frysk-core/frysk/isa/ISAMap.java copy to frysk-core/frysk/hpd/CommandOption.java index 25fa072..a830779 100644 --- a/frysk-core/frysk/isa/ISAMap.java +++ b/frysk-core/frysk/hpd/CommandOption.java @@ -37,50 +37,50 @@ // version and license this file solely under the GPL without // exception. -package frysk.isa; - -import java.util.LinkedHashMap; +package frysk.hpd; /** - * Searchable, insertion ordered table indexed by ISA. + * A command option; optionally parameterized. */ -public class ISAMap { - - private final LinkedHashMap map = new LinkedHashMap(); - private final String what; - public ISAMap(String what) { - this.what = what; +abstract class CommandOption { + final String longName; + final char shortName; + final String description; + final String parameter; + CommandOption(String longName, char shortName, String description, + String parameter) { + this.longName = longName; + this.shortName = shortName; + this.description = description; + this.parameter = parameter; } - - /** - * Add the ISA to the table; this allows cascaded calls vis: - * .put(IA32, O1).put(X8664, O2). - */ - public ISAMap put(ISA isa, Object o) { - map.put(isa, o); - return this; + CommandOption(String name, String description, String parameter) { + this(name, '\0', description, parameter); } - /** - * Find the ISA object, throw an exception if it isn't found. + * An option that doesn't have an argument. */ - public Object get(ISA isa) { - Object o = map.get(isa); - if (o == null) - throw new RuntimeException("The " + isa + " is not supported" - + " (required by " + what + ")"); - return o; + CommandOption(String name, String description) { + this(name, '\0', description, null); } /** - * Return true iff the map contains ISA. + * Utility, parse a boolean parameter. */ - public boolean containsKey(ISA isa) { - return map.containsKey(isa); + boolean parseBoolean(String argument) { + argument = argument.toLowerCase(); + if (argument.equals("yes") + || argument.equals("y")) + return true; + else if (argument.equals("no") + || argument.equals("n")) + return false; + + else + throw new InvalidCommandException + ("option -" + longName + " requires yes or no parameter"); } - public String toString() { - return map.toString(); - } + abstract void parse(String argument, Object options); } diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 3485353..cdda025 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -50,26 +50,19 @@ import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.Task; -public class CoreCommand extends Command { - - private static String desc = "open a core file"; +public class CoreCommand extends ParameterizedCommand { CoreCommand() { - super("core", desc, "core core.file [executable]", desc); + super("core", "core [ ]", + "open a core file"); } - public void interpret(CLI cli, Input cmd) { + void interpret(CLI cli, Input cmd, Object options) { - Proc coreProc; - File exeFile = null; - LinuxHost coreHost = null; + Proc coreProc; + File exeFile = null; + LinuxHost coreHost = null; - // If parse fails, print help - if (!parser.parse(cmd)) { - parser.printHelp(cli.outWriter); - return; - } - // If > 2 parameter, then too many parameters. if (cmd.size() > 2) { throw new InvalidCommandException("Too many parameters"); diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index c6e18a1..c075948 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -45,12 +45,10 @@ import frysk.debuginfo.DebugInfoFrame; import frysk.proc.Task; import frysk.symtab.Symbol; import frysk.symtab.SymbolFactory; -import gnu.classpath.tools.getopt.Option; -import gnu.classpath.tools.getopt.OptionException; import lib.opcodes.Disassembler; import lib.opcodes.Instruction; -public class DisassembleCommand extends Command { +public class DisassembleCommand extends ParameterizedCommand { public DisassembleCommand() { super("disassemble", "disassemble a section of memory", @@ -60,45 +58,26 @@ public class DisassembleCommand extends Command { "disassemble the function surrounding the current pc, " + "the function surrounding a given address, " + "or a range of functions."); - parser.add(new Option("all-instructions", 'a', + add(new CommandOption("all-instructions", 'a', "only print the instruction portion not the parameters", "") { - - public void parsed(String argument) throws OptionException { - allInstructions = parseBoolean(argument); - } - - }); - - parser.add(new Option("full-function", 'f', - "disassemble the entire function", "") { - - public void parsed(String argument) throws OptionException { - full = parseBoolean(argument); - } - - }); - - parser.add(new Option("symbol", 's', "print the symbol name", - "") { - - public void parsed(String argument) throws OptionException { - - symbol = parseBoolean(argument); - } - }); - } - - private boolean parseBoolean(String argument) throws OptionException { - if (argument.toLowerCase().equals("yes") - || argument.toLowerCase().equals("y")) - return true; - else if (argument.toLowerCase().equals("no") - || argument.toLowerCase().equals("n")) - return false; - - else - throw new OptionException("argument should be one of yes or no"); + void parse(String argument, Object options) { + allInstructions = parseBoolean(argument); + } + }); + add(new CommandOption("full-function", 'f', + "disassemble the entire function", + "") { + void parse(String argument, Object options) { + full = parseBoolean(argument); + } + }); + add(new CommandOption("symbol", 's', "print the symbol name", + "") { + void parse(String argument, Object options) { + symbol = parseBoolean(argument); + } + }); } private boolean allInstructions = true; @@ -113,14 +92,10 @@ public class DisassembleCommand extends Command { symbol = true; } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { reset(); PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskDataIter = ptset.getTaskData(); - if (!parser.parse(cmd)) { - parser.printHelp(cli.outWriter); - return; - } if (cmd.size() > 2) throw new InvalidCommandException ("too many arguments to disassemble"); diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java index 1bd6618..bf794d7 100644 --- a/frysk-core/frysk/hpd/ExamineCommand.java +++ b/frysk-core/frysk/hpd/ExamineCommand.java @@ -42,19 +42,15 @@ package frysk.hpd; import java.util.Iterator; import frysk.value.Value; -public class ExamineCommand extends Command { +public class ExamineCommand extends ParameterizedCommand { public ExamineCommand() { - super("examine", "examine a value", "examine VALUE\n", + super("examine", "examine ", "Examine a value in more detail."); } - public void interpret(CLI cli, Input cmd) { + void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (!parser.parse(cmd)) { - parser.printHelp(cli.outWriter); - return; - } if (cmd.size() == 0) { throw new InvalidCommandException("No value to examine"); } diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index 2c2f9e0..4ed5292 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -57,19 +57,13 @@ import java.util.List; * */ -public class LoadCommand extends Command { - - private static String desc = "load an executable file"; +public class LoadCommand extends ParameterizedCommand { LoadCommand() { - super("load", desc, "load path-to-executable", desc); + super("load", "load path-to-executable", "load an executable file"); } - public void interpret(CLI cli, Input cmd) { - if (!parser.parse(cmd)) { - parser.printHelp(cli.outWriter); - return; - } + public void interpret(CLI cli, Input cmd, Object options) { if (cmd.size() > 2) { throw new InvalidCommandException("Too many parameters"); } diff --git a/frysk-core/frysk/hpd/OptionParser.java b/frysk-core/frysk/hpd/OptionParser.java deleted file mode 100644 index 7d06c81..0000000 --- a/frysk-core/frysk/hpd/OptionParser.java +++ /dev/null @@ -1,190 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import gnu.classpath.tools.getopt.Option; -import gnu.classpath.tools.getopt.OptionException; -import gnu.classpath.tools.getopt.OptionGroup; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.LinkedList; -import java.util.Iterator; -import java.util.List; -import java.io.PrintWriter; - -class OptionParser { - - private final List options = new LinkedList(); - private final OptionGroup defaultGroup; - private final OptionGroup finalGroup; - private final String header; - private final String footer; - private final String programName; - - OptionParser(String programName, String header, String footer) { - this.programName = programName; - this.header = header; - this.footer = footer; - defaultGroup = new OptionGroup(programName + " Options"); - finalGroup = new OptionGroup("Standard Options"); - Option help = new Help(); - finalGroup.add(help); - options.add(help); - } - - void add(Option option) { - defaultGroup.add(option); - options.add(option); - } - - private static class HelpException extends RuntimeException { - static final long serialVersionUID = 1; - } - - private class Help extends Option { - Help() { - super("help", "print this help"); - } - public void parsed(String argument) throws OptionException { - throw new HelpException(); - } - } - - void printHelp(PrintWriter out) { - ByteArrayOutputStream scratchStream = new ByteArrayOutputStream(); - PrintStream writer = new PrintStream(scratchStream); - if (header != null) { - writer.println(header); - } - if (defaultGroup != null) { - defaultGroup.printHelp(writer, true); - writer.println(); - } - finalGroup.printHelp(writer, true); - if (footer != null) { - writer.println(footer); - } - out.print(scratchStream.toString()); - } - - /** - * Given a list of arguments, parse and remove options as they are - * found. - */ - boolean parse(Input input) { - try { - for (int currentIndex = input.size() - 1; - currentIndex > -1; - --currentIndex) { - String string = input.parameter(currentIndex); - if (string.equals("--")) { - input.remove(currentIndex); - break; - } - if (string.charAt(0) != '-') - continue; - handleLongOption(input, string, currentIndex + 1); - input.remove(currentIndex); - } - // See if something went wrong. - validate(); - } catch (HelpException h) { - return false; - } catch (OptionException err) { - throw new InvalidCommandException - (programName + ": " + err.getMessage() + "\n" - + programName + ": Try '" + programName - + " -help for more information"); - } - return true; - } - - private void handleLongOption(Input input, String real, int index) - throws OptionException { - String option = real.substring(real.lastIndexOf('-') + 1); - String justName = option; - int eq = option.indexOf('='); - if (eq != -1) - justName = option.substring(0, eq); - boolean isPlainShort = justName.length() == 1; - char shortName = justName.charAt(0); - Option found = null; - for (Iterator i = options.iterator(); i.hasNext(); ) { - Option opt = (Option)(i.next()); - if (justName.equals(opt.getLongName())) { - found = opt; - break; - } - if ((isPlainShort || opt.isJoined()) - && opt.getShortName() == shortName) { - if (!isPlainShort) { - // The rest of the option string is the argument. - eq = 0; - } - found = opt; - break; - } - } - - if (found == null) { - String msg = "unrecognized option '" + real + "'"; - throw new OptionException(msg); - } - String argument = null; - if (found.getTakesArgument()) { hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 8 11:58:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 08 Nov 2007 11:58:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 5dfe33d429e0f1c08a271e91bc7aa2e44ed938c5 Message-ID: <20071108115853.19043.qmail@sourceware.org> The branch, master has been updated via 5dfe33d429e0f1c08a271e91bc7aa2e44ed938c5 (commit) from 767f3b3a74eeac703deb3c972e485ae0e5f6fee2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5dfe33d429e0f1c08a271e91bc7aa2e44ed938c5 Author: Phil Muldoon Date: Thu Nov 8 11:58:45 2007 +0000 Rework corefile workflow. Touch tests to keep up with change. Mark one test as unresolved pending Parameter refactor. 2007-11-08 Phil Muldoon * TestFhd.java (testHpdCore): Add unresolved(5295). 2007-11-08 Phil Muldoon * TestCoreCommand.java (testCoreCommand): Append -noexe to test. * CoreCommand.java (CoreCommand): Use CommandOption. Look for -noexe. (interpret): Rewrite using workflow. (getProc): New. (getHost): New. 2007-11-08 Phil Muldoon * LinuxHost.java (LinuxHost): Check in exe is set to null. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 + frysk-core/frysk/bindir/TestFhd.java | 2 + frysk-core/frysk/hpd/ChangeLog | 10 ++ frysk-core/frysk/hpd/CoreCommand.java | 140 ++++++++++++++++------------- frysk-core/frysk/hpd/TestCoreCommand.java | 2 +- frysk-core/frysk/proc/dead/ChangeLog | 5 + frysk-core/frysk/proc/dead/LinuxHost.java | 18 +++-- 7 files changed, 110 insertions(+), 71 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 05f7740..1b9e5b0 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-08 Phil Muldoon + + * TestFhd.java (testHpdCore): Add unresolved(5295). + 2007-11-02 Petr Machata * fltrace.java: Output values in hex. diff --git a/frysk-core/frysk/bindir/TestFhd.java b/frysk-core/frysk/bindir/TestFhd.java index 0f96570..0a4865f 100755 --- a/frysk-core/frysk/bindir/TestFhd.java +++ b/frysk-core/frysk/bindir/TestFhd.java @@ -86,6 +86,8 @@ public class TestFhd } public void testHpdCore () { + if (unresolved(5295)) + return; e = new Expect(new String[] { Config.getBinFile("fhpd").getPath(), Config.getPkgDataFile("test-core-x86").getPath() diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 990c128..80715d0 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,13 @@ +2007-11-08 Phil Muldoon + + * TestCoreCommand.java (testCoreCommand): Append -noexe to + test. + * CoreCommand.java (CoreCommand): Use CommandOption. + Look for -noexe. + (interpret): Rewrite using workflow. + (getProc): New. + (getHost): New. + 2007-11-07 Andrew Cagney * TestParameterizedCommand.java: New. diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index cdda025..c33e0bf 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -41,31 +41,44 @@ package frysk.hpd; import java.io.File; import java.util.Iterator; + import frysk.debuginfo.DebugInfo; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; -import frysk.proc.dead.CorefileStatus; -import frysk.proc.dead.LinuxHost; import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.Task; +import frysk.proc.dead.LinuxHost; public class CoreCommand extends ParameterizedCommand { + File coreFile = null; + File exeFile = null; + boolean noExeOption = false; + CoreCommand() { - super("core", "core [ ]", - "open a core file"); + super("core", "core [ ] [ -noexe ]", + "open a core file"); + + + add(new CommandOption("noexe", + "Do not attempt to load executable ") { + void parse(String argument, Object options) { + System.out.println("Trigger noexe"); + noExeOption = true; + } + }); + } void interpret(CLI cli, Input cmd, Object options) { Proc coreProc; - File exeFile = null; LinuxHost coreHost = null; // If > 2 parameter, then too many parameters. if (cmd.size() > 2) { - throw new InvalidCommandException("Too many parameters"); + throw new InvalidCommandException("Too many parameters, a maximum of two should be specified."); } // If < 1 parameter, then not enough parameters. @@ -73,68 +86,35 @@ public class CoreCommand extends ParameterizedCommand { throw new InvalidCommandException("Please specify a corefile with the core command"); } - File coreFile = new File(cmd.parameter(0)); + // Command line seems, sane parse. + parseCommandLine(cmd); - // Build corefile host, report errors and quit if any. - if (cmd.size() == 1) - try { - coreHost = new LinuxHost(Manager.eventLoop, coreFile); - } catch (Exception e) { - cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() - + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); - return; - } - else { - exeFile = new File(cmd.parameter(1)); - try { - coreHost = new LinuxHost(Manager.eventLoop, coreFile, exeFile); - } catch (Exception e) { - cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() - + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); - return; - - } + // Does the corefile exist? + if ((!coreFile.exists()) || (!coreFile.canRead())) + throw new InvalidCommandException("No core file found, or cannot read corefile"); + + // Build Core. Move any exceptions up to cli and print to user. + try { + coreHost = getHost(coreFile, exeFile, noExeOption); + } catch (Exception e) { + cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() + + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); + return; } - // Get an iterator to the one process - Iterator i = coreHost.getProcIterator(); + // Get the core proc. + coreProc = getProc(coreHost); - // Find process, if not error out and return. - if (i.hasNext()) - coreProc = (Proc) i.next(); - else { - cli.addMessage("Cannot find a process in corefile: '" + coreFile.getAbsolutePath()+"'. This may not be a valid ELF corefile.", Message.TYPE_ERROR); + // Error out if no exe found, and -noexe option specified + if ((noExeOption == false) && (coreHost.getStatus().hasExe == false)) + { + cli.addMessage("Could not find executable: '"+coreProc.getExe()+"' specified for corefile. "+ + "You can specify one with the core command. E.g: core core.file yourexefile. Alternatively " + + "you can tell fhpd to ignore the executable with -noexe. E.g core core.file -noexe. No " + + "corefile has been loaded at this time.", Message.TYPE_ERROR); return; } - - // If > 1 process, this is a very odd corefile. Abort, can't handle multiple process corefiles. - if (i.hasNext()) { - cli.addMessage("There appears to be two or more processes in corefile: '" + coreFile.getAbsolutePath()+"'. This is not valid for an ELF corefile", Message.TYPE_ERROR); - return; - } - - // Check status, and report whether we managed to load an executable. If not build a message - // to the effect of why we have not. - CorefileStatus status = coreHost.getStatus(); - if (status.hasExe == false) - { - String message = "The corefile: '"+coreFile.getAbsolutePath()+"' has no executable associated with it. The executable name "; - String exeName = ""; - if (exeFile != null) - { - exeName = exeFile.getAbsolutePath(); - message += "specified by the user on the Core command was: '" + exeName; - } - else - { - exeName = coreProc.getExe(); - message += "automatically read from the corefile was: '" + exeName; - } - message+="'. This executable could not be read. Please specifiy an executable on the 'core' command (eg core core.1234 exenamedFile) for richer metadata."; - - cli.addMessage(message,Message.TYPE_WARNING); - } - + // All checks are done. Host is built. Now start reserving space in the sets int procID = cli.idManager.reserveProcID(); cli.idManager.manageProc(coreProc, procID); @@ -151,10 +131,44 @@ public class CoreCommand extends ParameterizedCommand { } // Finally, done. - cli.addMessage("\n* Attached to core file: " + cmd.parameter(0), + cli.addMessage("Attached to core file: " + cmd.parameter(0), Message.TYPE_NORMAL); } + // Build Correct Host on options. + private LinuxHost getHost(File coreFile, File executable, boolean loadExe) { + LinuxHost coreHost = null; + if (executable == null) + if (!loadExe) + coreHost = new LinuxHost(Manager.eventLoop, coreFile); + else + coreHost = new LinuxHost(Manager.eventLoop, coreFile, null); + else + coreHost = new LinuxHost(Manager.eventLoop, coreFile, executable); + + return coreHost; + } + + // From a Host, get a Proc + private Proc getProc(LinuxHost coreHost) { + // Get an iterator to the one process + Iterator i = coreHost.getProcIterator(); + + // Find process, if not error out and return. + if (i.hasNext()) + return (Proc) i.next(); + else + return null; + } + + // Parse the option commandline + private void parseCommandLine(Input cli) { + coreFile = new File(cli.parameter(0)); + if (cli.size() == 1) + return; + else + exeFile = new File(cli.parameter(1)); + } } diff --git a/frysk-core/frysk/hpd/TestCoreCommand.java b/frysk-core/frysk/hpd/TestCoreCommand.java index 5bf82b6..0953093 100644 --- a/frysk-core/frysk/hpd/TestCoreCommand.java +++ b/frysk-core/frysk/hpd/TestCoreCommand.java @@ -50,7 +50,7 @@ public class TestCoreCommand extends TestLib { public void testCoreCommand() { e = new HpdTestbed(); e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() - + "\n"); + + " -noexe\n"); e.expect(5, "Attached to core file.*"); e.close(); } diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 4c81cac..bd3c6f4 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Phil Muldoon + + * LinuxHost.java (LinuxHost): Check in exe is set to + null. + 2007-11-07 Phil Muldoon * LinuxHost.java (LinuxHost): Create up front ET_CORE check in diff --git a/frysk-core/frysk/proc/dead/LinuxHost.java b/frysk-core/frysk/proc/dead/LinuxHost.java index 827cdff..3052223 100644 --- a/frysk-core/frysk/proc/dead/LinuxHost.java +++ b/frysk-core/frysk/proc/dead/LinuxHost.java @@ -103,14 +103,18 @@ public class LinuxHost extends DeadHost { if (exeFile == null) exeSetToNull = true; - if (exeFile.canRead() && exeFile.exists()) - this.exeFile = exeFile; - else { - status.hasExe = false; - status.hasExeProblem = true; - status.message = "The user provided executable: " + if (exeSetToNull == false) + if (exeFile.canRead() && exeFile.exists()) { + this.exeFile = exeFile; + status.hasExe = true; + status.hasExeProblem = false; + } + else { + status.hasExe = false; + status.hasExeProblem = true; + status.message = "The user provided executable: " + exeFile.getAbsolutePath() + " could not be accessed"; - } + } this.sendRefresh(true); } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 8 12:04:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 08 Nov 2007 12:04:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 9db08d018eb772dc97a7244e1c8bde3fbd523f8d Message-ID: <20071108120453.20806.qmail@sourceware.org> The branch, master has been updated via 9db08d018eb772dc97a7244e1c8bde3fbd523f8d (commit) from 5dfe33d429e0f1c08a271e91bc7aa2e44ed938c5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9db08d018eb772dc97a7244e1c8bde3fbd523f8d Author: Phil Muldoon Date: Thu Nov 8 12:04:46 2007 +0000 Reformat to SUN style, and remove errant System.out ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CoreCommand.java | 221 +++++++++++++++++---------------- 1 files changed, 112 insertions(+), 109 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index c33e0bf..2b2935e 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -53,122 +53,125 @@ import frysk.proc.dead.LinuxHost; public class CoreCommand extends ParameterizedCommand { File coreFile = null; + File exeFile = null; + boolean noExeOption = false; - - CoreCommand() { - super("core", "core [ ] [ -noexe ]", - "open a core file"); - - - add(new CommandOption("noexe", - "Do not attempt to load executable ") { - void parse(String argument, Object options) { - System.out.println("Trigger noexe"); - noExeOption = true; - } - }); - - } - - void interpret(CLI cli, Input cmd, Object options) { - - Proc coreProc; - LinuxHost coreHost = null; - - // If > 2 parameter, then too many parameters. - if (cmd.size() > 2) { - throw new InvalidCommandException("Too many parameters, a maximum of two should be specified."); - } - - // If < 1 parameter, then not enough parameters. - if (cmd.size() < 1) { - throw new InvalidCommandException("Please specify a corefile with the core command"); + + CoreCommand() { + super("core", "core [ ] [ -noexe ]", + "open a core file"); + + add(new CommandOption("noexe", "Do not attempt to load executable ") { + void parse(String argument, Object options) { + noExeOption = true; + } + }); + } - // Command line seems, sane parse. - parseCommandLine(cmd); - - // Does the corefile exist? - if ((!coreFile.exists()) || (!coreFile.canRead())) - throw new InvalidCommandException("No core file found, or cannot read corefile"); - - // Build Core. Move any exceptions up to cli and print to user. - try { - coreHost = getHost(coreFile, exeFile, noExeOption); - } catch (Exception e) { - cli.addMessage("An error has occured while loading corefile: '" + coreFile.getAbsolutePath() - + "'. Error message is: " + e.getMessage(), Message.TYPE_ERROR); - return; + void interpret(CLI cli, Input cmd, Object options) { + + Proc coreProc; + LinuxHost coreHost = null; + + // If > 2 parameter, then too many parameters. + if (cmd.size() > 2) { + throw new InvalidCommandException( + "Too many parameters, a maximum of two should be specified."); + } + + // If < 1 parameter, then not enough parameters. + if (cmd.size() < 1) { + throw new InvalidCommandException( + "Please specify a corefile with the core command"); + } + + // Command line seems, sane parse. + parseCommandLine(cmd); + + // Does the corefile exist? + if ((!coreFile.exists()) || (!coreFile.canRead())) + throw new InvalidCommandException( + "No core file found, or cannot read corefile"); + + // Build Core. Move any exceptions up to cli and print to user. + try { + coreHost = getHost(coreFile, exeFile, noExeOption); + } catch (Exception e) { + cli.addMessage("An error has occured while loading corefile: '" + + coreFile.getAbsolutePath() + "'. Error message is: " + + e.getMessage(), Message.TYPE_ERROR); + return; + } + + // Get the core proc. + coreProc = getProc(coreHost); + + // Error out if no exe found, and -noexe option specified + if ((noExeOption == false) && (coreHost.getStatus().hasExe == false)) { + cli.addMessage( + "Could not find executable: '" + + coreProc.getExe()+ "' specified for corefile. " + + "You can specify one with the core command. E.g: core core.file yourexefile. Alternatively " + + "you can tell fhpd to ignore the executable with -noexe. E.g core core.file -noexe. No " + + "corefile has been loaded at this time.", + Message.TYPE_ERROR); + return; + } + + // All checks are done. Host is built. Now start reserving space in the sets + int procID = cli.idManager.reserveProcID(); + cli.idManager.manageProc(coreProc, procID); + + // Build debug info for each task and frame. + Iterator foo = cli.targetset.getTasks(); + while (foo.hasNext()) { + Task task = (Task) foo.next(); + DebugInfoFrame frame = DebugInfoStackFactory + .createVirtualStackTrace(task); + cli.setTaskFrame(task, frame); + cli.setTaskDebugInfo(task, new DebugInfo(frame)); + } + + // Finally, done. + cli.addMessage("Attached to core file: " + cmd.parameter(0), + Message.TYPE_NORMAL); + } - - // Get the core proc. - coreProc = getProc(coreHost); - - // Error out if no exe found, and -noexe option specified - if ((noExeOption == false) && (coreHost.getStatus().hasExe == false)) - { - cli.addMessage("Could not find executable: '"+coreProc.getExe()+"' specified for corefile. "+ - "You can specify one with the core command. E.g: core core.file yourexefile. Alternatively " + - "you can tell fhpd to ignore the executable with -noexe. E.g core core.file -noexe. No " + - "corefile has been loaded at this time.", Message.TYPE_ERROR); - return; + + // Build Correct Host on options. + private LinuxHost getHost(File coreFile, File executable, boolean loadExe) { + LinuxHost coreHost = null; + if (executable == null) + if (!loadExe) + coreHost = new LinuxHost(Manager.eventLoop, coreFile); + else + coreHost = new LinuxHost(Manager.eventLoop, coreFile, null); + else + coreHost = new LinuxHost(Manager.eventLoop, coreFile, executable); + + return coreHost; } - // All checks are done. Host is built. Now start reserving space in the sets - int procID = cli.idManager.reserveProcID(); - cli.idManager.manageProc(coreProc, procID); - - // Build debug info for each task and frame. - Iterator foo = cli.targetset.getTasks(); - while (foo.hasNext()) { - Task task = (Task) foo.next(); - DebugInfoFrame frame = DebugInfoStackFactory - .createVirtualStackTrace(task); - cli.setTaskFrame(task, frame); - cli.setTaskDebugInfo(task, new DebugInfo( - frame)); + // From a Host, get a Proc + private Proc getProc(LinuxHost coreHost) { + // Get an iterator to the one process + Iterator i = coreHost.getProcIterator(); + + // Find process, if not error out and return. + if (i.hasNext()) + return (Proc) i.next(); + else + return null; } - // Finally, done. - cli.addMessage("Attached to core file: " + cmd.parameter(0), - Message.TYPE_NORMAL); - - - } - - // Build Correct Host on options. - private LinuxHost getHost(File coreFile, File executable, boolean loadExe) { - LinuxHost coreHost = null; - if (executable == null) - if (!loadExe) - coreHost = new LinuxHost(Manager.eventLoop, coreFile); - else - coreHost = new LinuxHost(Manager.eventLoop, coreFile, null); - else - coreHost = new LinuxHost(Manager.eventLoop, coreFile, executable); - - return coreHost; - } - - // From a Host, get a Proc - private Proc getProc(LinuxHost coreHost) { - // Get an iterator to the one process - Iterator i = coreHost.getProcIterator(); - - // Find process, if not error out and return. - if (i.hasNext()) - return (Proc) i.next(); - else - return null; - } - - // Parse the option commandline - private void parseCommandLine(Input cli) { - coreFile = new File(cli.parameter(0)); - if (cli.size() == 1) - return; - else - exeFile = new File(cli.parameter(1)); - } + // Parse the option commandline + private void parseCommandLine(Input cli) { + coreFile = new File(cli.parameter(0)); + if (cli.size() == 1) + return; + else + exeFile = new File(cli.parameter(1)); + } } hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Thu Nov 8 13:07:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Thu, 08 Nov 2007 13:07:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. b64b53ab72226ccc8c0bab0372a6de8328d22f81 Message-ID: <20071108130703.24640.qmail@sourceware.org> The branch, master has been updated via b64b53ab72226ccc8c0bab0372a6de8328d22f81 (commit) from 9db08d018eb772dc97a7244e1c8bde3fbd523f8d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b64b53ab72226ccc8c0bab0372a6de8328d22f81 Author: Petr Machata Date: Thu Nov 8 14:02:46 2007 +0100 Support for _dl_debug_state mmap/unmap guard. * Map/unmap guard refactored to class of its own. Method attachTo(Task) will pick either _dl_debug_state-based guard, or syscall-based guard if the former isn't available for some reason. * Few coding style changes across the code. Trying to become java compliant if the resulting patch is small enough. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 + frysk-core/frysk/bindir/fltrace.java | 16 +- frysk-core/frysk/ftrace/ChangeLog | 10 + frysk-core/frysk/ftrace/Ltrace.java | 41 ++--- ...traceController.java => MappingController.java} | 17 +- frysk-core/frysk/ftrace/MappingGuard.java | 182 ++++++++++++++++++++ frysk-core/frysk/ftrace/ObjectFile.java | 121 ++++++++------ 7 files changed, 300 insertions(+), 91 deletions(-) copy frysk-core/frysk/ftrace/{LtraceController.java => MappingController.java} (85%) create mode 100644 frysk-core/frysk/ftrace/MappingGuard.java First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 1b9e5b0..efc7825 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-08 Petr Machata + + * fltrace.java (MyLtraceObserver.pidInfo): new method + 2007-11-08 Phil Muldoon * TestFhd.java (testHpdCore): Add unresolved(5295). diff --git a/frysk-core/frysk/bindir/fltrace.java b/frysk-core/frysk/bindir/fltrace.java index 0b6c2e0..36ac581 100644 --- a/frysk-core/frysk/bindir/fltrace.java +++ b/frysk-core/frysk/bindir/fltrace.java @@ -325,6 +325,11 @@ public class fltrace return new String(fill); } + private String pidInfo(Task task) + { + return "[" + task.getProc().getPid() + "." + task.getTid() + "]"; + } + private void eventEntry(Task task, Object item, String eventType, String eventName, Object[] args) { @@ -335,7 +340,7 @@ public class fltrace if (lineOpened()) System.err.println('\\'); - System.err.print("[" + task.getTaskId().intValue() + "] " + System.err.print(pidInfo(task) + " " + spaces + eventType + " "); System.err.print(eventName + "("); for (int i = 0; i < args.length; ++i) { @@ -365,8 +370,7 @@ public class fltrace if (lineOpened()) System.err.println(); String spaces = repeat(' ', level); - System.err.print("[" + task.getTaskId().intValue() + "] " - + spaces + eventType + " " + eventName); + System.err.print(pidInfo(task) + " " + spaces + eventType + " " + eventName); } System.err.println(" = " + retVal); @@ -376,12 +380,11 @@ public class fltrace private void eventSingle(Task task, String eventName) { - int pid = task.getTid(); int level = this.getLevel(task); if (lineOpened()) System.err.println("\\"); - System.err.println("[" + pid + "] " + repeat(' ', level) + eventName); + System.err.println(pidInfo(task) + " " + repeat(' ', level) + eventName); updateOpenLine(null, null); } @@ -455,8 +458,7 @@ public class fltrace { if (lineOpened()) System.err.println('\\'); - int pid = task.getTid(); - System.err.print("[" + pid + "] "); + System.err.print(pidInfo(task) + " "); if (signal) System.err.println("killed by " + Sig.toPrintString(value)); else diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index 99bbec7..2be067c 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,13 @@ +2007-11-08 Petr Machata + + * MappingController.java: New file. + * MappingGuard.java: New file. + * Ltrace.java: No longer trace syscalls by default. + (LtraceTaskObserver.updateSyscallLeave): Move to MappingGuard. + * ObjectFile.java: Now loads program interpreter. + (setInterp, getInterp): New methods. + (lookupTracePoint): New method. + 2007-11-02 Petr Machata * TestLtrace.java (testArgumentsCorrect1): New test. diff --git a/frysk-core/frysk/ftrace/Ltrace.java b/frysk-core/frysk/ftrace/Ltrace.java index b359c4c..97979c9 100644 --- a/frysk-core/frysk/ftrace/Ltrace.java +++ b/frysk-core/frysk/ftrace/Ltrace.java @@ -73,10 +73,11 @@ public class Ltrace // True if we're tracing signals as well. boolean traceSignals = false; - // True if we're tracing syscalls. Currently true by default, - // because we need to trace syscalls for correct mmap/munmap - // handling. - boolean traceSyscalls = true; + // True if we're tracing syscalls. + // TODO: this shouldn't be part of Ltrace class at all. Make it so + // that Ltrace observes Tasks, and plug Ltrace into Ftrace's + // framework. + boolean traceSyscalls = false; // Task counter. int numTasks = 0; @@ -313,7 +314,8 @@ public class Ltrace TaskObserver.Syscall, TaskObserver.Signaled, TaskObserver.Terminated, - TaskObserver.Terminating + TaskObserver.Terminating, + MappingController { /** Remembers which files are currently mapped in which task. */ private HashMap mapsForTask = new HashMap(); @@ -327,6 +329,9 @@ public class Ltrace Map<task, Map<address, List<TracePoint>>> */ private HashMap retBreakpointsForTask = new HashMap(); + /** Keeps track of map/unmap events. */ + private MappingGuard mappingGuard = new MappingGuard(this); + // --------------------- // --- ltrace driver --- // --------------------- @@ -479,21 +484,6 @@ public class Ltrace } } - // Unfortunately, I know of no reasonable, (as in platform - // independent) way to find whether a syscall is mmap, - // munmap, or anything else. Hence this hack, which is - // probably still much better than rescanning the map on - // each syscall. - String name = syscall.getName(); - - if (name.indexOf("mmap") != -1 - || name.indexOf("munmap") != -1) - { - this.checkMapUnmapUpdates(task, false); - task.requestUnblock(this); - return Action.BLOCK; - } - return Action.CONTINUE; } @@ -637,15 +627,14 @@ public class Ltrace long pc = task.getIsa().pc(task); logger.log(Level.FINE, "new task attached at 0x" + Long.toHexString(pc) - + ", pid=" + task.getTaskId().intValue(), this); + + ", pid=" + task.getTaskId().intValue()); this.mapsForTask.put(task, java.util.Collections.EMPTY_SET); - - // Can't use the EMPTY_MAPs here, cause these get modified directly. this.breakpointsForTask.put(task, new HashMap()); this.retBreakpointsForTask.put(task, new HashMap()); this.checkMapUnmapUpdates(task, false); + mappingGuard.attachTo(task); task.requestUnblock(this); return Action.BLOCK; @@ -711,6 +700,12 @@ public class Ltrace // --- mmap/munmap handling --- // ---------------------------- + /** Implementation of MappingController interface... */ + public void checkMapUnmapUpdates(Task task) + { + checkMapUnmapUpdates(task, false); + } + private void checkMapUnmapUpdates(Task task, boolean terminating) { Set mappedFiles = (Set)this.mapsForTask.get(task); diff --git a/frysk-core/frysk/ftrace/LtraceController.java b/frysk-core/frysk/ftrace/MappingController.java similarity index 85% copy from frysk-core/frysk/ftrace/LtraceController.java copy to frysk-core/frysk/ftrace/MappingController.java index aae77e2..6f1b02f 100644 --- a/frysk-core/frysk/ftrace/LtraceController.java +++ b/frysk-core/frysk/ftrace/MappingController.java @@ -40,14 +40,15 @@ package frysk.ftrace; /** - * The LtraceController interface is used for decisions on what should - * be done with each loaded library. + * Mapping guards signal request to rescan mappings through this + * interface. The interface is package-private, because noone from + * outside should have to use it. */ -public interface LtraceController +interface MappingController { - /** - * New library FILE was mapped in task TASK. Use DRIVER to tell - * ltrace what to do. - */ - void fileMapped(frysk.proc.Task task, ObjectFile file, Ltrace.Driver driver); + /** + * New library FILE was mapped in task TASK. Use DRIVER to tell + * ltrace what to do. + */ + void checkMapUnmapUpdates(frysk.proc.Task task); } diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java new file mode 100644 index 0000000..e88e226 --- /dev/null +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -0,0 +1,182 @@ +// This file is part of the program FRYSK. +// +// Copyright 2007, Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.ftrace; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Set; +import java.util.logging.*; + +import frysk.proc.Action; +import frysk.proc.Task; +import frysk.proc.TaskObserver; + +class MappingGuard + implements TaskObserver.Code, + TaskObserver.Syscall +{ + protected static final Logger logger = Logger.getLogger(FtraceLogger.LOGGER_ID); + private HashMap syscallCache = new HashMap(); + private MappingController ltraceProper; + + public MappingGuard(MappingController ltraceProper) { + this.ltraceProper = ltraceProper; + } + + public Action updateHit (Task task, long address) + { + ltraceProper.checkMapUnmapUpdates(task); + task.requestUnblock(this); + return Action.BLOCK; + } + + public Action updateSyscallEnter (Task task) + { + frysk.proc.Syscall syscall = task.getSyscallEventInfo().getSyscall(task); + syscallCache.put(task, syscall); + return Action.CONTINUE; + } + + public Action updateSyscallExit (Task task) + { + frysk.proc.Syscall syscall = (frysk.proc.Syscall)syscallCache.remove(task); + + // Unfortunately, I know of no reasonable (as in + // platform independent) way to find whether a syscall + // is mmap, munmap, or anything else. Hence this hack, + // which is probably still much better than rescanning + // the map on each syscall. + String name = syscall.getName(); + if (name.indexOf("mmap") != -1 || name.indexOf("munmap") != -1) { + ltraceProper.checkMapUnmapUpdates(task); + task.requestUnblock(this); + return Action.BLOCK; + } + + return Action.CONTINUE; + } + + public void addFailed(Object o, Throwable t) {} + public void deletedFrom(Object o) {} + public void addedTo(Object o) {} + + /** + * Try to setup guard based on _dl_debug_state. + * + * Set up _dl_debug_state observer to spot each mapping. The + * proper way to do this is to look up the DT_DEBUG entry in + * task's DYNAMIC segment, and look into the structure it points + * to. But we would have to wait for dynamic linker to fill + * this info, and meanwhile we would miss all the + * mapping/unmapping. + * + * @return true on success, false on failure. + */ + private boolean setupDebugStateObserver(Task task) + { + logger.log(Level.FINE, "Entering...."); + + java.io.File f = new java.io.File(task.getProc().getExe()); + ObjectFile objf = ObjectFile.buildFromFile(f); + String interp = objf.getInterp(); + if (interp == null) { + // We're boned. + logger.log(Level.WARNING, "`{1}' has no interpreter.", f); + return false; + } + + java.io.File interppath = new java.io.File(interp); + try { + interppath = interppath.getCanonicalFile(); + } + catch (java.io.IOException e) { + logger.log(Level.WARNING, + "Couldn't get canonical path of ELF interpreter `{1}'.", + interppath); + return false; + } + + ObjectFile interpf = ObjectFile.buildFromFile(interppath); + TracePoint tp = null; + try { + tp = interpf.lookupTracePoint("_dl_debug_state", + TracePointOrigin.DYNAMIC); + if (tp == null) { + logger.log(Level.FINE, + "Symbol _dl_debug_state not found in `{1}'.", + interppath); + return false; + } + } + catch (lib.dwfl.ElfException e) { + e.printStackTrace(); + logger.log(Level.WARNING, + "Problem reading DYNAMIC entry points from `{1}'", + interppath); + return false; + } + + // Load initial set of mapped files. + Set currentMappings = MemoryMapping.buildForPid(task.getTid()); + long relocation = -1; + for (Iterator it = currentMappings.iterator(); it.hasNext(); ) { + MemoryMapping mm = (MemoryMapping)it.next(); + if (mm.path.equals(interppath)) { + relocation = mm.addressLow - interpf.getBaseAddress(); + break; + } + } + if (relocation == -1) { + logger.log(Level.FINE, "Couldn't obtain relocation of interpreter."); + return false; + } + + // There we go! + long fin = tp.address + relocation; + task.requestAddCodeObserver(this, fin); + return true; + } + + public void attachTo(Task task) + { + if (!setupDebugStateObserver(task)) + task.requestAddSyscallObserver(this); + } +} diff --git a/frysk-core/frysk/ftrace/ObjectFile.java b/frysk-core/frysk/ftrace/ObjectFile.java index 8400e1e..ba9dbd7 100644 --- a/frysk-core/frysk/ftrace/ObjectFile.java +++ b/frysk-core/frysk/ftrace/ObjectFile.java @@ -71,6 +71,7 @@ public class ObjectFile { private File filename; private String soname = null; + private String interp = null; private long baseAddress = 0; private long entryPoint = 0; private static HashMap cachedFiles = new HashMap(); @@ -181,20 +182,18 @@ public class ObjectFile throws lib.dwfl.ElfException { ArrayList tracePoints = (ArrayList)this.tracePointMap.get(origin); - if (tracePoints != null) - { + if (tracePoints != null) { logger.log(Level.FINE, "" + tracePoints.size() + " tracepoints for origin " + origin + " retrieved from cache."); return tracePoints; - } + } logger.log(Level.FINE, "Loading tracepoints for origin " + origin + "."); if ((origin == TracePointOrigin.PLT || origin == TracePointOrigin.DYNAMIC) && this.haveDynamic) - { + { // Initialize dynamic symbol list for PLT if necessary... - if (this.dynamicSymbolList == null) - { + if (this.dynamicSymbolList == null) { long count = ElfSymbol.symbolsCount(ObjectFile.this.dynamicSymtab); assertFitsToInt(count, "Symbol count"); this.dynamicSymbolList = new Symbol[(int)count]; @@ -202,10 +201,9 @@ public class ObjectFile = new ElfSymbol.Loader(ObjectFile.this.dynamicSymtab, ObjectFile.this.dynamicVersym, ObjectFile.this.dynamicVerdef, ObjectFile.this.dynamicVerdefCount, ObjectFile.this.dynamicVerneed, ObjectFile.this.dynamicVerneedCount); - } + } - if (origin == TracePointOrigin.DYNAMIC) - { + if (origin == TracePointOrigin.DYNAMIC) { // Load dynamic symtab and PLT entries. logger.log(Level.FINER, "Loading dynamic symtab."); this.origin = TracePointOrigin.DYNAMIC; @@ -213,10 +211,9 @@ public class ObjectFile this.tracePointMap.put(this.origin, this.tracePoints); this.dynamicLoader.loadAll(this); - } + } - if (origin == TracePointOrigin.PLT) - { + if (origin == TracePointOrigin.PLT) { int pltCount = ObjectFile.this.pltRelocs.length; logger.log(Level.FINER, "Loading " + pltCount + " PLT entries."); @@ -234,22 +231,20 @@ public class ObjectFile /* XXX HACK: 386/x64 specific. In general we want * platform-independent way of asking whether it's * JMP_SLOT relocation. */ - if (ObjectFile.this.pltRelocs[i].type == 7) - { + if (ObjectFile.this.pltRelocs[i].type == 7) { long pltEntryAddr = ObjectFile.this.pltAddr + pltEntrySize * (i + 1); long symbolIndex = ObjectFile.this.pltRelocs[i].symbolIndex; assertFitsToInt(symbolIndex, "Symbol associated with PLT entry"); Symbol symbol = this.dynamicSymbolList[(int)symbolIndex]; - if (symbol == null) - { + if (symbol == null) { logger.log(Level.FINEST, "Lazy loading symbol #" + symbolIndex); this.origin = TracePointOrigin.DYNAMIC; this.tracePoints = tracePointsDynamic; this.dynamicLoader.load(symbolIndex, this); symbol = this.dynamicSymbolList[(int)symbolIndex]; - } + } if (symbol == null) throw new AssertionError("Dynamic symbol still not initialized."); @@ -259,12 +254,11 @@ public class ObjectFile this.origin = TracePointOrigin.PLT; this.tracePoints = tracePointsPlt; this.addNewTracepoint(pltEntryAddr, symbol); - } - } - } + } + } + } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 14:45:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 14:45:00 -0000 Subject: [SCM] frysk system monitor/debugger branch, master, updated. 3b6b68b00544cc4eb9e352de1cdc578083569f9d Message-ID: <20071108144506.474.qmail@sourceware.org> The branch, master has been updated via 3b6b68b00544cc4eb9e352de1cdc578083569f9d (commit) from b64b53ab72226ccc8c0bab0372a6de8328d22f81 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3b6b68b00544cc4eb9e352de1cdc578083569f9d Author: Andrew Cagney Date: Thu Nov 8 09:43:19 2007 -0500 Make ParameterizedCommand.complet(...) abstract. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * CompletionFactory.java (completeFileName(CLI,String,int,List)): New. (completeExpression(CLI,PTSet,String,int,List)): New. (completeFileName(CLI,Input,int,List)): Delete. * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. (complete(CLI,PTSet,String,int,List)): New; abstract. * CoreCommand.java (complete(CLI,PTSet,String,int,List)): New. * ExamineCommand.java: Ditto. * DisassembleCommand.java: Ditto. * LoadCommand.java: Ditto. * PeekCommand.java: Ditto. * TestParameterizedCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 14 +++++++ frysk-core/frysk/hpd/CompletionFactory.java | 40 +++++++++++++++---- frysk-core/frysk/hpd/CoreCommand.java | 7 +++ frysk-core/frysk/hpd/DisassembleCommand.java | 8 ++++ frysk-core/frysk/hpd/ExamineCommand.java | 7 +++ frysk-core/frysk/hpd/LoadCommand.java | 8 ++- frysk-core/frysk/hpd/ParameterizedCommand.java | 21 ++++++++++ frysk-core/frysk/hpd/PeekCommand.java | 7 +++ frysk-core/frysk/hpd/TestParameterizedCommand.java | 6 +++ 9 files changed, 106 insertions(+), 12 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 80715d0..d318cee 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,17 @@ +2007-11-08 Andrew Cagney + + * CompletionFactory.java (completeFileName(CLI,String,int,List)): New. + (completeExpression(CLI,PTSet,String,int,List)): New. + (completeFileName(CLI,Input,int,List)): Delete. + * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. + (complete(CLI,PTSet,String,int,List)): New; abstract. + * CoreCommand.java (complete(CLI,PTSet,String,int,List)): New. + * ExamineCommand.java: Ditto. + * DisassembleCommand.java: Ditto. + * LoadCommand.java: Ditto. + * PeekCommand.java: Ditto. + * TestParameterizedCommand.java: Ditto. + 2007-11-08 Phil Muldoon * TestCoreCommand.java (testCoreCommand): Append -noexe to diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java index 3f237c2..ccf172e 100644 --- a/frysk-core/frysk/hpd/CompletionFactory.java +++ b/frysk-core/frysk/hpd/CompletionFactory.java @@ -90,15 +90,37 @@ class CompletionFactory { } } - static int completeFileName(CLI cli, Input input, int cursor, - List candidates) { - String incomplete = input.stringValue(); - int start = input.token(0).start; - int end = new FileNameCompletor().complete(incomplete, cursor - start, - candidates); - if (end >= 0) - return start + end; - else + static int completeExpression(CLI cli, PTSet ptset, + String incomplete, int base, + List candidates) { + Iterator i = ptset.getTasks(); + if (!i.hasNext()) { + // Should still be able to complete $variables. return -1; + } else { + int newCursor = -1; + do { + Task task = (Task)i.next(); + DebugInfoFrame frame = cli.getTaskFrame(task); + DebugInfo debugInfo = cli.getTaskDebugInfo(task); + int tmp = debugInfo.complete(frame, incomplete, + base, candidates); + if (tmp >= 0) + newCursor = tmp; + } while (i.hasNext()); + // If only one candidate, pad out with a space. + padSingleCandidate(candidates); + // System.out.println("start=" + start); + // System.out.println("base=" + base); + // System.out.println("candidates=" + candidates); + // System.out.println("newCursor=" + newCursor); + return newCursor; + } + } + + static int completeFileName(CLI cli, String incomplete, int base, + List candidates) { + return new FileNameCompletor().complete(incomplete, base, + candidates); } } diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 2b2935e..2a7354f 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -42,6 +42,7 @@ package frysk.hpd; import java.io.File; import java.util.Iterator; +import java.util.List; import frysk.debuginfo.DebugInfo; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; @@ -174,4 +175,10 @@ public class CoreCommand extends ParameterizedCommand { else exeFile = new File(cli.parameter(1)); } + + int complete(CLI cli, PTSet set, String incomplete, int base, + List completions) { + return CompletionFactory.completeFileName(cli, incomplete, base, + completions); + } } diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index c075948..4c303e4 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -292,4 +292,12 @@ public class DisassembleCommand extends ParameterizedCommand { interface InstructionPrinter { String toPrint(Instruction instruction); } + + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } + } diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java index bf794d7..348f6ab 100644 --- a/frysk-core/frysk/hpd/ExamineCommand.java +++ b/frysk-core/frysk/hpd/ExamineCommand.java @@ -41,6 +41,7 @@ package frysk.hpd; import java.util.Iterator; import frysk.value.Value; +import java.util.List; public class ExamineCommand extends ParameterizedCommand { @@ -76,4 +77,10 @@ public class ExamineCommand extends ParameterizedCommand { } } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index 4ed5292..7117833 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -99,8 +99,10 @@ public class LoadCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List candidates) { - return CompletionFactory.completeFileName(cli, input, cursor, - candidates); + + int complete(CLI cli, PTSet set, String incomplete, int base, + List completions) { + return CompletionFactory.completeFileName(cli, incomplete, base, + completions); } } diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index 70214a5..3fbf3a2 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -42,6 +42,7 @@ package frysk.hpd; import java.util.TreeMap; import java.util.Iterator; import java.util.SortedMap; +import java.util.List; abstract class ParameterizedCommand extends Command { private final SortedMap longOptions = new TreeMap(); @@ -167,4 +168,24 @@ abstract class ParameterizedCommand extends Command { * Interpret command, using options. */ abstract void interpret(CLI cli, Input input, Object options); + + /** + * Complete the input. + */ + final int complete(CLI cli, Input input, int cursor, List candidates) { + int start = input.token(0).start; + int pos = complete(cli, cli.getCommandPTSet(input), + input.stringValue(), cursor - start, candidates); + if (pos > 0) { + return pos + start; + } else { + return -1; + } + } + + /** + * Complete the string. + */ + abstract int complete(CLI cli, PTSet ptset, String incomplete, + int base, List candidates); } diff --git a/frysk-core/frysk/hpd/PeekCommand.java b/frysk-core/frysk/hpd/PeekCommand.java index 2e6ba25..6e9da6c 100644 --- a/frysk-core/frysk/hpd/PeekCommand.java +++ b/frysk-core/frysk/hpd/PeekCommand.java @@ -44,6 +44,7 @@ import inua.eio.ByteBuffer; import frysk.proc.Proc; import frysk.proc.ProcId; import frysk.proc.Task; +import java.util.List; /** * PeekCommand handles the "peek memory-location" command on the fhpd @@ -91,4 +92,10 @@ public class PeekCommand extends ParameterizedCommand { } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/TestParameterizedCommand.java b/frysk-core/frysk/hpd/TestParameterizedCommand.java index 5bd2e1b..746154a 100644 --- a/frysk-core/frysk/hpd/TestParameterizedCommand.java +++ b/frysk-core/frysk/hpd/TestParameterizedCommand.java @@ -39,6 +39,8 @@ package frysk.hpd; +import java.util.List; + public class TestParameterizedCommand extends TestLib { private ParameterizedCommand command; @@ -62,6 +64,10 @@ public class TestParameterizedCommand extends TestLib { void help(CLI cli, Input input) { helped = true; } + int complete(CLI cli, PTSet ptset, String incomplete, + int base, List candidates) { + return -1; + } }; } public void tearDown() { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 15:47:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 15:47:00 -0000 Subject: [SCM] master: Report as an error, an option with a missing argument. Message-ID: <20071108154711.5987.qmail@sourceware.org> The branch, master has been updated via 67936b53edea993c47c32d70f6190c29aef01cfe (commit) from 3b6b68b00544cc4eb9e352de1cdc578083569f9d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 67936b53edea993c47c32d70f6190c29aef01cfe Author: Andrew Cagney Date: Thu Nov 8 10:44:43 2007 -0500 Report as an error, an option with a missing argument. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * ParameterizedCommand.java (handleOption(Input,String,int,Object)): Fix off-by-one errors. (HelpException): Delete. * TestParameterizedCommand.java (setUp()): Add options. (check(String,String[],boolean,String)): New. (checkInvalid(String)): New. (testTooManyArgs()): New. (testMissingArg()): New. (testExtraArg()): New. (testMissingOption()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 11 ++ frysk-core/frysk/hpd/ParameterizedCommand.java | 67 +++++----- frysk-core/frysk/hpd/TestParameterizedCommand.java | 142 +++++++++---------- 3 files changed, 112 insertions(+), 108 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index d318cee..a1df095 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,16 @@ 2007-11-08 Andrew Cagney + * ParameterizedCommand.java + (handleOption(Input,String,int,Object)): Fix off-by-one error. + (HelpException): Delete. + * TestParameterizedCommand.java (setUp()): Add options. + (check(String,String[],boolean,String)): New. + (checkInvalid(String)): New. + (testTooManyArgs()): New. + (testMissingArg()): New. + (testExtraArg()): New. + (testMissingOption()): New. + * CompletionFactory.java (completeFileName(CLI,String,int,List)): New. (completeExpression(CLI,PTSet,String,int,List)): New. (completeFileName(CLI,Input,int,List)): Delete. diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index 3fbf3a2..eb9db6f 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -55,11 +55,6 @@ abstract class ParameterizedCommand extends Command { super(name, description, syntax, full); this.syntax = syntax; this.full = full; - add(new CommandOption("help", "print help") { - void parse(String argument, Object options) { - throw new HelpException(); - } - }); } ParameterizedCommand(String name, String syntax, String description) { this(name, description, syntax, description); @@ -72,13 +67,13 @@ abstract class ParameterizedCommand extends Command { shortOptions.put("" + option.shortName, option); } - private static class HelpException extends RuntimeException { - static final long serialVersionUID = 1; - } - private void handleOption(Input input, String option, int index, Object options) { + // Strip any leading "-"'s String name = option.substring(1); + while (name.length() > 0 && name.charAt(0) == '-') + name = name.substring(1); + // Strip off =... in -option=... int eq = name.indexOf('='); if (eq != -1) name = option.substring(0, eq); @@ -91,21 +86,25 @@ abstract class ParameterizedCommand extends Command { } String argument = null; if (commandOption.parameter != null) { + // Require a single parameter. + if ((eq >= 0 && index != input.size()) + || (eq == -1 && index != input.size() - 1)) + throw new InvalidCommandException + ("option -" + commandOption.longName + + " expects a single parameter " + + commandOption.parameter); if (eq == -1) { - if (input.size() < index) - throw new InvalidCommandException - ("option -" + commandOption.longName - + " expects parameter " - + commandOption.parameter); argument = input.parameter(index); input.remove(index); } else { argument = option.substring(eq + 1); } - } else if (eq != -1) { - throw new InvalidCommandException("option -" - + commandOption.longName - + " doesn't allow an argument"); + } else { + // Reject a parameter. + if (eq != -1 || index != input.size()) + throw new InvalidCommandException + ("option -" + commandOption.longName + + " doesn't allow an argument"); } commandOption.parse(argument, options); } @@ -116,23 +115,25 @@ abstract class ParameterizedCommand extends Command { */ public final void interpret(CLI cli, Input input) { Object options = options(); - try { - for (int currentIndex = input.size() - 1; - currentIndex > -1; - --currentIndex) { - String string = input.parameter(currentIndex); - if (string.equals("--")) { - input.remove(currentIndex); - break; - } - if (string.charAt(0) != '-') - continue; - handleOption(input, string, currentIndex + 1, options); + for (int currentIndex = input.size() - 1; currentIndex > -1; + --currentIndex) { + String string = input.parameter(currentIndex); + if (string.equals("--")) { + if (currentIndex != input.size() - 1) + throw new InvalidCommandException + ("Invalid option " + + input.parameter(currentIndex + 1)); input.remove(currentIndex); + break; + } + if (string.equals("-help")) { + help(cli, input); + return; } - } catch (HelpException h) { - help(cli, input); - return; + if (string.charAt(0) != '-') + continue; + handleOption(input, string, currentIndex + 1, options); + input.remove(currentIndex); } interpret(cli, input, options); } diff --git a/frysk-core/frysk/hpd/TestParameterizedCommand.java b/frysk-core/frysk/hpd/TestParameterizedCommand.java index 746154a..00edef9 100644 --- a/frysk-core/frysk/hpd/TestParameterizedCommand.java +++ b/frysk-core/frysk/hpd/TestParameterizedCommand.java @@ -69,6 +69,21 @@ public class TestParameterizedCommand extends TestLib { return -1; } }; + command.add(new CommandOption("arg", "long parameterized option", + "ARG") { + void parse(String arg, Object options) { + parsedOption = true; + argument = arg; + assertNotNull("-arg's argument", argument); + } + }); + command.add(new CommandOption("opt", "long option") { + void parse(String arg, Object options) { + parsedOption = true; + argument = arg; + assertNull("-opt's argument", argument); + } + }); } public void tearDown() { command = null; @@ -82,103 +97,80 @@ public class TestParameterizedCommand extends TestLib { command.interpret(null, input); } + private void check(String string, String[] parameters, + boolean parsedOption, String argument) { + parse(string); + assertEquals("input size", parameters.length, input.size()); + assertEquals("parsedOption", this.parsedOption, parsedOption); + assertEquals("argument", this.argument, argument); + for (int i = 0; i < parameters.length; i++) { + assertEquals("parameter " + i, parameters[i], input.parameter(i)); + } + assertTrue("interpreted", interpreted); + assertFalse("helped", helped); + } + public void testDashDash() { - parse("parser --"); - assertEquals("Params list should be empty", 0, input.size()); + check("parser --", new String[0], false, null); } public void testRegular() { - parse("parser argument"); - assertEquals("Param list should have one item", 1, input.size()); - assertEquals("Argument should be 'argument'", "argument", - input.parameter(0)); + check("parser argument", new String[] { "argument" }, false, null); } public void testRegularDashDash() { - parse("parser argument --"); - assertEquals("Param list should have one item", 1, input.size()); - assertEquals("Argument should be 'argument'", "argument", - input.parameter(0)); + check("parser argument --", new String[] { "argument" }, false, null); } public void testOption() { - command.add(new CommandOption("short", "short option") { - void parse(String argument, Object options) { - parsedOption = true; - } - }); - parse("parser -short"); - assertEquals("Params list should be empty", 0, input.size()); - assertTrue("Option should have been handled", parsedOption); - assertTrue("interpreted", interpreted); - assertFalse("helped", helped); + check("parser -opt", new String[0], true, null); } public void testOptionAfterDashDash() { - command.add(new CommandOption("short", "short option") { - void parse(String argument, Object options) { - parsedOption = true; - } - }); - parse("parser -- -short"); - assertEquals("Params list should be empty", 0, input.size()); - assertTrue("Option should have been handled", parsedOption); + check("parser -- -opt", new String[0], true, null); } public void testOptionBeforeDashDash() { - command.add(new CommandOption("short", "short option") { - void parse(String argument, Object options) { - fail("Should not have parsed option"); - } - }); - parse("parser -short --"); - assertEquals("Param list should have one item", 1, input.size()); - assertEquals("Argument should be '-short'", "-short", - input.parameter(0)); - assertFalse("Argument should not have been parsed", parsedOption); + check("parser -opt --", new String[] { "-opt" }, false, null); } - public void testOptionWithArgs() { - command.add(new CommandOption("short", "short option", "ARG") { - void parse(String arg, Object options) { - parsedOption = true; - argument = arg; - } - }); - parse("parser -short argument"); - assertEquals("Params list should be empty", 0, input.size()); - assertTrue("Option should have been handled", parsedOption); - assertEquals("Option should have argument 'argument'", - "argument", argument); + public void testOptionWithArg() { + check("parser -arg argument", new String[0], true, "argument"); } - public void testOptionWithArgsAfterDashDash() { - command.add(new CommandOption("short", "short option", "ARG") { - void parse(String arg, Object options) { - parsedOption = true; - argument = arg; - } - }); - parse("parser -- -short argument"); - assertEquals("Params list should be empty", 0, input.size()); - assertTrue("Option should have been handled", parsedOption); - assertEquals("Option should have argument 'argument'", - "argument", argument); + public void testOptionWithArgAfterDashDash() { + check("parser -- -arg argument", new String[0], true, "argument"); } - public void testOptionWithArgsBeforeDashDash() { - command.add(new CommandOption("short", "short option", "ARG") { - void parse(String arg, Object options) { - parsedOption = true; - argument = arg; - } - }); - parse("parser -short argument --"); - assertEquals("Params list should have 2 elements", 2, input.size()); - assertEquals("First argument: '-short", "-short", input.parameter(0)); - assertEquals("Second argument: 'argument", "argument", - input.parameter(1)); - assertFalse("Option should not have been handled", parsedOption); + public void testOptionWithArgBeforeDashDash() { + check("parser -arg argument --", new String[] { "-arg", "argument" }, + false, null); + } + + private void checkInvalid(String string) { + RuntimeException thrown = null; + try { + parse(string); + } catch (InvalidCommandException e) { + thrown = e; + } + assertNotNull("exception thrown", thrown); + } + + public void testMissingArg() { + checkInvalid("parser -arg"); + } + + public void testTooManyArgs() { + checkInvalid("parser -arg arg1 arg2"); + } + + public void testExtraArg() { + checkInvalid("parser -opt arg"); + } + + public void testMissingOption() { + checkInvalid("parser -- arg"); } public void testHelp() { hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 8 16:25:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 08 Nov 2007 16:25:00 -0000 Subject: [SCM] master: Check for null elf header, and allow fhpd to handle error printing. Message-ID: <20071108162522.10417.qmail@sourceware.org> The branch, master has been updated via cc4bec76cd893ccb3be127fbf4748ac34019f392 (commit) from 67936b53edea993c47c32d70f6190c29aef01cfe (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cc4bec76cd893ccb3be127fbf4748ac34019f392 Author: Phil Muldoon Date: Thu Nov 8 16:25:13 2007 +0000 Check for null elf header, and allow fhpd to handle error printing. 2007-11-08 Phil Muldoon * CoreCommand.java (interpret): Remove try{} for host building. Let fhpd error handling print message. 2007-11-08 Phil Muldoon * LinuxHost.java (LinuxHost): Check for null Elf Header ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/CoreCommand.java | 9 +-------- frysk-core/frysk/proc/dead/ChangeLog | 3 +++ frysk-core/frysk/proc/dead/LinuxHost.java | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index a1df095..a4781aa 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Phil Muldoon + + * CoreCommand.java (interpret): Remove try{} for host building. + Let fhpd error handling print message. + 2007-11-08 Andrew Cagney * ParameterizedCommand.java diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 2a7354f..0ffefaf 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -97,14 +97,7 @@ public class CoreCommand extends ParameterizedCommand { "No core file found, or cannot read corefile"); // Build Core. Move any exceptions up to cli and print to user. - try { - coreHost = getHost(coreFile, exeFile, noExeOption); - } catch (Exception e) { - cli.addMessage("An error has occured while loading corefile: '" - + coreFile.getAbsolutePath() + "'. Error message is: " - + e.getMessage(), Message.TYPE_ERROR); - return; - } + coreHost = getHost(coreFile, exeFile, noExeOption); // Get the core proc. coreProc = getProc(coreHost); diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index bd3c6f4..620bb64 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,7 +1,10 @@ 2007-11-08 Phil Muldoon + * LinuxHost.java (LinuxHost): Check for null Elf Header + * LinuxHost.java (LinuxHost): Check in exe is set to null. + 2007-11-07 Phil Muldoon diff --git a/frysk-core/frysk/proc/dead/LinuxHost.java b/frysk-core/frysk/proc/dead/LinuxHost.java index 3052223..37d4f26 100644 --- a/frysk-core/frysk/proc/dead/LinuxHost.java +++ b/frysk-core/frysk/proc/dead/LinuxHost.java @@ -84,7 +84,8 @@ public class LinuxHost extends DeadHost { + "not a valid ELF core file."); } - if (corefileElf.getEHeader().type != ElfEHeader.PHEADER_ET_CORE) { + if ((corefileElf.getEHeader() == null) || + (corefileElf.getEHeader().type != ElfEHeader.PHEADER_ET_CORE)) { this.corefileElf.close(); throw new RuntimeException("'" + this.coreFile.getAbsolutePath() + "' is not a corefile."); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 16:29:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 16:29:00 -0000 Subject: [SCM] master: More commands extend ParameterizedCommand. Message-ID: <20071108162946.13397.qmail@sourceware.org> The branch, master has been updated via c5892213ca4bee5d89b7c02ce0ba9ab19d3bb8ed (commit) from cc4bec76cd893ccb3be127fbf4748ac34019f392 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c5892213ca4bee5d89b7c02ce0ba9ab19d3bb8ed Author: Andrew Cagney Date: Thu Nov 8 11:27:19 2007 -0500 More commands extend ParameterizedCommand. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * DebuginfoCommand.java: Extend ParameterizedCommand. * WhichsetsCommand.java: Ditto. * WhatCommand.java: Ditto. * StepNextiCommand.java: Ditto. * StepNextCommand.java: Ditto. * StepInstructionCommand.java: Ditto. * StepFinishCommand.java: Ditto. * BreakpointCommand.java: Ditto. * DefsetCommand.java: Ditto. * DetachCommand.java: Ditto. * DisplayCommand.java: Ditto. * FocusCommand.java: Ditto. * GoCommand.java: Ditto. * HaltCommand.java: Ditto. * QuitCommand.java: Ditto. * RegsCommand.java: Ditto. * SetCommand.java: Ditto. * StepCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/BreakpointCommand.java | 17 ++++++++++------- frysk-core/frysk/hpd/ChangeLog | 19 +++++++++++++++++++ frysk-core/frysk/hpd/DebuginfoCommand.java | 14 ++++++++------ frysk-core/frysk/hpd/DefsetCommand.java | 15 +++++++++------ frysk-core/frysk/hpd/DetachCommand.java | 14 ++++++++------ frysk-core/frysk/hpd/DisplayCommand.java | 11 ++++++++--- frysk-core/frysk/hpd/FocusCommand.java | 14 ++++++++------ frysk-core/frysk/hpd/GoCommand.java | 15 ++++++++------- frysk-core/frysk/hpd/HaltCommand.java | 14 ++++++++------ frysk-core/frysk/hpd/QuitCommand.java | 10 ++++++++-- frysk-core/frysk/hpd/RegsCommand.java | 10 ++++++++-- frysk-core/frysk/hpd/SetCommand.java | 15 +++++++++------ frysk-core/frysk/hpd/StepCommand.java | 15 ++++++++------- frysk-core/frysk/hpd/StepFinishCommand.java | 14 +++++++------- frysk-core/frysk/hpd/StepInstructionCommand.java | 16 ++++++++-------- frysk-core/frysk/hpd/StepNextCommand.java | 16 ++++++++-------- frysk-core/frysk/hpd/StepNextiCommand.java | 15 +++++++-------- frysk-core/frysk/hpd/WhatCommand.java | 20 +++++++++++--------- frysk-core/frysk/hpd/WhichsetsCommand.java | 15 +++++++++------ 19 files changed, 169 insertions(+), 110 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/BreakpointCommand.java b/frysk-core/frysk/hpd/BreakpointCommand.java index 1cd2d4b..c00e240 100644 --- a/frysk-core/frysk/hpd/BreakpointCommand.java +++ b/frysk-core/frysk/hpd/BreakpointCommand.java @@ -53,8 +53,9 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; import lib.dwfl.DwarfDie; +import java.util.List; -class BreakpointCommand extends Command { +class BreakpointCommand extends ParameterizedCommand { private static final String full = "The break command defines a breakpoint " + "that will be triggered when some\n" @@ -70,7 +71,7 @@ class BreakpointCommand extends Command { BreakpointCommand() { super("break", descr, - "break {proc | line | #file#line} [-stop stop-set]", full); + "break {proc | line | #file#line}", full); } static private abstract class CLIBreakpointObserver implements @@ -89,12 +90,8 @@ class BreakpointCommand extends Command { long address); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object arguments) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() != 1) { - cli.printUsage(cmd); - return; - } String breakpt = cmd.parameter(0); String fileName; int lineNumber; @@ -188,4 +185,10 @@ class BreakpointCommand extends Command { } outWriter.println(); } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index a4781aa..2d36832 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -5,6 +5,25 @@ 2007-11-08 Andrew Cagney + * DebuginfoCommand.java: Extend ParameterizedCommand. + * WhichsetsCommand.java: Ditto. + * WhatCommand.java: Ditto. + * StepNextiCommand.java: Ditto. + * StepNextCommand.java: Ditto. + * StepInstructionCommand.java: Ditto. + * StepFinishCommand.java: Ditto. + * BreakpointCommand.java: Ditto. + * DefsetCommand.java: Ditto. + * DetachCommand.java: Ditto. + * DisplayCommand.java: Ditto. + * FocusCommand.java: Ditto. + * GoCommand.java: Ditto. + * HaltCommand.java: Ditto. + * QuitCommand.java: Ditto. + * RegsCommand.java: Ditto. + * SetCommand.java: Ditto. + * StepCommand.java: Ditto. + * ParameterizedCommand.java (handleOption(Input,String,int,Object)): Fix off-by-one error. (HelpException): Delete. diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java index cca6ea5..bab4d3d 100644 --- a/frysk-core/frysk/hpd/DebuginfoCommand.java +++ b/frysk-core/frysk/hpd/DebuginfoCommand.java @@ -42,8 +42,9 @@ package frysk.hpd; import java.util.Iterator; import frysk.proc.Task; import frysk.util.DebuginfoPaths; +import java.util.List; -class DebuginfoCommand extends Command { +class DebuginfoCommand extends ParameterizedCommand { DebuginfoCommand() { super("debuginfo", @@ -52,12 +53,13 @@ class DebuginfoCommand extends Command { + "for a process and its shared modules."); } - public void interpret(CLI cli, Input cmd) { + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } + + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } Iterator taskIter = ptset.getTasks(); while (taskIter.hasNext()) { Task task = (Task) taskIter.next(); diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java index abef7f6..6d57a71 100644 --- a/frysk-core/frysk/hpd/DefsetCommand.java +++ b/frysk-core/frysk/hpd/DefsetCommand.java @@ -39,7 +39,9 @@ package frysk.hpd; -class DefsetCommand extends Command { +import java.util.List; + +class DefsetCommand extends ParameterizedCommand { private static final String full = "Associates a logical name with a " + "group of threads and/or processes,\n" @@ -57,11 +59,7 @@ class DefsetCommand extends Command { "defset set-name p/t-set", full); } - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } + public void interpret(CLI cli, Input cmd, Object options) { String setname = null; String setnot = null; PTSet set = null; @@ -84,4 +82,9 @@ class DefsetCommand extends Command { cli.printUsage(cmd); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/DetachCommand.java b/frysk-core/frysk/hpd/DetachCommand.java index 4f42853..acf26f0 100644 --- a/frysk-core/frysk/hpd/DetachCommand.java +++ b/frysk-core/frysk/hpd/DetachCommand.java @@ -43,8 +43,9 @@ import java.util.HashSet; import java.util.Iterator; import frysk.proc.Proc; import frysk.proc.Task; +import java.util.List; -class DetachCommand extends Command { +class DetachCommand extends ParameterizedCommand { private static final String full = "The detach command detaches the debugger " + "from all processes in the\n" @@ -61,12 +62,8 @@ class DetachCommand extends Command { super("detach", "Detach from a running process.", "detach", full); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } HashSet procSet = new HashSet(); Iterator taskIter = ptset.getTasks(); while (taskIter.hasNext()) { @@ -87,4 +84,9 @@ class DetachCommand extends Command { proc, true); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/DisplayCommand.java b/frysk-core/frysk/hpd/DisplayCommand.java index ad04008..391385a 100644 --- a/frysk-core/frysk/hpd/DisplayCommand.java +++ b/frysk-core/frysk/hpd/DisplayCommand.java @@ -43,7 +43,6 @@ import java.io.PrintWriter; import java.util.Iterator; import java.util.LinkedList; import java.util.List; - import frysk.proc.Task; import frysk.rt.DisplayManager; import frysk.rt.DisplayValueObserver; @@ -58,7 +57,7 @@ import frysk.value.Value; * expression changes, the user will be notified. * */ -public class DisplayCommand extends Command { +public class DisplayCommand extends ParameterizedCommand { private List displays; @@ -70,7 +69,7 @@ public class DisplayCommand extends Command { } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { final PrintWriter output = cli.getPrintWriter(); PTSet ptset = cli.getCommandPTSet(cmd); @@ -144,4 +143,10 @@ public class DisplayCommand extends Command { output.flush(); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/FocusCommand.java b/frysk-core/frysk/hpd/FocusCommand.java index aebf59e..9717e7e 100644 --- a/frysk-core/frysk/hpd/FocusCommand.java +++ b/frysk-core/frysk/hpd/FocusCommand.java @@ -44,8 +44,9 @@ import frysk.debuginfo.DebugInfo; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; import frysk.proc.Task; +import java.util.List; -class FocusCommand extends Command { +class FocusCommand extends ParameterizedCommand { private static String full = "Changes the current p/t set. As a " + "consequence, subsequent commands will\n" + "apply to just the threads specified in the argument of this\n" @@ -57,11 +58,7 @@ class FocusCommand extends Command { "focus [p/t-set]", full); } - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } + public void interpret(CLI cli, Input cmd, Object options) { if (cmd.size() <= 1) { if (cmd.size() == 1) { cli.targetset = cli.createSet(cmd.parameter(0)); @@ -80,4 +77,9 @@ class FocusCommand extends Command { cli.printUsage(cmd); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/GoCommand.java b/frysk-core/frysk/hpd/GoCommand.java index 129f706..4bbcdbe 100644 --- a/frysk-core/frysk/hpd/GoCommand.java +++ b/frysk-core/frysk/hpd/GoCommand.java @@ -42,8 +42,9 @@ package frysk.hpd; import java.util.Iterator; import frysk.proc.Task; import frysk.stepping.SteppingEngine; +import java.util.List; -class GoCommand extends Command { +class GoCommand extends ParameterizedCommand { private static String full = "Continue running a process, returning " + "without blocking. The go command\n" + "resumes execution of a collection of processes. The prompt will " @@ -55,13 +56,8 @@ class GoCommand extends Command { super("go", "Continue a process.", "go", full); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - if (cli.steppingObserver != null) { Iterator taskIter = ptset.getTasks(); SteppingEngine steppingEngine = cli.getSteppingEngine(); @@ -73,4 +69,9 @@ class GoCommand extends Command { } else cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/HaltCommand.java b/frysk-core/frysk/hpd/HaltCommand.java index eac63b7..72cc051 100644 --- a/frysk-core/frysk/hpd/HaltCommand.java +++ b/frysk-core/frysk/hpd/HaltCommand.java @@ -43,8 +43,9 @@ import java.util.Iterator; import java.util.LinkedList; import frysk.proc.Task; import frysk.stepping.SteppingEngine; +import java.util.List; -class HaltCommand extends Command { +class HaltCommand extends ParameterizedCommand { private static String full = "Stop a process which is already attached. " + "The halt command temporarily\n" @@ -54,12 +55,8 @@ class HaltCommand extends Command { super("halt", "Stop a process.", "halt", full); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } SteppingEngine steppingEngine = cli.getSteppingEngine(); if (cli.steppingObserver != null) { Iterator taskIter = ptset.getTasks(); @@ -73,4 +70,9 @@ class HaltCommand extends Command { } else cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/QuitCommand.java b/frysk-core/frysk/hpd/QuitCommand.java index bc44d4b..e0f0781 100644 --- a/frysk-core/frysk/hpd/QuitCommand.java +++ b/frysk-core/frysk/hpd/QuitCommand.java @@ -47,8 +47,9 @@ import frysk.proc.Proc; import frysk.sys.Signal; import frysk.sys.Sig; import frysk.util.CountDownLatch; +import java.util.List; -class QuitCommand extends Command { +class QuitCommand extends ParameterizedCommand { // Do the killing in the event loop in order to not invalidate // operations that are already in flight in the event loop. This // avoids a race seen in testing where a "quit" command is sent as @@ -94,7 +95,7 @@ class QuitCommand extends Command { "Terminate the debugging session."); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { CountDownLatch quitLatch = new CountDownLatch(1); new KillRequest(cli, quitLatch).request(); try { @@ -107,4 +108,9 @@ class QuitCommand extends Command { Input command = new Input("detach").accept(); detachCommand.interpret(cli, command); } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/RegsCommand.java b/frysk-core/frysk/hpd/RegsCommand.java index 8a12328..465c22d 100644 --- a/frysk-core/frysk/hpd/RegsCommand.java +++ b/frysk-core/frysk/hpd/RegsCommand.java @@ -46,8 +46,9 @@ import frysk.isa.ISA; import frysk.isa.RegisterGroup; import frysk.isa.Registers; import frysk.isa.RegistersFactory; +import java.util.List; -public class RegsCommand extends Command { +public class RegsCommand extends ParameterizedCommand { public RegsCommand() { super("regs", "print registers", "regs group", "print out " @@ -55,7 +56,7 @@ public class RegsCommand extends Command { + "printed by default."); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskDataIter = ptset.getTaskData(); while (taskDataIter.hasNext()) { @@ -98,4 +99,9 @@ public class RegsCommand extends Command { } } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/SetCommand.java b/frysk-core/frysk/hpd/SetCommand.java index 28a3cd6..f06cedf 100644 --- a/frysk-core/frysk/hpd/SetCommand.java +++ b/frysk-core/frysk/hpd/SetCommand.java @@ -39,7 +39,9 @@ package frysk.hpd; -class SetCommand extends Command { +import java.util.List; + +class SetCommand extends ParameterizedCommand { private static final String full = "The set command supports the viewing of " + "debugger state variables and the\n" + "assignment of new values to them. When no arguments are " @@ -62,11 +64,7 @@ class SetCommand extends Command { this.dbgvars = dbgvars; } - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } + public void interpret(CLI cli, Input cmd, Object options) { String temp; if (cmd.size() == 3 && (cmd.parameter(1)).equals("=")) { temp = cmd.parameter(0); @@ -94,4 +92,9 @@ class SetCommand extends Command { cli.printUsage(cmd); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/StepCommand.java b/frysk-core/frysk/hpd/StepCommand.java index 76e1fc1..026c526 100644 --- a/frysk-core/frysk/hpd/StepCommand.java +++ b/frysk-core/frysk/hpd/StepCommand.java @@ -41,11 +41,11 @@ package frysk.hpd; import java.util.Iterator; import java.util.LinkedList; - +import java.util.List; import frysk.proc.Task; import frysk.debuginfo.DebugInfoFrame; -public class StepCommand extends Command { +public class StepCommand extends ParameterizedCommand { private static final String full = "Line step a process which has been " + "attached to, and is currently blocked."; @@ -53,12 +53,8 @@ public class StepCommand extends Command { super("step", "Step a process.", "step", full); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } LinkedList taskList = new LinkedList(); Iterator taskIter = ptset.getTasks(); while (taskIter.hasNext()) { @@ -92,4 +88,9 @@ public class StepCommand extends Command { cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/StepFinishCommand.java b/frysk-core/frysk/hpd/StepFinishCommand.java index 9923799..96fe838 100644 --- a/frysk-core/frysk/hpd/StepFinishCommand.java +++ b/frysk-core/frysk/hpd/StepFinishCommand.java hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 18:21:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 18:21:00 -0000 Subject: [SCM] master: Alias commands extend ParameterizedCommand; test. Message-ID: <20071108182144.31788.qmail@sourceware.org> The branch, master has been updated via b5953ea2cdffa37921ca9f21e01c3c5c0e712261 (commit) from c5892213ca4bee5d89b7c02ce0ba9ab19d3bb8ed (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b5953ea2cdffa37921ca9f21e01c3c5c0e712261 Author: Andrew Cagney Date: Thu Nov 8 13:20:11 2007 -0500 Alias commands extend ParameterizedCommand; test. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * AliasCommands.java: New. * AliasCommand.java: Delete. * UnaliasCommand.java: Delete. * ParameterizedCommand.java: Fix off-by-one error. * AliasCommand.java: Extend ParameterizedCommand. * CLI.java: Update. * TopLevelCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AliasCommand.java | 82 ------------ frysk-core/frysk/hpd/AliasCommands.java | 158 ++++++++++++++++++++++++ frysk-core/frysk/hpd/CLI.java | 4 +- frysk-core/frysk/hpd/ChangeLog | 10 ++ frysk-core/frysk/hpd/ParameterizedCommand.java | 2 +- frysk-core/frysk/hpd/TopLevelCommand.java | 4 +- frysk-core/frysk/hpd/UnaliasCommand.java | 72 ----------- 7 files changed, 173 insertions(+), 159 deletions(-) delete mode 100644 frysk-core/frysk/hpd/AliasCommand.java create mode 100644 frysk-core/frysk/hpd/AliasCommands.java delete mode 100644 frysk-core/frysk/hpd/UnaliasCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AliasCommand.java b/frysk-core/frysk/hpd/AliasCommand.java deleted file mode 100644 index 43b0ddf..0000000 --- a/frysk-core/frysk/hpd/AliasCommand.java +++ /dev/null @@ -1,82 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -class AliasCommand extends Command { - - private static final String full = "The alias command associates a " - + "user-defined name with a list of one or\n" - + "more debugger commands. After definition, the user-defined " - + "command can\n" - + "be used in the same way as a debugger-defined command, " - + "including as part\n" - + "of the definition of new user-defined commands. "; - - AliasCommand() { - super("alias", "Create or view user-defined commands", - "alias command-name command body\nalias [command-name]", full); - } - - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - if (cmd.size() <= 2) { - if (cmd.size() == 2) { - cli.aliases.put((String) cmd.parameter(0), - (String) cmd.parameter(1)); - } else if (cmd.size() == 1) { - String temp = (String) cmd.parameter(0); - if (cli.aliases.containsKey(temp)) { - cli.addMessage(temp + " = " - + (String) (cli.aliases).get(temp), - Message.TYPE_NORMAL); - } else - cli.addMessage("Alias \"" + temp + "\" not defined.", - Message.TYPE_ERROR); - } else { - cli.addMessage(cli.aliases.toString(), Message.TYPE_NORMAL); - } - } else { - cli.printUsage(cmd); - } - } -} diff --git a/frysk-core/frysk/hpd/AliasCommands.java b/frysk-core/frysk/hpd/AliasCommands.java new file mode 100644 index 0000000..aba2b26 --- /dev/null +++ b/frysk-core/frysk/hpd/AliasCommands.java @@ -0,0 +1,158 @@ +// This file is part of the program FRYSK. +// +// Copyright 2005, 2006, 2007 Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.hpd; + +import java.util.List; +import java.util.Map; +import java.util.Iterator; + +abstract class AliasCommands extends ParameterizedCommand { + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + for (Iterator i = cli.aliases.keySet().iterator(); i.hasNext(); ) { + String key = (String)i.next(); + if (key.startsWith(incomplete)) + completions.add(key); + } + CompletionFactory.padSingleCandidate(completions); + return 0; + } + + AliasCommands(String name, String description, String syntax, + String full) { + super(name, description, syntax, full); + } + + static class Alias extends AliasCommands { + Alias() { + super("alias", "create or view user-defined commands", + ("alias -- define an alias\n" + + "alias [ ] -- view an alias"), + ("The alias command associates a " + + "user-defined name with a list of one or more debugger" + + " commands. After definition, the user-defined command" + + " can be used in the same way as a debugger-defined" + + " command, including as part of the definition of new" + + " user-defined commands.")); + } + + void interpret(CLI cli, Input cmd, Object options) { + switch (cmd.size()) { + default: + throw new InvalidCommandException("Too many parameters"); + case 2: + cli.aliases.put(cmd.parameter(0), cmd.parameter(1)); + break; + case 1: + String temp = cmd.parameter(0); + if (!cli.aliases.containsKey(temp)) + throw new InvalidCommandException("Alias \"" + temp + + "\" not defined."); + cli.outWriter.print(temp); + cli.outWriter.print(" = "); + cli.outWriter.print(cli.aliases.get(temp)); + cli.outWriter.println(); + break; + case 0: + if (cli.aliases.size() == 0) { + cli.outWriter.println("No aliases."); + } else { + for (Iterator i = cli.aliases.entrySet().iterator(); + i.hasNext(); ) { + Map.Entry entry = (Map.Entry)i.next(); + cli.outWriter.print(entry.getKey()); + cli.outWriter.print(" = "); + cli.outWriter.print(entry.getValue()); + cli.outWriter.println(); + } + } + break; + } + } + } + + static class Unalias extends AliasCommands { + private static class Options { + boolean deleteAll; + } + Object options() { + return new Options(); + } + Unalias() { + super("unalias", "Create or view user-define commands.", + "unalias [ command-name | -all -", + ("The unalias command removes the alias that was" + + " previously established for the specified" + + " user-defined command name.")); + add(new CommandOption("all", "delete all use-defined aliases") { + void parse(String argument, Object options) { + ((Options)options).deleteAll = true; + } + }); + } + + public void interpret(CLI cli, Input input, Object o) { + Options options = (Options)o; + if (options.deleteAll) { + if (input.size() != 0) + throw new InvalidCommandException("Extra parameters"); + cli.outWriter.println("Removing all aliases."); + cli.aliases.clear(); + } else { + if (input.size() == 0) + throw new InvalidCommandException("Missing alias"); + for (int i = 0; i < input.size(); i++) { + String temp = input.parameter(i); + if (cli.aliases.containsKey(temp)) { + cli.outWriter.print("Removed alias \""); + cli.outWriter.print(temp); + cli.outWriter.println("\""); + cli.aliases.remove(temp); + } else { + cli.outWriter.print("Alias \""); + cli.outWriter.print(temp); + cli.outWriter.println("\" not defined."); + } + } + } + } + } +} diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index f72545e..70871e3 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -233,7 +233,8 @@ public class CLI { //otherwise build system will discard those classes. Therefore //CLI cannot be made to be a singleton. addHandler(new ActionsCommand()); - addHandler(new AliasCommand()); + addHandler(new AliasCommands.Alias()); + addHandler(new AliasCommands.Unalias()); addHandler(new AssignCommand()); addHandler(new AttachCommand()); addHandler(new BreakpointCommand()); @@ -259,7 +260,6 @@ public class CLI { addHandler(new SetCommand(dbgvars)); addHandler(new StepCommand()); addHandler(new StepInstructionCommand()); - addHandler(new UnaliasCommand()); addHandler(new UndefsetCommand()); addHandler(new UnsetCommand(dbgvars)); addHandler(new FrameCommands("up")); diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 2d36832..797684f 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,13 @@ +2007-11-08 Andrew Cagney + + * AliasCommands.java: New. + * AliasCommand.java: Delete. + * UnaliasCommand.java: Delete. + * ParameterizedCommand.java: Fix off-by-one error. + * AliasCommand.java: Extend ParameterizedCommand. + * CLI.java: Update. + * TopLevelCommand.java: Update. + 2007-11-08 Phil Muldoon * CoreCommand.java (interpret): Remove try{} for host building. diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index eb9db6f..be08aa0 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -177,7 +177,7 @@ abstract class ParameterizedCommand extends Command { int start = input.token(0).start; int pos = complete(cli, cli.getCommandPTSet(input), input.stringValue(), cursor - start, candidates); - if (pos > 0) { + if (pos >= 0) { return pos + start; } else { return -1; diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index 82c1447..89c43e9 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -74,7 +74,8 @@ public class TopLevelCommand extends MultiLevelCommand { " ...", "a top level command"); add(new ActionsCommand()); - add(new AliasCommand()); + add(new AliasCommands.Alias()); + add(new AliasCommands.Unalias()); add(new AssignCommand()); add(new AttachCommand()); add(new BreakpointCommand()); @@ -101,7 +102,6 @@ public class TopLevelCommand extends MultiLevelCommand { add(new SetCommand(dbgvars)); add(new StepCommand()); add(new StepInstructionCommand()); - add(new UnaliasCommand()); add(new UndefsetCommand()); add(new UnsetCommand(dbgvars)); add(new FrameCommands("up")); diff --git a/frysk-core/frysk/hpd/UnaliasCommand.java b/frysk-core/frysk/hpd/UnaliasCommand.java deleted file mode 100644 index a76783d..0000000 --- a/frysk-core/frysk/hpd/UnaliasCommand.java +++ /dev/null @@ -1,72 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -class UnaliasCommand extends Command { - private static final String full = "The unalias command removes the alias " - + "that was previously established\n" - + "for the specified user-defined command name. Use of the " - + "argument -all\n" + "deletes all user-defined commands at once."; - - UnaliasCommand() { - super("unalias", "Create or view user-define commands.", - "unalias { command-name | -all }", full); - } - - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1) { - if ((cmd.parameter(0)).equals("-all")) { - cli.aliases.clear(); - cli.addMessage("Removing all aliases.", Message.TYPE_VERBOSE); - } else { - String temp = cmd.parameter(0); - if (cli.aliases.containsKey(temp)) { - cli.aliases.remove(temp); - cli.addMessage("Removed alias \"" + temp + "\"", - Message.TYPE_VERBOSE); - } else - cli.addMessage("Alias \"" + temp + "\" not defined.", - Message.TYPE_ERROR); - } - } else { - cli.printUsage(cmd); - } - } -} hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 18:24:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 18:24:00 -0000 Subject: [SCM] master: Add TestAliasCommands.java. Message-ID: <20071108182437.434.qmail@sourceware.org> The branch, master has been updated via 015e476beb1ca02e5039974f9e8072a5eb631e7b (commit) from b5953ea2cdffa37921ca9f21e01c3c5c0e712261 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 015e476beb1ca02e5039974f9e8072a5eb631e7b Author: Andrew Cagney Date: Thu Nov 8 13:23:17 2007 -0500 Add TestAliasCommands.java. 2007-11-08 Andrew Cagney * TestAliasCommands.java: New file. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 2 + .../hpd/{TestHelp.java => TestAliasCommands.java} | 48 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) copy frysk-core/frysk/hpd/{TestHelp.java => TestAliasCommands.java} (70%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 797684f..347cd06 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,7 @@ 2007-11-08 Andrew Cagney + * TestAliasCommands.java: New file. + * AliasCommands.java: New. * AliasCommand.java: Delete. * UnaliasCommand.java: Delete. diff --git a/frysk-core/frysk/hpd/TestHelp.java b/frysk-core/frysk/hpd/TestAliasCommands.java similarity index 70% copy from frysk-core/frysk/hpd/TestHelp.java copy to frysk-core/frysk/hpd/TestAliasCommands.java index e2c7b6d..fd22ee2 100644 --- a/frysk-core/frysk/hpd/TestHelp.java +++ b/frysk-core/frysk/hpd/TestAliasCommands.java @@ -40,36 +40,34 @@ package frysk.hpd; /** - * Test the help command, and -help option. + * Test the functionality of the alias and unalias commands. */ -public class TestHelp - extends TestLib -{ - public void testHelp() { +public class TestAliasCommands extends TestLib { + public void setUp() { + super.setUp(); e = new HpdTestbed(); - e.send("help\n"); - e.expect("actionpoints - "); - e.expect("core - "); - e.expect("finish - "); - e.expect("list - "); - e.expect("peek - "); - e.expect("regs - "); - e.expect("step - "); - e.expect("up - "); - e.expectPrompt("whichsets.*"); } - public void testHelpCompletion() { - e = new HpdTestbed(); - e.send("help u\t"); - e.expect("unalias\r\nundefset\r\nunset\r\nup\r\n" - + prompt + "help u"); + public void test() { + e.sendCommandExpectPrompt("unalias -all", + "Removing all aliases.*"); + e.sendCommandExpectPrompt("alias", "No aliases.*"); + e.sendCommandExpectPrompt("alias xxx yyy", ".*"); + e.sendCommandExpectPrompt("alias yyy zzz", ".*"); + e.sendCommandExpectPrompt("alias", + "xxx = yyy\r\nyyy = zzz\r\n"); + e.sendCommandExpectPrompt("alias xxx", + "xxx = yyy\r\n"); + e.sendCommandExpectPrompt("unalias yyy", + "Removed alias .yyy.*"); + e.sendCommandExpectPrompt("unalias -all", + "Removing all aliases.*"); + e.sendCommandExpectPrompt("alias", "No aliases.*"); } - - public void testHelpHelp() { - e = new HpdTestbed(); - e.sendCommandExpectPrompt("help help", - "Display help.*"); + public void testCompletion() { + e.sendCommandExpectPrompt("alias xxx yyy", ".*"); + e.send("alias \t"); + e.expect("alias xxx "); } } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 8 18:57:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 08 Nov 2007 18:57:00 -0000 Subject: [SCM] master: Use task's wordSize for pointer creation. Message-ID: <20071108185721.1716.qmail@sourceware.org> The branch, master has been updated via f0dd7a1f1381eb180a42ab7ddb9f56d717aa48ff (commit) via f3a2cbd98c35e69810590eee5de0eb0fd4396d5a (commit) from 015e476beb1ca02e5039974f9e8072a5eb631e7b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f0dd7a1f1381eb180a42ab7ddb9f56d717aa48ff Author: Teresa Thomas Date: Thu Nov 8 13:43:22 2007 -0500 Use task's wordSize for pointer creation. frysk-core/frysk/value/ChangeLog 2007-11-08 Teresa Thomas * AddressUnit.java (wordSize): New. (add): Use wordSize for pointer creation. (AddressUnit): Change AddressUnit(PointerType) to AddressUnit(PointerType,int). * PointerType.java (getALU): Update. * IntegerType.java (getALU): Update. commit f3a2cbd98c35e69810590eee5de0eb0fd4396d5a Author: Teresa Thomas Date: Thu Nov 8 13:41:56 2007 -0500 Return wordsize of the frysk proc if debugee task not found. 2007-11-08 Teresa Thomas * ScratchSymTab.java (getWordSize): Return word size of frysk proc's architecture. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/ChangeLog | 5 +++++ frysk-core/frysk/expr/ScratchSymTab.java | 8 ++++---- frysk-core/frysk/value/AddressUnit.java | 12 ++++++++---- frysk-core/frysk/value/ChangeLog | 9 +++++++++ frysk-core/frysk/value/IntegerType.java | 2 +- frysk-core/frysk/value/PointerType.java | 2 +- 6 files changed, 28 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index a316bff..313f07b 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-08 Teresa Thomas + + * ScratchSymTab.java (getWordSize): Return word size + of frysk proc's architecture. + 2007-11-06 Teresa Thomas * CExprEvaluator.g (STAR): Use Arithmetic Unit. diff --git a/frysk-core/frysk/expr/ScratchSymTab.java b/frysk-core/frysk/expr/ScratchSymTab.java index 2bfe3b6..4df6397 100644 --- a/frysk-core/frysk/expr/ScratchSymTab.java +++ b/frysk-core/frysk/expr/ScratchSymTab.java @@ -42,6 +42,7 @@ package frysk.expr; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; +import frysk.Config; import frysk.value.ObjectDeclaration; import frysk.value.Type; import frysk.value.Value; @@ -88,9 +89,8 @@ public class ScratchSymTab implements ExprSymTab { * Return the wordsize. */ public int getWordSize() { - // FIXME: ALU's for arithmetic operations require wordsize. - // Send bogus word size when no task attached? - //throw new RuntimeException("no word size"); - return -1; + // Since no debugee word size available, return word size of + // debugger. Required for some expression evaluation. + return Config.getWordSize (); } } diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index ea9e285..5d61db0 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -46,13 +46,17 @@ import inua.eio.ByteOrder; public class AddressUnit extends ArithmeticUnit { + private final int wordSize; + public AddressUnit (ArrayType t, int wordSize) { retType = new PointerType(t.getName(), ByteOrder.BIG_ENDIAN, wordSize, t.getType()); + this.wordSize = wordSize; } - public AddressUnit (PointerType t) { + public AddressUnit (PointerType t, int wordSize) { retType = t; + this.wordSize = wordSize; } /** @@ -79,12 +83,12 @@ extends ArithmeticUnit intValue = v1; } - // Handle pointers to array types + // Handle address of array types if (ptrType.getType() instanceof ArrayType) { // Create pointer to array element type - Type eType = ((ArrayType)ptrType.getType()).getType(); + Type eType = ((ArrayType)ptrType.getType()).getType(); PointerType pType = new PointerType - (eType.getName(), ptrType.order(), eType.getSize(), eType); + (eType.getName(), ptrType.order(), wordSize, eType); return (pType.createValue (ptrValue.asLong() + eType.getSize()*intValue.asLong())); } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 676dae7..0906a1d 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,12 @@ +2007-11-08 Teresa Thomas + + * AddressUnit.java (wordSize): New. + (add): Use wordSize for pointer creation. + (AddressUnit): Change AddressUnit(PointerType) to + AddressUnit(PointerType,int). + * PointerType.java (getALU): Update. + * IntegerType.java (getALU): Update. + 2007-11-07 Sami Wagiaalla * CompositeType.java: Changed iterator() to not require diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index 73cb5c4..8cf8778 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -87,7 +87,7 @@ public abstract class IntegerType } public ArithmeticUnit getALU(PointerType type, int wordSize) { - return new AddressUnit((PointerType)type); + return new AddressUnit(type, wordSize); } public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index a0e5743..90a84f7 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -135,7 +135,7 @@ public class PointerType } public ArithmeticUnit getALU(IntegerType type, int wordSize) { - return new AddressUnit(this); + return new AddressUnit(this, wordSize); } public ArithmeticUnit getALU(PointerType type, int wordSize) { hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 8 20:39:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 08 Nov 2007 20:39:00 -0000 Subject: [SCM] master: Support expression index[arrayName]. Message-ID: <20071108203932.24420.qmail@sourceware.org> The branch, master has been updated via 92e9c47e02ab8b02ccd29dac7763d286d4652353 (commit) from f0dd7a1f1381eb180a42ab7ddb9f56d717aa48ff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 92e9c47e02ab8b02ccd29dac7763d286d4652353 Author: Teresa Thomas Date: Thu Nov 8 15:38:17 2007 -0500 Support expression index[arrayName]. frysk-core/frysk/value/ChangeLog 2007-11-08 Teresa Thomas * Type.java (index): Make operation commutative. * TestArray.java (testIndexOneD): Add test for above. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 5 +++++ frysk-core/frysk/value/TestArray.java | 3 ++- frysk-core/frysk/value/Type.java | 4 ++++ 3 files changed, 11 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 0906a1d..e696918 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,4 +1,9 @@ 2007-11-08 Teresa Thomas + + * Type.java (index): Make operation commutative. + * TestArray.java (testIndexOneD): Add test for above. + +2007-11-08 Teresa Thomas * AddressUnit.java (wordSize): New. (add): Use wordSize for pointer creation. diff --git a/frysk-core/frysk/value/TestArray.java b/frysk-core/frysk/value/TestArray.java index 5706a02..25015c6 100644 --- a/frysk-core/frysk/value/TestArray.java +++ b/frysk-core/frysk/value/TestArray.java @@ -95,7 +95,8 @@ public class TestArray extends TestCase { Location l = new ScratchLocation(new byte[] { 2 }); IntegerType t = new UnsignedType("type", ByteOrder.BIG_ENDIAN, 1); Value index = new Value(t, l); - assertEquals("IndexOneD", 151653132, arrayType.index(arr, index, null).asLong()); + assertEquals("Array[index]", 151653132, arrayType.index(arr, index, null).asLong()); + assertEquals("Index[array]", 151653132, t.index(index, arr, null).asLong()); } /** diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index c13cb2e..7bfe22c 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -218,6 +218,10 @@ public abstract class Type { throw new InvalidOperatorException(this, "."); } public Value index(Value var1, Value var2, ByteBuffer taskMem) { + // In C, var1[var2] = var2[var1] + if (var2.getType() instanceof ArrayType || + var2.getType() instanceof PointerType) + return var2.getType().index (var2, var1, taskMem); throw new InvalidOperatorException(this, "[]"); } /** hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 8 20:57:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 08 Nov 2007 20:57:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sourceware.org/git/frysk Message-ID: <20071108205738.12727.qmail@sourceware.org> The branch, master has been updated via d9bd1560c585138ab990d7ad0b65b3d9e6ad8ce1 (commit) via f2f0a6b50c1d6adf0b8cf623ff48d7622db42a27 (commit) from 92e9c47e02ab8b02ccd29dac7763d286d4652353 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d9bd1560c585138ab990d7ad0b65b3d9e6ad8ce1 Merge: f2f0a6b50c1d6adf0b8cf623ff48d7622db42a27 92e9c47e02ab8b02ccd29dac7763d286d4652353 Author: Andrew Cagney Date: Thu Nov 8 15:56:13 2007 -0500 Merge branch 'master' of ssh://sourceware.org/git/frysk commit f2f0a6b50c1d6adf0b8cf623ff48d7622db42a27 Author: Andrew Cagney Date: Thu Nov 8 15:55:58 2007 -0500 AttachCommand extends ParameterizedCommand; simplify. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * CLI.java (doAttach(Task)): Delete. (doAttach(Proc)): Replace doAttach(int,Proc,Task). * RunCommand.java: Update. * AttachCommand.java: Update; extend ParameterizedCommand; delete -task option. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AttachCommand.java | 101 +++++++++++-------------------- frysk-core/frysk/hpd/CLI.java | 23 +++----- frysk-core/frysk/hpd/ChangeLog | 6 ++ frysk-core/frysk/hpd/RunCommand.java | 14 ++--- 4 files changed, 55 insertions(+), 89 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index 6271354..b87ec91 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -39,15 +39,14 @@ package frysk.hpd; -import java.util.Iterator; import frysk.proc.Proc; import frysk.proc.ProcId; -import frysk.proc.Task; import frysk.proc.Manager; import frysk.proc.FindProc; +import java.util.List; + +class AttachCommand extends ParameterizedCommand { -class AttachCommand - extends Command { private class ProcFinder implements FindProc { Proc proc = null; @@ -66,75 +65,47 @@ class AttachCommand } } - private static final String full = "The attach command causes the debugger " - + "to attach to an existing\n" - + "process(es), making it possible to continue the process' " - + "execution under\n" - + "debugger control. The command applies at the process level; all " - + "threads\n" - + "corresponding to the process will be attached by the operation. " - + "It is\n" - + "the user's responsibility to ensure that the process(es) " - + "actually is\n" + "executing the specified executable."; - AttachCommand() { super("attach", "Attach to a running process.", - "attach [executable] pid [-task tid]", full); + "attach ...", + ("The attach command causes the debugger to attach to an" + + " existing process(es), making it possible to continue" + + " the process' execution under debugger control. The" + + " command applies at the process level; all threads" + + " corresponding to the process will be attached by the" + + " operation. It is the user's responsibility to ensure" + + " that the process(es) actually is executing the specified" + + " executable.")); } - public void interpret(CLI cli, Input cmd) { - int pid = 0; - int tid = 0; - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - - if (cmd.size() < 1) { - cli.printUsage(cmd); - return; - } - - for (int idx = 0; idx < cmd.size(); idx++) { - if (cmd.parameter(idx).equals("-task")) { - idx += 1; - tid = Integer.parseInt(cmd.parameter(idx)); - } else if (cmd.parameter(idx).indexOf('-') == 0) { - cli.printUsage(cmd); - return; - } else if (cmd.parameter(idx).matches("[0-9]+")) - pid = Integer.parseInt(cmd.parameter(idx)); + public void interpret(CLI cli, Input cmd, Object options) { + if (cmd.size() == 0) { + throw new InvalidCommandException("Missing process ID"); } - - ProcFinder findProc = new ProcFinder(); - Manager.host.requestFindProc(new ProcId(pid), findProc); - synchronized (findProc) { - while (!findProc.procSearchFinished) { - try { - findProc.wait(); - } catch (InterruptedException ie) { - findProc.proc = null; + for (int i = 0; i < cmd.size(); i++) { + int pid = Integer.parseInt(cmd.parameter(i)); + ProcFinder findProc = new ProcFinder(); + Manager.host.requestFindProc(new ProcId(pid), findProc); + synchronized (findProc) { + while (!findProc.procSearchFinished) { + try { + findProc.wait(); + } catch (InterruptedException ie) { + findProc.proc = null; + } } } - } - if (findProc.proc == null) { - cli.addMessage("Couldn't find process " + pid, Message.TYPE_ERROR); - return; - } - int procID = cli.idManager.reserveProcID(); - Task task = null; - if (pid == tid || tid == 0) - task = findProc.proc.getMainTask(); - else - for (Iterator i = findProc.proc.getTasks().iterator(); i.hasNext();) { - task = (Task) i.next(); - if (task.getTid() == tid) - break; + if (findProc.proc == null) { + cli.outWriter.print("Couldn't find process "); + cli.outWriter.println(pid); + continue; } - cli.doAttach(pid, findProc.proc, task); - cli.getSteppingEngine().getBreakpointManager() - .manageProcess(findProc.proc); - cli.idManager.manageProc(findProc.proc, procID); + cli.doAttach(findProc.proc); + } + } + int complete(CLI cli, PTSet ptset, String input, int base, + List completions) { + return -1; } } diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 70871e3..e077073 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -132,37 +132,30 @@ public class CLI { /* * Command handlers */ - - public void doAttach(int pid, Proc proc, Task task) { - Proc[] temp = new Proc[1]; - temp[0] = proc; + public void doAttach(Proc proc) { synchronized (this) { attached = -1; attachedLatch = new CountDownLatch(1); } steppingEngine.addProc(proc); - // Wait till we are attached. + // Wait till we are attached. try { attachedLatch.await(); - addMessage("Attached to process " + attached, Message.TYPE_NORMAL); - } - catch (InterruptedException ie) { + outWriter.print("Attached to process "); + outWriter.println(attached); + } catch (InterruptedException ie) { addMessage("Attach interrupted.", Message.TYPE_ERROR); return; - } - finally { + } finally { synchronized (this) { attached = -1; attachedLatch = null; } } + steppingEngine.getBreakpointManager().manageProcess(proc); + idManager.manageProc(proc, idManager.reserveProcID()); } - public void doAttach(Task task) { - Proc proc = task.getProc(); - doAttach(proc.getPid(), proc, task); - } - //private static PrintStream out = null;// = System.out; final PrintWriter outWriter; private Preprocessor prepro; diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 347cd06..9c2e773 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-11-08 Andrew Cagney + * CLI.java (doAttach(Task)): Delete. + (doAttach(Proc)): Replace doAttach(int,Proc,Task). + * RunCommand.java: Update. + * AttachCommand.java: Update; extend ParameterizedCommand; delete + -task option. + * TestAliasCommands.java: New file. * AliasCommands.java: New. diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index f5e0c6c..d70035a 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -116,8 +116,8 @@ class RunCommand extends Command { public void interpret(CLI cli, Input cmd) { if (cmd.size() < 1) { - cli.printUsage(cmd); - return; + // XXX: should default to previous values. + throw new InvalidCommandException("missing program"); } Runner runner = new Runner(cli); Manager.host.requestCreateAttachedProc(cmd.stringArrayValue(), runner); @@ -126,12 +126,8 @@ class RunCommand extends Command { } catch (InterruptedException e) { return; } - // register with SteppingEngine - cli.doAttach(runner.launchedTask); - cli.getSteppingEngine().getBreakpointManager() - .manageProcess(runner.launchedTask.getProc()); - cli.idManager.manageProc(runner.launchedTask.getProc(), - cli.idManager.reserveProcID()); - runner.launchedTask.requestUnblock(runner); + // register with SteppingEngine et.al. + cli.doAttach(runner.launchedTask.getProc()); + runner.launchedTask.requestUnblock(runner); } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 9 01:22:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 09 Nov 2007 01:22:00 -0000 Subject: [SCM] master: Eliminate call to CLI.printUsage in FocusCommand. Message-ID: <20071109012216.26656.qmail@sourceware.org> The branch, master has been updated via 56fdb833280afc1291dc06a9a393f825bead5d06 (commit) via d6ea34b1e8d84d5a00f56a2a2a53192bc13ed82d (commit) via 309eec77f9ee936fe2139ed010c9f6b258393c5a (commit) via 1616ff612ae89cf4f062d1e5b103bf7a5807255a (commit) from d9bd1560c585138ab990d7ad0b65b3d9e6ad8ce1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 56fdb833280afc1291dc06a9a393f825bead5d06 Author: Andrew Cagney Date: Thu Nov 8 19:19:00 2007 -0500 Eliminate call to CLI.printUsage in FocusCommand. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * FocusCommand.java: Eliminate call to CLI.printUsage. commit d6ea34b1e8d84d5a00f56a2a2a53192bc13ed82d Author: Andrew Cagney Date: Thu Nov 8 19:04:43 2007 -0500 Refactor viewset and whichsets to extend ParameterizedCommand. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * ViewsetCommand.java: Extend ParameterizedCommand. * WhichsetsCommand.java: Eliminate call to CLI.printUsage. commit 309eec77f9ee936fe2139ed010c9f6b258393c5a Author: Andrew Cagney Date: Thu Nov 8 18:32:08 2007 -0500 Clean up plocation, ptype, defset, frame, set; to extend ParameterizedCommand. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * PlocationCommand.java: Extend ParameterizedCommand. * PtypeCommand.java: Ditto. * DefsetCommand.java: Eliminate call to CLI.printUsage. * FrameCommands.java: Ditto. * SetCommand.java: Ditto. commit 1616ff612ae89cf4f062d1e5b103bf7a5807255a Author: Andrew Cagney Date: Thu Nov 8 17:41:06 2007 -0500 WhichCommand and FrameCommands extend ParameterizedCommands. frysk-core/frysk/hpd/ChangeLog 2007-11-08 Andrew Cagney * WhereCommand.java: Extend ParameterizedCommand. * FrameCommands.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 14 +++++ frysk-core/frysk/hpd/DefsetCommand.java | 49 +++++++--------- frysk-core/frysk/hpd/FocusCommand.java | 43 +++++++------- frysk-core/frysk/hpd/FrameCommands.java | 37 ++++++------ frysk-core/frysk/hpd/PlocationCommand.java | 50 +++++---------- frysk-core/frysk/hpd/PtypeCommand.java | 48 +++++---------- frysk-core/frysk/hpd/SetCommand.java | 83 ++++++++++++++------------- frysk-core/frysk/hpd/ViewsetCommand.java | 88 ++++++++++++++-------------- frysk-core/frysk/hpd/WhereCommand.java | 60 ++++++++++---------- frysk-core/frysk/hpd/WhichsetsCommand.java | 67 ++++++++++----------- 10 files changed, 258 insertions(+), 281 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 9c2e773..f56cb87 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,19 @@ 2007-11-08 Andrew Cagney + * FocusCommand.java: Eliminate call to CLI.printUsage. + + * ViewsetCommand.java: Extend ParameterizedCommand. + * WhichsetsCommand.java: Eliminate call to CLI.printUsage. + + * PlocationCommand.java: Extend ParameterizedCommand. + * PtypeCommand.java: Ditto. + * DefsetCommand.java: Eliminate call to CLI.printUsage. + * FrameCommands.java: Ditto. + * SetCommand.java: Ditto. + + * WhereCommand.java: Extend ParameterizedCommand. + * FrameCommands.java: Ditto. + * CLI.java (doAttach(Task)): Delete. (doAttach(Proc)): Replace doAttach(int,Proc,Task). * RunCommand.java: Update. diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java index 6d57a71..e3759d3 100644 --- a/frysk-core/frysk/hpd/DefsetCommand.java +++ b/frysk-core/frysk/hpd/DefsetCommand.java @@ -43,20 +43,17 @@ import java.util.List; class DefsetCommand extends ParameterizedCommand { - private static final String full = "Associates a logical name with a " - + "group of threads and/or processes,\n" - + "creating a user-defined set. Once a user-defined set has been\n" - + "established, it can be used (enclosed in brackets) as a p/t set " - + "prefix\n" - + "or as the argument to a focus command, providing a shorthand " - + "way of\n" - + "referring to potentially complex groupings of processes and " - + "threads. "; - DefsetCommand() { super("defset", "Assign a set name to a group of processes/threads", - "defset set-name p/t-set", full); + "defset set-name p/t-set", + ("Associates a logical name with a group of threads and/or" + + " processes, creating a user-defined set. Once a" + + " user-defined set has been established, it can be used" + + " (enclosed in brackets) as a p/t set prefix or as the" + + " argument to a focus command, providing a shorthand" + + " way of referring to potentially complex groupings" + + " of processes and threads.")); } public void interpret(CLI cli, Input cmd, Object options) { @@ -64,23 +61,21 @@ class DefsetCommand extends ParameterizedCommand { String setnot = null; PTSet set = null; - if (cmd.size() == 2) { - setname = cmd.parameter(0); - if (!setname.matches("\\w+")) - throw new InvalidCommandException - ("Set name must be alphanumeric."); - setnot = cmd.parameter(1); - if (!cli.builtinPTSets.containsKey(setnot)) { - set = cli.createSet(setnot); - cli.namedPTSets.put(setname, set); - } else { - cli.addMessage( - "The set name is reserved for a predefined set.", - Message.TYPE_ERROR); - } + if (cmd.size() != 2) + throw new InvalidCommandException("Wrong number of parameters"); + setname = cmd.parameter(0); + if (!setname.matches("\\w+")) + throw new InvalidCommandException + ("Set name must be alphanumeric."); + setnot = cmd.parameter(1); + if (!cli.builtinPTSets.containsKey(setnot)) { + set = cli.createSet(setnot); + cli.namedPTSets.put(setname, set); } else { - cli.printUsage(cmd); - } + cli.addMessage( + "The set name is reserved for a predefined set.", + Message.TYPE_ERROR); + } } int complete(CLI cli, PTSet ptset, String incomplete, int base, diff --git a/frysk-core/frysk/hpd/FocusCommand.java b/frysk-core/frysk/hpd/FocusCommand.java index 9717e7e..8d2bbe9 100644 --- a/frysk-core/frysk/hpd/FocusCommand.java +++ b/frysk-core/frysk/hpd/FocusCommand.java @@ -47,34 +47,33 @@ import frysk.proc.Task; import java.util.List; class FocusCommand extends ParameterizedCommand { - private static String full = "Changes the current p/t set. As a " - + "consequence, subsequent commands will\n" - + "apply to just the threads specified in the argument of this\n" - + "command. When no argument is specified, the command lists the " - + "threads in\n" + "the current p/t set. "; FocusCommand() { super("focus", "Change the current process/thread set.", - "focus [p/t-set]", full); + "focus [p/t-set]", + ("Changes the current p/t set. As a consequence, subsequent" + + " commands will apply to just the threads specified in" + + " the argument of this command. When no argument is" + + " specified, the command lists the threads in the" + + " current p/t set.")); } - public void interpret(CLI cli, Input cmd, Object options) { - if (cmd.size() <= 1) { - if (cmd.size() == 1) { - cli.targetset = cli.createSet(cmd.parameter(0)); - Iterator i = cli.targetset.getTasks(); - while (i.hasNext()) { - Task task = (Task) i.next(); - DebugInfoFrame frame = DebugInfoStackFactory - .createVirtualStackTrace(task); - cli.setTaskFrame(task, frame); - cli.setTaskDebugInfo(task, new DebugInfo(frame)); - } - } else { - cli.execCommand("viewset"); + public void interpret(CLI cli, Input input, Object options) { + switch (input.size()) { + default: + throw new InvalidCommandException("wrong number of arguments"); + case 0: + cli.execCommand("viewset"); + break; + case 1: + cli.targetset = cli.createSet(input.parameter(0)); + for (Iterator i = cli.targetset.getTasks(); i.hasNext(); ) { + Task task = (Task) i.next(); + DebugInfoFrame frame = DebugInfoStackFactory + .createVirtualStackTrace(task); + cli.setTaskFrame(task, frame); + cli.setTaskDebugInfo(task, new DebugInfo(frame)); } - } else { - cli.printUsage(cmd); } } diff --git a/frysk-core/frysk/hpd/FrameCommands.java b/frysk-core/frysk/hpd/FrameCommands.java index 043d49d..a87e0ff 100644 --- a/frysk-core/frysk/hpd/FrameCommands.java +++ b/frysk-core/frysk/hpd/FrameCommands.java @@ -40,33 +40,32 @@ package frysk.hpd; import java.util.Iterator; - +import java.util.List; import frysk.debuginfo.DebugInfoFrame; import frysk.proc.Task; -class FrameCommands extends Command { - - private static final String full = "The up (down) command modifies the " - + "current frame location(s) by adding\n" - + "(subtracting) num-levels. Call stack movements are all " - + "relative, so up\n" - + "effectively \"moves up\" (or back) in the call stack, to a " - + "frame that\n" - + "has existed longer, while down \"moves down\" in the call " - + "stack,\n" + "following the progress of program execution."; +class FrameCommands extends ParameterizedCommand { FrameCommands(String name) { - super(name, "Move " + name - + " one or more levels in the call stack", name - + " [num-levels]", full); + super(name, + ("Move " + name + " one or more levels in the call stack"), + (name + " [num-levels]"), + ("The up (down) command modifies the current frame" + + " location(s) by adding (subtracting) num-levels. Call" + + " stack movements are all relative, so up effectively" + + " \"moves up\" (or back) in the call stack, to a frame" + + " that has existed longer, while down \"moves down\" in" + + " the call stack, following the progress of program" + + " execution.")); } - public void interpret(CLI cli, Input cmd) { + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return -1; + } + + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } int level = 1; boolean down = true; diff --git a/frysk-core/frysk/hpd/PlocationCommand.java b/frysk-core/frysk/hpd/PlocationCommand.java index 33d5272..225cc09 100644 --- a/frysk-core/frysk/hpd/PlocationCommand.java +++ b/frysk-core/frysk/hpd/PlocationCommand.java @@ -42,47 +42,25 @@ package frysk.hpd; import java.util.Iterator; import frysk.proc.Task; import frysk.value.Value; +import java.util.List; -class PlocationCommand - extends Command -{ +class PlocationCommand extends ParameterizedCommand { PlocationCommand() { - super("plocation", "Display the location of a program variable or expression.", - "plocation expression [-name] [-index]", "The plocation command " + - "evaluates and displays the type of an expression. The debugger\n" + - "interprets the expression by looking up the value(s) associated with\n" + - "each symbol and applying the operators." + - "Output is \"LocationType LocationName - Size byte(s)\""); + super("plocation", + "Display the location of a program variable or expression.", + "plocation ", + ("The plocation command evaluates and displays the type of an" + + " expression. The debugger interprets the expression" + + " by looking up the value(s) associated with each symbol" + + " and applying the operators. Output is" + + " \"LocationType LocationName - Size byte(s)\"")); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - if (cmd.size() == 0 - || ((cmd.parameter(0)).equals("-help"))) { - cli.printUsage(cmd); - return; - } // What's left of the command line. String sInput = cmd.stringValue(); - if (sInput.length() == 0) { - cli.printUsage(cmd); - return; - } - - if (cmd.getAction().compareTo("assign") == 0) { - int i = sInput.indexOf(' '); - if (i == -1) { - cli.printUsage(cmd); - return; - } - sInput = sInput.substring(0, i) + "=" + sInput.substring(i); - } - Value result = null; Iterator taskDataIter = ptset.getTaskData(); boolean doWithoutTask = !taskDataIter.hasNext(); @@ -110,4 +88,10 @@ class PlocationCommand Message.TYPE_ERROR); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/PtypeCommand.java b/frysk-core/frysk/hpd/PtypeCommand.java index 5bee5be..2cf892a 100644 --- a/frysk-core/frysk/hpd/PtypeCommand.java +++ b/frysk-core/frysk/hpd/PtypeCommand.java @@ -39,49 +39,27 @@ package frysk.hpd; +import java.util.List; import java.util.Iterator; import frysk.proc.Task; import frysk.value.Value; -class PtypeCommand - extends Command -{ +class PtypeCommand extends ParameterizedCommand { PtypeCommand() { - super("ptype", "Display the type of a program variable or expression.", - "ptype expression [-name] [-index]", "The ptype command " + - "evaluates and displays the type of an expression. The debugger\n" + - "interprets the expression by looking up the value(s) associated with\n" + - "each symbol and applying the operators."); + super("ptype", + "Display the type of a program variable or expression.", + "ptype ", + ("The ptype command evaluates and displays the type of an" + + " expression. The debugger interprets the expression" + + " by looking up the value(s) associated with" + + " each symbol and applying the operators.")); } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - if (cmd.size() == 0 - || ((cmd.parameter(0)).equals("-help"))) { - cli.printUsage(cmd); - return; - } // Skip set specification, if any String sInput = cmd.stringValue(); - if (sInput.length() == 0) { - cli.printUsage(cmd); - return; - } - - if (cmd.getAction().compareTo("assign") == 0) { - int i = sInput.indexOf(' '); - if (i == -1) { - cli.printUsage(cmd); - return; - } - sInput = sInput.substring(0, i) + "=" + sInput.substring(i); - } - Value result = null; Iterator taskDataIter = ptset.getTaskData(); boolean doWithoutTask = !taskDataIter.hasNext(); @@ -109,4 +87,10 @@ class PtypeCommand Message.TYPE_ERROR); } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, completions); + } } diff --git a/frysk-core/frysk/hpd/SetCommand.java b/frysk-core/frysk/hpd/SetCommand.java index f06cedf..47c53d3 100644 --- a/frysk-core/frysk/hpd/SetCommand.java +++ b/frysk-core/frysk/hpd/SetCommand.java @@ -42,54 +42,57 @@ package frysk.hpd; import java.util.List; class SetCommand extends ParameterizedCommand { - private static final String full = "The set command supports the viewing of " - + "debugger state variables and the\n" - + "assignment of new values to them. When no arguments are " - + "specified, the\n" - + "names and current values for all debugger state variables are\n" - + "displayed. When just a single argument is included, the " - + "debugger echoes\n" - + "the variable name and displays its current value. The second " - + "argument\n" - + "defines the value that should replace any previous value for " - + "that\n" - + "variable. It must be enclosed in quotes if it contains " - + "multiple\n" + "words. "; private final DbgVariables dbgvars; SetCommand(DbgVariables dbgvars) { super("set", "Change or view a debugger variable.", - "set debugger-var = value\nset [debugger-var]", full); + "set debugger-var = value\nset [debugger-var]", + ("The set command supports the viewing of debugger state" + + " variables and the assignment of new values to them. When" + + " no arguments are specified, the names and current values" + + " for all debugger state variables are displayed. When" + + " just a single argument is included, the debugger echoes" + + " the variable name and displays its current value. The" + + " second argument defines the value that should replace" + + " any previous value for that variable. It must be" + + " enclosed in quotes if it contains multiple words.")); this.dbgvars = dbgvars; } - public void interpret(CLI cli, Input cmd, Object options) { - String temp; - if (cmd.size() == 3 && (cmd.parameter(1)).equals("=")) { - temp = cmd.parameter(0); - if (dbgvars.variableIsValid(temp)) { - if (dbgvars.valueIsValid(temp, cmd.parameter(2))) { - dbgvars.setVariable(temp, cmd.parameter(2)); - } else - cli.addMessage("Illegal variable value.", - Message.TYPE_ERROR); - } else - cli.addMessage(new Message("Illegal debugger variable \"" - + cmd.parameter(0) + "\"", Message.TYPE_ERROR)); - } else if (cmd.size() == 1) { - temp = cmd.parameter(0); - if (dbgvars.variableIsValid(temp)) { - cli.addMessage( - temp + " = " + dbgvars.getValue(temp).toString(), - Message.TYPE_NORMAL); - } else - cli.addMessage(new Message("Illegal debugger variable \"" - + cmd.parameter(0) + "\"", Message.TYPE_ERROR)); - } else if (cmd.size() == 0) { - cli.addMessage(dbgvars.toString(), Message.TYPE_NORMAL); - } else { - cli.printUsage(cmd); + public void interpret(CLI cli, Input input, Object options) { + switch (input.size()) { + default: + throw new InvalidCommandException("wrong number of parameters"); + case 3: + if (!input.parameter(1).equals("=")) + throw new InvalidCommandException("missing \"=\""); + String variable = input.parameter(0); + if (!dbgvars.variableIsValid(variable)) + throw new InvalidCommandException("Debugger variable \"" + + variable + + "\" is invalid"); + String value = input.parameter(2); + if (!dbgvars.valueIsValid(variable, value)) + throw new InvalidCommandException("Variable value \"" + + value + + "\" is invalid"); + dbgvars.setVariable(variable, value); + break; + case 1: + String var = input.parameter(0); + if (!dbgvars.variableIsValid(var)) + throw new InvalidCommandException("Variable \"" + + var + + "\" is invalid"); + cli.outWriter.print(var); + cli.outWriter.print(" = "); + cli.outWriter.print(dbgvars.getValue(var)); + cli.outWriter.println(); + break; + case 0: + cli.outWriter.println(dbgvars.toString()); + break; } } diff --git a/frysk-core/frysk/hpd/ViewsetCommand.java b/frysk-core/frysk/hpd/ViewsetCommand.java index 4d21d10..fc94e98 100644 --- a/frysk-core/frysk/hpd/ViewsetCommand.java +++ b/frysk-core/frysk/hpd/ViewsetCommand.java @@ -40,62 +40,62 @@ package frysk.hpd; import java.util.Iterator; - +import java.util.List; import frysk.proc.Task; -class ViewsetCommand extends Command { - - private static final String full = "The viewset command displays the " - + "members of debugger- or user-defined\n" - + "sets. When no argument is used, the members of all currently " - + "defined\n" + "sets are displayed. "; +class ViewsetCommand extends ParameterizedCommand { ViewsetCommand() { super("viewset", "List members of a proc/task set.", - "viewset [set-name]", full); + "viewset [set-name]", + ("The viewset command displays the members of debugger-" + + " or user-defined sets. When no argument is used, the" + + " members of all currently defined sets are displayed.")); } - public void interpret(CLI cli, Input cmd) { - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return -1; + } hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Fri Nov 9 14:57:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Fri, 09 Nov 2007 14:57:00 -0000 Subject: [SCM] master: Updating proc classes to support Power32/64. Message-ID: <20071109145728.2955.qmail@sourceware.org> The branch, master has been updated via b6cf2c808620d180fdcf03ff2e4dc0451768fef4 (commit) via cdf04613ab0ab6467f13024783e426d0e30449f1 (commit) from 56fdb833280afc1291dc06a9a393f825bead5d06 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b6cf2c808620d180fdcf03ff2e4dc0451768fef4 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 9 11:15:00 2007 -0200 Updating proc classes to support Power32/64. commit cdf04613ab0ab6467f13024783e426d0e30449f1 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 9 10:35:12 2007 -0200 Fixing Power32 ISA. Patching the registers and creating register groups. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 4 + frysk-core/frysk/isa/ISA.java | 11 +- frysk-core/frysk/isa/PPC32Registers.java | 135 ++++++++++++++------ frysk-core/frysk/proc/ChangeLog | 7 + frysk-core/frysk/proc/IsaPowerPC.java | 21 ++-- frysk-core/frysk/proc/LinuxPPC.java | 3 +- frysk-core/frysk/proc/PPCBankRegisters.java | 14 +- frysk-core/frysk/util/ChangeLog | 3 + frysk-core/frysk/util/LinuxElfCorefileFactory.java | 5 +- 9 files changed, 136 insertions(+), 67 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 97ca1d8..671c4d2 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,7 @@ +2007-11-09 Jose Flavio Aguilar Paulino + * Fixing Power32 ISA. Patching the registers and creating + register group + 2007-10-17 Andrew Cagney * IA32Registers.java (ST0, ST1, ST2, ST3, ST4, ST5, ST6) diff --git a/frysk-core/frysk/isa/ISA.java b/frysk-core/frysk/isa/ISA.java index c79de70..865f14b 100644 --- a/frysk-core/frysk/isa/ISA.java +++ b/frysk-core/frysk/isa/ISA.java @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007, Red Hat Inc. +// Copyright (C) 2006-2007 IBM // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -71,16 +72,16 @@ public final class ISA { ); } + /* + * PowerPC is a Bi-Endian archtecture, it supports little and big + * endianness. But, usually (99.9%) it is used as a big endian, + * in truth in memory the data is stored always in big-endian format + */ public static final ISA PPC32BE = new ISA(ByteOrder.BIG_ENDIAN, 4, "PowerPC"); public static final ISA PPC64BE = new ISA(ByteOrder.BIG_ENDIAN, 8, "PowerPC"); - public static final ISA PPC32LE - = new ISA(ByteOrder.LITTLE_ENDIAN, 4, "PowerPC"); - public static final ISA PPC64LE - = new ISA(ByteOrder.LITTLE_ENDIAN, 8, "PowerPC"); - public static final ISA IA32 = new ISA(ByteOrder.LITTLE_ENDIAN, 4, "IA32"); public static final ISA X8664 diff --git a/frysk-core/frysk/isa/PPC32Registers.java b/frysk-core/frysk/isa/PPC32Registers.java index bbe4805..8387e61 100644 --- a/frysk-core/frysk/isa/PPC32Registers.java +++ b/frysk-core/frysk/isa/PPC32Registers.java @@ -1,6 +1,10 @@ // This file is part of the program FRYSK. // // Copyright 2007, Red Hat Inc. +// Copyright (C) 2006-2007 IBM +// +// Contributed by +// Jose Flavio Aguilar Paulino // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -108,76 +112,128 @@ public class PPC32Registers extends Registers { public static final Register GPR31 = new Register("gpr31", StandardTypes.INT32B_T); + /* Special registers */ + + public static final Register CTR + = new Register("counterreg", StandardTypes.INT32B_T); + public static final Register XER + = new Register("fixedstatuscontrolreg", StandardTypes.INT32B_T); + public static final Register CCR + = new Register("conditionreg", StandardTypes.INT32B_T); + public static final Register LR + = new Register("linkreg", StandardTypes.VOIDPTR32B_T); + public static final Register FPSCR + = new Register("floatingstatuscontrolreg", StandardTypes.INT32B_T); + public static final Register FPR0 - = new Register("fpr0", StandardTypes.FLOAT64B_T); + = new Register("fpr0", StandardTypes.FLOAT64B_T); public static final Register FPR1 - = new Register("fpr1", StandardTypes.FLOAT64B_T); + = new Register("fpr1", StandardTypes.FLOAT64B_T); public static final Register FPR2 - = new Register("fpr2", StandardTypes.FLOAT64B_T); + = new Register("fpr2", StandardTypes.FLOAT64B_T); public static final Register FPR3 - = new Register("fpr3", StandardTypes.FLOAT64B_T); + = new Register("fpr3", StandardTypes.FLOAT64B_T); public static final Register FPR4 - = new Register("fpr4", StandardTypes.FLOAT64B_T); + = new Register("fpr4", StandardTypes.FLOAT64B_T); public static final Register FPR5 - = new Register("fpr5", StandardTypes.FLOAT64B_T); + = new Register("fpr5", StandardTypes.FLOAT64B_T); public static final Register FPR6 - = new Register("fpr6", StandardTypes.FLOAT64B_T); + = new Register("fpr6", StandardTypes.FLOAT64B_T); public static final Register FPR7 - = new Register("fpr7", StandardTypes.FLOAT64B_T); + = new Register("fpr7", StandardTypes.FLOAT64B_T); public static final Register FPR8 - = new Register("fpr8", StandardTypes.FLOAT64B_T); + = new Register("fpr8", StandardTypes.FLOAT64B_T); public static final Register FPR9 - = new Register("fpr9", StandardTypes.FLOAT64B_T); + = new Register("fpr9", StandardTypes.FLOAT64B_T); public static final Register FPR10 - = new Register("fpr10", StandardTypes.FLOAT64B_T); + = new Register("fpr10", StandardTypes.FLOAT64B_T); public static final Register FPR11 - = new Register("fpr11", StandardTypes.FLOAT64B_T); + = new Register("fpr11", StandardTypes.FLOAT64B_T); public static final Register FPR12 - = new Register("fpr12", StandardTypes.FLOAT64B_T); + = new Register("fpr12", StandardTypes.FLOAT64B_T); public static final Register FPR13 - = new Register("fpr13", StandardTypes.FLOAT64B_T); + = new Register("fpr13", StandardTypes.FLOAT64B_T); public static final Register FPR14 - = new Register("fpr14", StandardTypes.FLOAT64B_T); + = new Register("fpr14", StandardTypes.FLOAT64B_T); public static final Register FPR15 - = new Register("fpr15", StandardTypes.FLOAT64B_T); + = new Register("fpr15", StandardTypes.FLOAT64B_T); public static final Register FPR16 - = new Register("fpr16", StandardTypes.FLOAT64B_T); + = new Register("fpr16", StandardTypes.FLOAT64B_T); public static final Register FPR17 - = new Register("fpr17", StandardTypes.FLOAT64B_T); + = new Register("fpr17", StandardTypes.FLOAT64B_T); public static final Register FPR18 - = new Register("fpr18", StandardTypes.FLOAT64B_T); + = new Register("fpr18", StandardTypes.FLOAT64B_T); public static final Register FPR19 - = new Register("fpr19", StandardTypes.FLOAT64B_T); + = new Register("fpr19", StandardTypes.FLOAT64B_T); public static final Register FPR20 - = new Register("fpr20", StandardTypes.FLOAT64B_T); + = new Register("fpr20", StandardTypes.FLOAT64B_T); public static final Register FPR21 - = new Register("fpr21", StandardTypes.FLOAT64B_T); + = new Register("fpr21", StandardTypes.FLOAT64B_T); public static final Register FPR22 - = new Register("fpr22", StandardTypes.FLOAT64B_T); + = new Register("fpr22", StandardTypes.FLOAT64B_T); public static final Register FPR23 - = new Register("fpr23", StandardTypes.FLOAT64B_T); + = new Register("fpr23", StandardTypes.FLOAT64B_T); public static final Register FPR24 - = new Register("fpr24", StandardTypes.FLOAT64B_T); + = new Register("fpr24", StandardTypes.FLOAT64B_T); public static final Register FPR25 - = new Register("fpr25", StandardTypes.FLOAT64B_T); + = new Register("fpr25", StandardTypes.FLOAT64B_T); public static final Register FPR26 - = new Register("fpr26", StandardTypes.FLOAT64B_T); + = new Register("fpr26", StandardTypes.FLOAT64B_T); public static final Register FPR27 - = new Register("fpr27", StandardTypes.FLOAT64B_T); + = new Register("fpr27", StandardTypes.FLOAT64B_T); public static final Register FPR28 - = new Register("fpr28", StandardTypes.FLOAT64B_T); + = new Register("fpr28", StandardTypes.FLOAT64B_T); public static final Register FPR29 - = new Register("fpr29", StandardTypes.FLOAT64B_T); + = new Register("fpr29", StandardTypes.FLOAT64B_T); public static final Register FPR30 - = new Register("fpr30", StandardTypes.FLOAT64B_T); + = new Register("fpr30", StandardTypes.FLOAT64B_T); public static final Register FPR31 - = new Register("fpr31", StandardTypes.FLOAT64B_T); + = new Register("fpr31", StandardTypes.FLOAT64B_T); + + public static final RegisterGroup GENERAL + = new RegisterGroup("general", + new Register[] { + GPR0 , GPR1 , GPR2 , GPR3 , GPR4 , GPR5 , GPR6 , GPR7 , GPR8 , GPR9 , + GPR10, GPR11, GPR12, GPR13, GPR14, GPR15, GPR16, GPR17, GPR18, GPR19, + GPR20, GPR21, GPR22, GPR23, GPR24, GPR25, GPR26, GPR27, GPR28, GPR29, + GPR30, GPR31 }); + + public static final RegisterGroup SPECIAL + = new RegisterGroup("special", + new Register[] { CTR, XER, CCR, LR, FPSCR }); + + public static final RegisterGroup FLOATING_POINTER + = new RegisterGroup("floatingpointer", + new Register[] { + FPR0 , FPR1 , FPR2 , FPR3 , FPR4 , FPR5 , FPR6 , FPR7 , FPR8 , FPR9 , + FPR10, FPR11, FPR12, FPR13, FPR14, FPR15, FPR16, FPR17, FPR18, FPR19, + FPR20, FPR21, FPR22, FPR23, FPR24, FPR25, FPR26, FPR27, FPR28, FPR29, + FPR30, FPR31 }); - public static final Register NIP - = new Register("nip", StandardTypes.VOIDPTR32B_T); + public static final RegisterGroup ALL; + static { + Register[] allRegs = new Register[ + GENERAL.getRegisters().length + + SPECIAL.getRegisters().length + + FLOATING_POINTER.getRegisters().length]; + + System.arraycopy(GENERAL.getRegisters(), 0, + allRegs, 0, + GENERAL.getRegisters().length); + + System.arraycopy(SPECIAL.getRegisters(), 0, + allRegs, GENERAL.getRegisters().length, + SPECIAL.getRegisters().length); + + System.arraycopy(FLOATING_POINTER.getRegisters(), 0, + allRegs, GENERAL.getRegisters().length + SPECIAL.getRegisters().length, + FLOATING_POINTER.getRegisters().length); + + ALL = new RegisterGroup("all", allRegs); + } public Register getProgramCounter() { - return NIP; + return LR; } public Register getStackPointer() { @@ -185,17 +241,14 @@ public class PPC32Registers extends Registers { } public RegisterGroup getDefaultRegisterGroup() { - // FIXME! - return null; + return GENERAL; } public RegisterGroup getAllRegistersGroup() { - // FIXME! - return null; + return ALL; } PPC32Registers() { - // FIXME! - super(null); + super(new RegisterGroup[] { GENERAL, SPECIAL, FLOATING_POINTER, ALL }); } } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index bf85d82..357707b 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,10 @@ +2007-11-09 Jose Flavio Aguilar Paulino + + * IsaPowerPC.java: Updated it to also support Power32. + * LinuxPPC.java: Patched to suppport Power32. + * PPCBankRegisters.java: Corrected Power32 and Power 64 register + banks, need to be reviewed later. + 2007-10-31 Petr Machata * TestTaskObserverCode.java (testMultiTaskUpdateCalledSeveralTimes): New test. diff --git a/frysk-core/frysk/proc/IsaPowerPC.java b/frysk-core/frysk/proc/IsaPowerPC.java index 8524381..a9f3998 100644 --- a/frysk-core/frysk/proc/IsaPowerPC.java +++ b/frysk-core/frysk/proc/IsaPowerPC.java @@ -49,24 +49,24 @@ import frysk.isa.Register; import inua.eio.ByteOrder; abstract class IsaPowerPC implements Isa { - private final Register NIP; + private final Register PC; - protected IsaPowerPC(Register NIP) { - this.NIP = NIP; + protected IsaPowerPC(Register PC) { + this.PC = PC; } - // the illegal instruction for powerpc: 0x7d821008. - // the default order is BIG_ENDIAN - protected static final Instruction ppcBreakpoint - = new Instruction(new byte[] { (byte)0x7d, (byte)0x82, - (byte)0x10, (byte)0x08 }, false); + // the illegal instruction for powerpc: 0x7d821008. + // the default order is BIG_ENDIAN + protected static final Instruction ppcBreakpoint = + new Instruction(new byte[] { (byte)0x7d, (byte)0x82, + (byte)0x10, (byte)0x08 }, false); public long pc (Task task) { - return task.getRegister(NIP); + return task.getRegister(PC); } public void setPC (Task task, long address) { - task.setRegister(NIP, address); + task.setRegister(PC, address); } /** @@ -110,7 +110,6 @@ abstract class IsaPowerPC implements Isa { * Get the true breakpoint address according to PC register after hitting * one breakpoint set in task. In PowerPC, the PC register's value will * remain unchanged. - * */ public final long getBreakpointAddress(Task task) { diff --git a/frysk-core/frysk/proc/LinuxPPC.java b/frysk-core/frysk/proc/LinuxPPC.java index 027fcf4..9c2a103 100644 --- a/frysk-core/frysk/proc/LinuxPPC.java +++ b/frysk-core/frysk/proc/LinuxPPC.java @@ -48,7 +48,8 @@ import frysk.isa.PPC32Registers; class LinuxPPC extends IsaPowerPC implements SyscallEventDecoder { LinuxPPC() { - super(PPC32Registers.NIP); + //In Power32 the PC will be in Link Register + super(PPC32Registers.LR); } private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java index c1aa73c..22b43a9 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/proc/PPCBankRegisters.java @@ -79,18 +79,18 @@ public class PPCBankRegisters { .add(new BankRegister(0, 116, 4, PPC32Registers.GPR29)) .add(new BankRegister(0, 120, 4, PPC32Registers.GPR30)) .add(new BankRegister(0, 124, 4, PPC32Registers.GPR31)) - .add(new BankRegister(0, 128, 4, PPC32Registers.NIP)) + .add(new BankRegister(0, 128, 4, "result")) .add(new BankRegister(0, 132, 4, "msr")) .add(new BankRegister(0, 136, 4, "orig_r3")) - .add(new BankRegister(0, 140, 4, "ctr")) - .add(new BankRegister(0, 144, 4, "lnk")) - .add(new BankRegister(0, 148, 4, "xer")) - .add(new BankRegister(0, 152, 4, "ccr")) - .add(new BankRegister(0, 156, 4, "mq")) + .add(new BankRegister(0, 140, 4, PPC32Registers.CTR)) + .add(new BankRegister(0, 144, 4, PPC32Registers.LR)) + .add(new BankRegister(0, 148, 4, PPC32Registers.XER)) + .add(new BankRegister(0, 152, 4, PPC32Registers.CCR)) + .add(new BankRegister(0, 156, 4, PPC32Registers.FPSCR)) .add(new BankRegister(0, 160, 4, "trap")) .add(new BankRegister(0, 164, 4, "dar")) .add(new BankRegister(0, 168, 4, "dsisr")) - .add(new BankRegister(0, 172, 4, "result")) + .add(new BankRegister(0, 172, 4, "mq")) .add(new BankRegister(0, 192, 8, PPC32Registers.FPR0)) .add(new BankRegister(0, 200, 8, PPC32Registers.FPR1)) .add(new BankRegister(0, 208, 8, PPC32Registers.FPR2)) diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index fe07bf5..d1fc9f9 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,6 @@ +2007-11-09 Jose Flavio Aguilar Paulino + * LinuxElfCorefileFactory.java: Removed Power little endian. + 2007-10-22 Phil Muldoon * IA32LinuxElfCorefile.java (writeNotePrstatus): Convert diff --git a/frysk-core/frysk/util/LinuxElfCorefileFactory.java b/frysk-core/frysk/util/LinuxElfCorefileFactory.java index 7a1879a..f206a85 100644 --- a/frysk-core/frysk/util/LinuxElfCorefileFactory.java +++ b/frysk-core/frysk/util/LinuxElfCorefileFactory.java @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007, Red Hat Inc. +// Copyright 2006 IBM Corp. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -58,9 +59,9 @@ public class LinuxElfCorefileFactory return new IA32LinuxElfCorefile(process, blockedTasks); if (isa.equals(ISA.X8664)) return new X8664LinuxElfCorefile(process, blockedTasks); - if (isa.equals(ISA.PPC32BE) || isa.equals(ISA.PPC32LE)) + if (isa.equals(ISA.PPC32BE)) return new PPC32LinuxElfCorefile(process, blockedTasks); - if (isa.equals(ISA.PPC64BE) || isa.equals(ISA.PPC64LE)) + if (isa.equals(ISA.PPC64BE)) return new PPC64LinuxElfCorefile(process, blockedTasks); throw new RuntimeException("Cannot find arch for process PID " + process.getPid()); hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Fri Nov 9 14:59:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Fri, 09 Nov 2007 14:59:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071109145952.3936.qmail@sourceware.org> The branch, master has been updated via 6c44fcf8aa2f01b9cc33e1a44994baac43d02a4a (commit) via e9ed145fa778d99060a834f06d4221438309f7f6 (commit) via cb713025e2c07f132a37d73d1dbea95dd1c5b4a8 (commit) from b6cf2c808620d180fdcf03ff2e4dc0451768fef4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6c44fcf8aa2f01b9cc33e1a44994baac43d02a4a Merge: e9ed145fa778d99060a834f06d4221438309f7f6 b6cf2c808620d180fdcf03ff2e4dc0451768fef4 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 9 12:58:34 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit e9ed145fa778d99060a834f06d4221438309f7f6 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 9 12:14:56 2007 -0200 Fixing a minor PPC32 script issue. commit cb713025e2c07f132a37d73d1dbea95dd1c5b4a8 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 9 11:37:22 2007 -0200 Adding scripts to generate unwind classes for Power32/64 ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/include/libunwind-ppc32.h | 2 +- frysk-imports/libunwind/include/libunwind-ppc64.h | 2 +- frysk-sys/lib/unwind/ChangeLog | 5 +++++ .../{UnwindPPC64.java-sh => UnwindPPC32.java-sh} | 5 ++++- ...stersX86.shenum => UnwindRegistersPPC32.shenum} | 13 ++++++++----- ...stersX86.shenum => UnwindRegistersPPC64.shenum} | 13 ++++++++----- 6 files changed, 27 insertions(+), 13 deletions(-) copy frysk-sys/lib/unwind/{UnwindPPC64.java-sh => UnwindPPC32.java-sh} (95%) copy frysk-sys/lib/unwind/{UnwindRegistersX86.shenum => UnwindRegistersPPC32.shenum} (89%) copy frysk-sys/lib/unwind/{UnwindRegistersX86.shenum => UnwindRegistersPPC64.shenum} (89%) First 500 lines of diff: diff --git a/frysk-imports/libunwind/include/libunwind-ppc32.h b/frysk-imports/libunwind/include/libunwind-ppc32.h index b40a84e..c45a43a 100644 --- a/frysk-imports/libunwind/include/libunwind-ppc32.h +++ b/frysk-imports/libunwind/include/libunwind-ppc32.h @@ -52,7 +52,7 @@ extern "C" { * to err on making it rather too big than too small. * * To simplify this whole process, we are at least initially taking the - * tack that UNW_PPC32_* map straight across to the .eh_frame column register + * tack that ppc32 regs map straight across to the .eh_frame column register * numbers. These register numbers come from gcc's source in * gcc/config/rs6000/rs6000.h * diff --git a/frysk-imports/libunwind/include/libunwind-ppc64.h b/frysk-imports/libunwind/include/libunwind-ppc64.h index 66420b3..1a5e626 100644 --- a/frysk-imports/libunwind/include/libunwind-ppc64.h +++ b/frysk-imports/libunwind/include/libunwind-ppc64.h @@ -52,7 +52,7 @@ extern "C" { * to err on making it rather too big than too small. * * To simplify this whole process, we are at least initially taking the - * tack that UNW_PPC64_* map straight across to the .eh_frame column register + * tack that ppc64 regs map straight across to the .eh_frame column register * numbers. These register numbers come from gcc's source in * gcc/config/rs6000/rs6000.h * diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index a64a04e..ca06169 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,8 @@ +2007-11-09 Jose Flavio Aguilar Paulino + * UnwindPPC32.java-sh: New + * UnwindRegistersPPC32.shenum: New + * UnwindRegistersPPC64.shenum: New + 2007-10-30 Andrew Cagney * UnwindPPC64.java-sh: Rename UnwindPPC64.shjava. diff --git a/frysk-sys/lib/unwind/UnwindPPC64.java-sh b/frysk-sys/lib/unwind/UnwindPPC32.java-sh similarity index 95% copy from frysk-sys/lib/unwind/UnwindPPC64.java-sh copy to frysk-sys/lib/unwind/UnwindPPC32.java-sh index ec3e721..3d3050e 100644 --- a/frysk-sys/lib/unwind/UnwindPPC64.java-sh +++ b/frysk-sys/lib/unwind/UnwindPPC32.java-sh @@ -1,7 +1,10 @@ #!/bin/sh -e # This file is part of the program FRYSK. # -# Copyright 2007, Red Hat Inc. +# Copyright (C) 2006-2007 IBM +# +# Contributed by +# Jose Flavio Aguilar Paulino # # FRYSK is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by diff --git a/frysk-sys/lib/unwind/UnwindRegistersX86.shenum b/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum similarity index 89% copy from frysk-sys/lib/unwind/UnwindRegistersX86.shenum copy to frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum index 3e097b1..2f9997b 100644 --- a/frysk-sys/lib/unwind/UnwindRegistersX86.shenum +++ b/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum @@ -1,7 +1,10 @@ #!/bin/sh -e # This file is part of the program FRYSK. # -# Copyright 2007, Red Hat Inc. +# Copyright (C) 2006-2007 IBM +# +# Contributed by +# Jose Flavio Aguilar Paulino # # FRYSK is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -38,11 +41,11 @@ # version and license this file solely under the GPL without # exception. -# Generate a mkenum.sh table for the UNW_X86 encodings we are interested in. -cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-x86.h | awk ' - /UNW_X86/ { +# Generate a mkenum.sh table for the UNW_PPC32 encodings we are interested in. +cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc32.h | awk ' + /UNW_PPC32/ { gsub(",","",$1) - gsub("UNW_X86_", "", $1) + gsub("UNW_PPC32_", "", $1) printf "%s\n", $1 }' | awk '{printf "%s %s\n", $1, NR -1 } ' 2>&1 diff --git a/frysk-sys/lib/unwind/UnwindRegistersX86.shenum b/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum similarity index 89% copy from frysk-sys/lib/unwind/UnwindRegistersX86.shenum copy to frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum index 3e097b1..51c515f 100644 --- a/frysk-sys/lib/unwind/UnwindRegistersX86.shenum +++ b/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum @@ -1,7 +1,10 @@ #!/bin/sh -e # This file is part of the program FRYSK. # -# Copyright 2007, Red Hat Inc. +# Copyright (C) 2006-2007 IBM +# +# Contributed by +# Jose Flavio Aguilar Paulino # # FRYSK is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -38,11 +41,11 @@ # version and license this file solely under the GPL without # exception. -# Generate a mkenum.sh table for the UNW_X86 encodings we are interested in. -cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-x86.h | awk ' - /UNW_X86/ { +# Generate a mkenum.sh table for the UNW_PPC64 encodings we are interested in. +cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc64.h | awk ' + /UNW_PPC64/ { gsub(",","",$1) - gsub("UNW_X86_", "", $1) + gsub("UNW_PPC64_", "", $1) printf "%s\n", $1 }' | awk '{printf "%s %s\n", $1, NR -1 } ' 2>&1 hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 9 15:28:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 09 Nov 2007 15:28:00 -0000 Subject: [SCM] master: swagiaal: Changed CoreFileAtSignal to return core File instead of core Proc. Message-ID: <20071109152814.30608.qmail@sourceware.org> The branch, master has been updated via b0961692e1128f38fc66e23bdfa710e102b03fbb (commit) via d45e53827daa98b1110dc481207bd1d0b996eb3e (commit) from 6c44fcf8aa2f01b9cc33e1a44994baac43d02a4a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b0961692e1128f38fc66e23bdfa710e102b03fbb Author: Sami Wagiaalla Date: Fri Nov 9 09:42:24 2007 -0500 swagiaal: Changed CoreFileAtSignal to return core File instead of core Proc. frysk-core/frysk/bindir/ChangeLog +2007-11-09 Sami Wagiaalla + + Changed CoreFileAtSignal to return core File instead of core Proc. + * TestFstack.java: Updated. + frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-09 Sami Wagiaalla + + Changed CoreFileAtSignal to return core File instead of core Proc. + * TestWhereCommand.java: Updated. + frysk-core/frysk/testbed/ChangeLog +2007-11-09 Sami Wagiaalla + + * CoreFileAtSignal.java (constructCore): Now return core file + instead of proc. + * TestCoreFileAtSignal.java (testCoreFileAtSignal): Updated. + Corrected path to executable. + commit d45e53827daa98b1110dc481207bd1d0b996eb3e Author: Sami Wagiaalla Date: Thu Nov 8 15:23:56 2007 -0500 swagiaal: Corefile tests now pass exe argument. fix for 5156 frysk-core/frysk/bindir/ChangeLog +2007-11-08 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashV): Reenabled test. + Now passes executable as an argument to fstack. + frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,11 @@ +2007-11-08 Sami Wagiaalla + + * TestWhereCommand.java: Reenabled tests. + Tests now use HpdCoreFileTestBed. + * HpdTestbed.java (HpdTestbed): Changed t protected + from private. + * HpdCoreFileTestbed.java: New file. + frysk-core/frysk/testbed/ChangeLog +2007-11-08 Sami Wagiaalla + + * CoreFileAtSignal.java: Now passes executable path to core file + constructor. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 10 ++++ frysk-core/frysk/bindir/TestFstack.java | 44 ++++++++++---------- frysk-core/frysk/hpd/ChangeLog | 13 ++++++ ...ExamineCommand.java => HpdCoreFileTestbed.java} | 23 ++++++---- frysk-core/frysk/hpd/HpdTestbed.java | 2 +- frysk-core/frysk/hpd/TestWhereCommand.java | 24 ++++++----- frysk-core/frysk/testbed/ChangeLog | 12 +++++ frysk-core/frysk/testbed/CoreFileAtSignal.java | 11 +---- frysk-core/frysk/testbed/TestCoreFileAtSignal.java | 7 +++- 9 files changed, 93 insertions(+), 53 deletions(-) copy frysk-core/frysk/hpd/{TestExamineCommand.java => HpdCoreFileTestbed.java} (85%) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index efc7825..df7585f 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,13 @@ +2007-11-09 Sami Wagiaalla + + Changed CoreFileAtSignal to return core File instead of core Proc. + * TestFstack.java: Updated. + +2007-11-08 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashV): Reenabled test. + Now passes executable as an argument to fstack. + 2007-11-08 Petr Machata * fltrace.java (MyLtraceObserver.pidInfo): new method diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index ea97b26..c8d6f3c 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -39,9 +39,10 @@ package frysk.bindir; +import java.io.File; + import frysk.Config; import frysk.expunit.Expect; -import frysk.proc.Proc; import frysk.testbed.CoreFileAtSignal; import frysk.testbed.TestLib; @@ -65,88 +66,87 @@ public class TestFstack public void testBackTrace () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid() + coreFile.getAbsolutePath() }); // Just look for main. e.expect ("main"); } public void testBackTraceWithParams () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid(), + coreFile.getAbsolutePath(), "--print","params" }); e.expect ("int param1"); } public void testBackTraceWithScopes () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid(), + coreFile.getAbsolutePath(), "--print", "scopes" }); e.expect ("int one.*int two"); } public void testBackTraceWithFullpath () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid(), + coreFile.getAbsolutePath(), "--print", "fullpath" }); e.expect (Config.getRootSrcDir() + ".*" - + proc.getCommand() + + "funit-stacks" + ".c#"); } public void testBackTraceWithDashA () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid(), + coreFile.getAbsolutePath(), "-a" }); e.expect ("fourth.*int param1.*int param2.*int param3.*" + Config.getRootSrcDir() + ".*" - + proc.getCommand() + "\\.c#" + + "funit-stacks" + "\\.c#" + ".*char var1.*" + ""); } public void testBackTraceWithDashC () { - Proc proc = CoreFileAtSignal.constructCore("funit-stacks"); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), - "core." + proc.getPid(), + coreFile.getAbsolutePath(), "-c" }); e.expect ("fourth.*int param1.*int param2.*int param3.*" + Config.getRootSrcDir() + ".*" - + proc.getCommand() + "\\.c#" + + "funit-stacks" + "\\.c#" + ""); } public void testBackTraceWithDashV () { - if(unresolved(5156)){ - return; - } - Proc proc = CoreFileAtSignal.constructCore("funit-inlined"); + + File coreFile = CoreFileAtSignal.constructCore("funit-inlined"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), + coreFile.getAbsolutePath(), + Config.getPkgLibFile("funit-inlined").getAbsolutePath(), "-v", - "-a", - "core." + proc.getPid() + "-a" }); e.expect("#0 .*third[^\r\n]*\\[inline\\]" + ".*#1 .*second[^\r\n]*\\[inline\\]" diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index f56cb87..53eea58 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,16 @@ +2007-11-09 Sami Wagiaalla + + Changed CoreFileAtSignal to return core File instead of core Proc. + * TestWhereCommand.java: Updated. + +2007-11-08 Sami Wagiaalla + + * TestWhereCommand.java: Reenabled tests. + Tests now use HpdCoreFileTestBed. + * HpdTestbed.java (HpdTestbed): Changed t protected + from private. + * HpdCoreFileTestbed.java: New file. + 2007-11-08 Andrew Cagney * FocusCommand.java: Eliminate call to CLI.printUsage. diff --git a/frysk-core/frysk/hpd/TestExamineCommand.java b/frysk-core/frysk/hpd/HpdCoreFileTestbed.java similarity index 85% copy from frysk-core/frysk/hpd/TestExamineCommand.java copy to frysk-core/frysk/hpd/HpdCoreFileTestbed.java index a51fcc3..b080f5f 100644 --- a/frysk-core/frysk/hpd/TestExamineCommand.java +++ b/frysk-core/frysk/hpd/HpdCoreFileTestbed.java @@ -39,17 +39,22 @@ package frysk.hpd; +import java.io.File; + +import frysk.Config; + /** - * Test parsing and printing of types. + * For fhpd tests that are based on core files. */ - -public class TestExamineCommand - extends TestLib +public class HpdCoreFileTestbed + extends HpdTestbed { - public void testExamine () { - e = HpdTestbed.attachXXX("hpd-c"); - // volatile int_22 - e.send ("examine static_char\n"); - e.expect ("examine.*5\r\n.*" + prompt); + public HpdCoreFileTestbed(File coreFile, File exeFile, String startup) { + super(new String[] { + Config.getBinFile("fhpd").getPath (), + coreFile.toString(), + exeFile.toString() + }); + expectPrompt(startup); } } diff --git a/frysk-core/frysk/hpd/HpdTestbed.java b/frysk-core/frysk/hpd/HpdTestbed.java index 1ee6532..a6ccc73 100644 --- a/frysk-core/frysk/hpd/HpdTestbed.java +++ b/frysk-core/frysk/hpd/HpdTestbed.java @@ -63,7 +63,7 @@ public class HpdTestbed */ private final String prompt = "\\(fhpd\\) "; - private HpdTestbed(String[] command) { + protected HpdTestbed(String[] command) { super(command); TearDownExpect.add(this); TearDownProcess.add(getPid()); diff --git a/frysk-core/frysk/hpd/TestWhereCommand.java b/frysk-core/frysk/hpd/TestWhereCommand.java index 1eca089..5cd4b2d 100644 --- a/frysk-core/frysk/hpd/TestWhereCommand.java +++ b/frysk-core/frysk/hpd/TestWhereCommand.java @@ -39,7 +39,9 @@ package frysk.hpd; -import frysk.proc.Proc; +import java.io.File; + +import frysk.Config; import frysk.testbed.CoreFileAtSignal; public class TestWhereCommand extends TestLib { @@ -51,12 +53,12 @@ public class TestWhereCommand extends TestLib { } public void testFhpdVirtualStackTrace () { - if(unresolved(5156)){ - return; - } - Proc proc = CoreFileAtSignal + + File coreFile = CoreFileAtSignal .constructCore("funit-inlined"); - e = new HpdTestbed("core." + proc.getPid(), "Attached to core file.*"); + e = new HpdCoreFileTestbed(coreFile, + Config.getPkgLibFile("funit-inlined"), + "Attached to core file.*"); e.send("where\n"); e.expect("\\#0 .*third[^\\r\\n]*\\[inline\\]"); e.expect("\\#1 .*second[^\\r\\n]*\\[inline\\]"); @@ -66,12 +68,12 @@ public class TestWhereCommand extends TestLib { } public void testFhpdVirtualStackTraceWithScopes () { - if(unresolved(5156)){ - return; - } - Proc proc = CoreFileAtSignal + + File coreFile = CoreFileAtSignal .constructCore("funit-inlined"); - e = new HpdTestbed("core." + proc.getPid(), "Attached to core file.*"); + e = new HpdCoreFileTestbed(coreFile, + Config.getPkgLibFile("funit-inlined"), + "Attached to core file.*"); e.send("where -scopes\n"); e.expect(".*var3"); e.expect(".*var2"); diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 8dfcf8e..b58b912 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,15 @@ +2007-11-09 Sami Wagiaalla + + * CoreFileAtSignal.java (constructCore): Now return core file + instead of proc. + * TestCoreFileAtSignal.java (testCoreFileAtSignal): Updated. + Corrected path to executable. + +2007-11-08 Sami Wagiaalla + + * CoreFileAtSignal.java: Now passes executable path to core file + constructor. + 2007-10-26 Mark Wielaard * RegsCase.java (IA32): Don't subtract one from EFLAGS bit mask. diff --git a/frysk-core/frysk/testbed/CoreFileAtSignal.java b/frysk-core/frysk/testbed/CoreFileAtSignal.java index 97c5faa..707f5b8 100644 --- a/frysk-core/frysk/testbed/CoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/CoreFileAtSignal.java @@ -42,12 +42,9 @@ package frysk.testbed; import java.io.File; import frysk.event.Event; -import frysk.proc.Host; import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.ProcBlockAction; -import frysk.proc.ProcId; -import frysk.proc.dead.LinuxHost; import frysk.util.CoredumpAction; public class CoreFileAtSignal extends TestLib { @@ -58,7 +55,7 @@ public class CoreFileAtSignal extends TestLib { * extracts a corefile at that point, and return a Proc representing * that core file. */ - public static Proc constructCore(String process) { + public static File constructCore(String process) { final Proc ackProc = (new DaemonBlockedAtSignal(process)).getMainTask().getProc(); @@ -78,11 +75,7 @@ public class CoreFileAtSignal extends TestLib { File xtestCore = new File(coreFileName); xtestCore.deleteOnExit(); - Host lcoreHost = new LinuxHost(Manager.eventLoop, xtestCore); - - Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); - - return coreProc; + return xtestCore; } } diff --git a/frysk-core/frysk/testbed/TestCoreFileAtSignal.java b/frysk-core/frysk/testbed/TestCoreFileAtSignal.java index 9127f0a..6246f26 100644 --- a/frysk-core/frysk/testbed/TestCoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/TestCoreFileAtSignal.java @@ -39,11 +39,14 @@ package frysk.testbed; +import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; +import frysk.Config; import frysk.proc.Proc; import frysk.stack.StackFactory; +import frysk.util.Util; public class TestCoreFileAtSignal extends TestLib @@ -54,7 +57,9 @@ public class TestCoreFileAtSignal extends TestLib return; StringWriter stringWriter = new StringWriter(); - Proc coreProc = CoreFileAtSignal.constructCore(getExecPath("funit-stacks")); + File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); + + Proc coreProc = Util.getProcFromCoreFile(coreFile, Config.getPkgLibFile("funit-stacks")); StackFactory.printTaskStackTrace(new PrintWriter(stringWriter), coreProc .getMainTask(), false); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 9 17:14:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 09 Nov 2007 17:14:00 -0000 Subject: [SCM] master: Workaround PPC register problems. Message-ID: <20071109171400.25210.qmail@sourceware.org> The branch, master has been updated via 685835609bb5c145000f0dd69785b781672e7a36 (commit) via 2bec14b3c5d10a5cd3c61abe74ac2014b370ab25 (commit) from b0961692e1128f38fc66e23bdfa710e102b03fbb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 685835609bb5c145000f0dd69785b781672e7a36 Author: Andrew Cagney Date: Fri Nov 9 12:05:16 2007 -0500 Workaround PPC register problems. frysk-core/frysk/proc/ChangeLog 2007-11-09 Andrew Cagney * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Don't add "nip", "ctr", "lnk", "xer", "ccr". commit 2bec14b3c5d10a5cd3c61abe74ac2014b370ab25 Author: Andrew Cagney Date: Fri Nov 9 11:41:26 2007 -0500 Stop Input.stringValue() including arguments. frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * Input.java: Eliminate the sentinel. (remove(int)): Delete. (removeFirst()): New. (removeLast()): New. (stringValue()): Handle truncated input. * ParameterizedCommand.java: Update. * TestInput.java (testRemoveLast()): new. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 10 +++++ frysk-core/frysk/hpd/Input.java | 43 ++++++++++++++--------- frysk-core/frysk/hpd/ParameterizedCommand.java | 6 ++-- frysk-core/frysk/hpd/TestInput.java | 43 +++++++++++++---------- frysk-core/frysk/proc/ChangeLog | 5 +++ frysk-core/frysk/proc/PPCBankRegisters.java | 12 ++++--- 6 files changed, 75 insertions(+), 44 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 53eea58..2d0e721 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,13 @@ +2007-11-09 Andrew Cagney + + * Input.java: Eliminate the sentinel. + (remove(int)): Delete. + (removeFirst()): New. + (removeLast()): New. + (stringValue()): Handle truncated input. + * ParameterizedCommand.java: Update. + * TestInput.java (testRemoveLast()): new. + 2007-11-09 Sami Wagiaalla Changed CoreFileAtSignal to return core File instead of core Proc. diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java index 0d822cf..1b025b5 100644 --- a/frysk-core/frysk/hpd/Input.java +++ b/frysk-core/frysk/hpd/Input.java @@ -69,8 +69,6 @@ class Input { private final String fullCommand; private final String set; private final String action; - // The tokens include a SENTINEL pointing at the end of the - // buffer. private final List tokens; private Input(String fullCommand, String set, String action, List tokens) { @@ -100,7 +98,7 @@ class Input { if (tempToken.startsWith("[") && tempToken.endsWith("]")) { // if p/t-set set = tempToken; - remove(0); + removeFirst(); } else { set = null; } @@ -119,7 +117,10 @@ class Input { * Return the N'th parameter. */ String parameter(int n) { - return token(n).value; + if (n < 0 || n > size()) + return null; + else + return token(n).value; } /** @@ -139,32 +140,42 @@ class Input { * string. */ String stringValue() { - return fullCommand.substring(token(0).start); + if (size() > 0) + return fullCommand.substring(token(0).start, + token(size()-1).end); + else + return ""; } /** - * Return the N'th token. - * - * The end-of-tokens is denoted by a sentinel (Token.value == - * NULL) that provides the position of the end-of-buffer. + * Return the N'th token; or null. */ Token token(int n) { - return (Token)tokens.get(n); + if (n < 0 || n >= size()) + return null; + else + return (Token)tokens.get(n); } /** - * Remove the N'th parameter. + * Remove the first token. */ - void remove(int n) { - tokens.remove(n); + void removeFirst() { + tokens.remove(0); + } + + /** + * Remove the last token. + */ + void removeLast() { + tokens.remove(size() - 1); } /** * Return the number or size of the parameter list. */ int size() { - // Do not count the SENTINEL. - return tokens.size() - 1; + return tokens.size(); } public String toString() { @@ -253,8 +264,6 @@ class Input { if (start >= 0) { tokens.add(new Token(token.toString(), start, str.length())); } - // Add a SENTINEL pointing at the end of the input string. - tokens.add(new Token(null, str.length(), str.length())); return tokens; } } diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index be08aa0..b598809 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -95,7 +95,7 @@ abstract class ParameterizedCommand extends Command { + commandOption.parameter); if (eq == -1) { argument = input.parameter(index); - input.remove(index); + input.removeLast(); } else { argument = option.substring(eq + 1); } @@ -123,7 +123,7 @@ abstract class ParameterizedCommand extends Command { throw new InvalidCommandException ("Invalid option " + input.parameter(currentIndex + 1)); - input.remove(currentIndex); + input.removeLast(); break; } if (string.equals("-help")) { @@ -133,7 +133,7 @@ abstract class ParameterizedCommand extends Command { if (string.charAt(0) != '-') continue; handleOption(input, string, currentIndex + 1, options); - input.remove(currentIndex); + input.removeLast(); } interpret(cli, input, options); } diff --git a/frysk-core/frysk/hpd/TestInput.java b/frysk-core/frysk/hpd/TestInput.java index fd3769f..c8af94a 100644 --- a/frysk-core/frysk/hpd/TestInput.java +++ b/frysk-core/frysk/hpd/TestInput.java @@ -53,7 +53,7 @@ public class TestInput extends TestLib { assertEquals("size", results.length, input.size()); assertEquals("set", set, input.getSet()); assertEquals("stringArrayValue", results, input.stringArrayValue()); - for (int i = 0; i < results.length + 1; i++) { + for (int i = 0; i < results.length; i++) { assertEquals("parameter " + i, i == results.length ? null : results[i], input.parameter(i)); @@ -73,14 +73,12 @@ public class TestInput extends TestLib { } private void check(String input, String[] results) { - int[] starts = new int[results.length + 1]; - int[] ends = new int[results.length + 1]; + int[] starts = new int[results.length]; + int[] ends = new int[results.length]; for (int i = 0; i < results.length; i++) { starts[i] = input.indexOf(results[i]); ends[i] = starts[i] + results[i].length(); } - starts[results.length] = input.length(); - ends[results.length] = input.length(); check(new Input(input), null, results, starts, ends); } @@ -106,6 +104,13 @@ public class TestInput extends TestLib { check(input, new String[0]); } + public void testRemoveLast() { + Input input = new Input("p0 p1 p2 p3"); + input.removeLast(); + assertEquals("stringValue", "p0 p1 p2", input.stringValue()); + assertEquals("size", 3, input.size()); + } + public void testEmpty() { check("", new String[0]); } @@ -126,54 +131,54 @@ public class TestInput extends TestLib { // Remember, \" is one character. check(new Input("1 \" 2 \" 3"), null, new String[] { "1", " 2 ", "3" }, - new int[] { 0, 2, 8, 9 }, - new int[] { 1, 7, 9, 9 }); + new int[] { 0, 2, 8 }, + new int[] { 1, 7, 9 }); } public void testDoubleQuoteInToken() { // Remember, \" is one character. check(new Input(" a\" \"b "), null, new String[] { "a b" }, - new int[] { 1, 7 }, - new int[] { 6, 7 }); + new int[] { 1 }, + new int[] { 6 }); } public void testEmptyQuote() { // Remember, \" is one character. check(new Input("\"\""), null, new String[] { "" }, - new int[] { 0, 2 }, - new int[] { 2, 2 }); + new int[] { 0 }, + new int[] { 2 }); } public void testEmptyQuoteBetweenParameters() { // Remember, \" is one character. check(new Input("1 \"\" 3"), null, new String[] {"1", "", "3"}, - new int[] { 0, 2, 5, 6 }, - new int[] { 1, 4, 6, 6 }); + new int[] { 0, 2, 5 }, + new int[] { 1, 4, 6 }); } public void testEscapedQuote() { // Remember, \" is one character. check(new Input("\\\""), null, new String[] { "\"" }, - new int[] { 0, 2 }, - new int[] { 2, 2 }); + new int[] { 0 }, + new int[] { 2 }); } public void testSet() { check(new Input(" [1.2] "), "[1.2]", new String[0], - new int[] { 7 }, - new int[] { 7 }); + new int[0], + new int[0]); } public void testSetAndParameters() { check(new Input(" [1.2] a b"), "[1.2]", new String[] { "a", "b" }, - new int[] { 7, 9, 10 }, - new int[] { 8, 10, 10 }); + new int[] { 7, 9 }, + new int[] { 8, 10 }); } private void checkInvalidCommandException(String input) { diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 357707b..8d9b128 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-11-09 Andrew Cagney + + * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Don't add "nip", + "ctr", "lnk", "xer", "ccr". + 2007-11-09 Jose Flavio Aguilar Paulino * IsaPowerPC.java: Updated it to also support Power32. diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java index 22b43a9..1eecc0f 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/proc/PPCBankRegisters.java @@ -239,13 +239,15 @@ public class PPCBankRegisters { .add("gpr29") .add("gpr30") .add("gpr31") - .add("nip") + // XXX: No such register on PPC32 + //.add("nip") .add("msr") .add("orig_r3") - .add("ctr") - .add("lnk") - .add("xer") - .add("ccr") + // XXX: No such register on PPC32 + //.add("ctr") + //.add("lnk") + //.add("xer") + //.add("ccr") // No such register on ppc64. // .add("mq")) .add("trap") hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 9 17:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 09 Nov 2007 17:54:00 -0000 Subject: [SCM] master: Fix completion of: alias Message-ID: <20071109175445.21759.qmail@sourceware.org> The branch, master has been updated via 1e79ab9a46d499104cc07e265842e5b075a90a3b (commit) from 685835609bb5c145000f0dd69785b781672e7a36 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1e79ab9a46d499104cc07e265842e5b075a90a3b Author: Andrew Cagney Date: Fri Nov 9 12:53:08 2007 -0500 Fix completion of: alias frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * MultiLevelCommand.java: Handle null tokens. * ParameterizedCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 3 +++ frysk-core/frysk/hpd/MultiLevelCommand.java | 13 +++++++------ frysk-core/frysk/hpd/ParameterizedCommand.java | 6 +++++- 3 files changed, 15 insertions(+), 7 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 2d0e721..d03ce52 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,8 @@ 2007-11-09 Andrew Cagney + * MultiLevelCommand.java: Handle null tokens. + * ParameterizedCommand.java: Ditto. + * Input.java: Eliminate the sentinel. (remove(int)): Delete. (removeFirst()): New. diff --git a/frysk-core/frysk/hpd/MultiLevelCommand.java b/frysk-core/frysk/hpd/MultiLevelCommand.java index cd13717..793dcc2 100644 --- a/frysk-core/frysk/hpd/MultiLevelCommand.java +++ b/frysk-core/frysk/hpd/MultiLevelCommand.java @@ -123,14 +123,14 @@ public abstract class MultiLevelCommand extends Command { Input.Token incomplete = input.token(0); // The cursor is past this token. Find this level's // sub-command and pass the completion problem on to it. - if (incomplete.value != null && cursor > incomplete.end) { + if (incomplete != null && cursor > incomplete.end) { Command subCommand = (Command)subCommands.get(incomplete.value); if (subCommand == null) return -1; // give up return subCommand.complete(cli, input.accept(), cursor, candidates); } - if (incomplete.value == null) + if (incomplete == null) candidates.addAll(subCommands.keySet()); else { for (Iterator i = subCommands.keySet().iterator(); i.hasNext(); ) { @@ -141,9 +141,10 @@ public abstract class MultiLevelCommand extends Command { } // If there's only one token, append a trailing blank so that // things are ready for the next token. - if (candidates.size() == 1) { - candidates.set(0, ((String)candidates.get(0)) + " "); - } - return incomplete.start; + CompletionFactory.padSingleCandidate(candidates); + if (incomplete == null) + return cursor; + else + return incomplete.start; } } diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index b598809..558e367 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -174,7 +174,11 @@ abstract class ParameterizedCommand extends Command { * Complete the input. */ final int complete(CLI cli, Input input, int cursor, List candidates) { - int start = input.token(0).start; + int start; + if (input.size() == 0) + start = cursor; + else + start = input.token(0).start; int pos = complete(cli, cli.getCommandPTSet(input), input.stringValue(), cursor - start, candidates); if (pos >= 0) { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 9 18:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 09 Nov 2007 18:19:00 -0000 Subject: [SCM] master: Fix typo in changelog. Message-ID: <20071109181956.13887.qmail@sourceware.org> The branch, master has been updated via fdb837f1918543acf84ece7806c0900798fd27d2 (commit) via 167c2efe1c4c8a23f92698d544fd1a142d02e3fb (commit) from 1e79ab9a46d499104cc07e265842e5b075a90a3b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fdb837f1918543acf84ece7806c0900798fd27d2 Author: Andrew Cagney Date: Fri Nov 9 13:18:33 2007 -0500 Fix typo in changelog. commit 167c2efe1c4c8a23f92698d544fd1a142d02e3fb Author: Andrew Cagney Date: Fri Nov 9 13:01:13 2007 -0500 PrintCommand extends ParameterizedCommand. frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * TestParameterizedCommand.java (check(...)): Add check for input.stringValue(). * PrintCommand.java: Extend ParameterizedCommand. * CommandOption.java (parseFormat(String)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 + frysk-core/frysk/hpd/CommandOption.java | 27 ++++ frysk-core/frysk/hpd/PrintCommand.java | 146 ++++++++------------ frysk-core/frysk/hpd/TestParameterizedCommand.java | 25 ++-- 4 files changed, 105 insertions(+), 98 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index d03ce52..f46f0fa 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,10 @@ 2007-11-09 Andrew Cagney + * TestParameterizedCommand.java (check(...)): Add check for + input.stringValue(). + * PrintCommand.java: Extend ParameterizedCommand. + * CommandOption.java (FormatOption): New. + * MultiLevelCommand.java: Handle null tokens. * ParameterizedCommand.java: Ditto. diff --git a/frysk-core/frysk/hpd/CommandOption.java b/frysk-core/frysk/hpd/CommandOption.java index a830779..5f795a1 100644 --- a/frysk-core/frysk/hpd/CommandOption.java +++ b/frysk-core/frysk/hpd/CommandOption.java @@ -39,6 +39,8 @@ package frysk.hpd; +import frysk.value.Format; + /** * A command option; optionally parameterized. */ @@ -82,5 +84,30 @@ abstract class CommandOption { ("option -" + longName + " requires yes or no parameter"); } + /** + * Template option; parse a format. + */ + static abstract class FormatOption extends CommandOption { + FormatOption() { + super("format", "print format", "d|o|x|t"); + } + void parse(String argument, Object options) { + Format format; + if (argument.compareTo("d") == 0) + format = Format.DECIMAL; + else if (argument.compareTo("o") == 0) + format = Format.OCTAL; + else if (argument.compareTo("x") == 0) + format = Format.HEXADECIMAL; + else if (argument.compareTo("t") == 0) + format = Format.BINARY; + else + throw new InvalidCommandException("unrecognized format: " + + argument); + set(options, format); + } + abstract void set(Object options, Format format); + } + abstract void parse(String argument, Object options); } diff --git a/frysk-core/frysk/hpd/PrintCommand.java b/frysk-core/frysk/hpd/PrintCommand.java index 71a1d47..e7b62ed 100644 --- a/frysk-core/frysk/hpd/PrintCommand.java +++ b/frysk-core/frysk/hpd/PrintCommand.java @@ -47,16 +47,35 @@ import frysk.value.PointerType; import frysk.value.Type; import java.util.List; -class PrintCommand - extends Command -{ +class PrintCommand extends ParameterizedCommand { + private class Options { + Format format = Format.NATURAL; + boolean dumpTree = false; + } + Object options() { + return new Options(); + } + PrintCommand() { - this("print", "Evaluate and display the value of a program variable or expression.", - "print expression [-name] [-index] [-format d|o|x|t]", "The print command evaluates and displays an expression. The debugger\n" + - "interprets the expression by looking up the value(s) associated with\n" + - "each symbol and applying the operators. The result of an expression may\n" + - "be a scalar value or an aggregate (array, array slice, record, or\n" + - "structure."); + this("print", + "Evaluate and display the value of an expression.", + "print expression [-format d|o|x|t]", + ("The print command evaluates and displays an expression. The" + + " debugger interprets the expression by looking up the" + + " value(s) associated with each symbol and applying the" + + " operators. The result of an expression may be a scalar" + + " value or an aggregate (array, array slice, record, or" + + " structure.")); + add(new CommandOption.FormatOption() { + void set(Object options, Format format) { + ((Options)options).format = format; + } + }); + add(new CommandOption("dump-tree", "dump the expression AST") { + void parse(String arg, Object options) { + ((Options)options).dumpTree = true; + } + }); } PrintCommand (String name, String description, String syntax, @@ -64,106 +83,57 @@ class PrintCommand super (name, description, syntax, full); } - public void interpret(CLI cli, Input cmd) { - PTSet ptset = cli.getCommandPTSet(cmd); - boolean dumpTree = false; - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } - if (cmd.size() == 0 - || ((cmd.parameter(0)).equals("-help"))) { - cli.printUsage(cmd); - return; - } - // Skip set specification, if any. XXX: Should do this after - // parameter parsing. - String sInput = cmd.stringValue(); - - Format format = null; - for (int i = 0; i < cmd.size(); i++) { - if ((cmd.parameter(i)).equals("-format")) { - i += 1; - String arg = cmd.parameter(i); - if (arg.compareTo("d") == 0) - format = Format.DECIMAL; - else if (arg.compareTo("o") == 0) - format = Format.OCTAL; - else if (arg.compareTo("x") == 0) - format = Format.HEXADECIMAL; - else if (arg.compareTo("t") == 0) - format = Format.BINARY; - else - throw new InvalidCommandException - ("unrecognized format: " + arg); - } - else if ((cmd.parameter(i)).equals("-dump-tree")) - dumpTree = true; - } - if (format != null) - sInput = sInput.substring(0,sInput.indexOf("-format")); - else - format = Format.NATURAL; - if (dumpTree == true) - sInput = sInput.substring(0,sInput.indexOf("-dump-tree")); + public void interpret(CLI cli, Input input, Object o) { + if (input.size() == 0) + throw new InvalidCommandException("missing expression"); + Options options = (Options)o; + PTSet ptset = cli.getCommandPTSet(input); - if (sInput.length() == 0) { - cli.printUsage(cmd); - return; - } - - if (cmd.getAction().compareTo("assign") == 0) { + String sInput = input.stringValue(); + if (input.getAction().compareTo("assign") == 0) { int i = sInput.indexOf(' '); if (i == -1) { - cli.printUsage(cmd); - return; + throw new InvalidCommandException("bad expression XXX"); } sInput = sInput.substring(0, i) + "=" + sInput.substring(i); } Value result = null; Iterator taskDataIter = ptset.getTaskData(); - boolean doWithoutTask = !taskDataIter.hasNext(); - while (doWithoutTask || taskDataIter.hasNext()) { - TaskData td = null; + do { Task task = null; - if (!doWithoutTask) { - td = (TaskData)taskDataIter.next(); + if (taskDataIter.hasNext()) { + TaskData td = (TaskData)taskDataIter.next(); task = td.getTask(); - cli.outWriter.println("[" + td.getParentID() + "." + td.getID() - + "]\n"); + cli.outWriter.print("["); + cli.outWriter.print(td.getParentID()); + cli.outWriter.print("."); + cli.outWriter.print(td.getID()); + cli.outWriter.println("]"); } - doWithoutTask = false; try { - result = cli.parseValue(task, sInput, dumpTree); + result = cli.parseValue(task, sInput, options.dumpTree); } catch (RuntimeException nnfe) { cli.addMessage(nnfe.getMessage(), Message.TYPE_ERROR); continue; } - // XXX: Would it be better to just always have some sort - // of fake task? - if (task == null) - result.toPrint(cli.outWriter, null, format); - else { - Type t = result.getType(); - if (t instanceof PointerType) { - cli.outWriter.print("("); - t.toPrint(cli.outWriter); - cli.outWriter.print(") "); - } - result.toPrint(cli.outWriter, task.getMemory(), format); + Type t = result.getType(); + if (t instanceof PointerType) { + cli.outWriter.print("("); + t.toPrint(cli.outWriter); + cli.outWriter.print(") "); } + result.toPrint(cli.outWriter, + task == null ? null : task.getMemory(), + options.format); cli.outWriter.println(); - } - if (result == null) { - cli.addMessage("Symbol \"" + sInput + "\" is not found in the current context.", - Message.TYPE_ERROR); - } + } while (taskDataIter.hasNext()); } - int complete(CLI cli, Input input, int cursor, List candidates) { - return CompletionFactory.completeFocusedExpression(cli, input, cursor, - candidates); + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, candidates); } } diff --git a/frysk-core/frysk/hpd/TestParameterizedCommand.java b/frysk-core/frysk/hpd/TestParameterizedCommand.java index 00edef9..f625adb 100644 --- a/frysk-core/frysk/hpd/TestParameterizedCommand.java +++ b/frysk-core/frysk/hpd/TestParameterizedCommand.java @@ -97,10 +97,12 @@ public class TestParameterizedCommand extends TestLib { command.interpret(null, input); } - private void check(String string, String[] parameters, + private void check(String string, String stringValue, + String[] parameters, boolean parsedOption, String argument) { parse(string); assertEquals("input size", parameters.length, input.size()); + assertEquals("stringValue", stringValue, input.stringValue()); assertEquals("parsedOption", this.parsedOption, parsedOption); assertEquals("argument", this.argument, argument); for (int i = 0; i < parameters.length; i++) { @@ -111,39 +113,42 @@ public class TestParameterizedCommand extends TestLib { } public void testDashDash() { - check("parser --", new String[0], false, null); + check("parser --", "", new String[0], false, null); } public void testRegular() { - check("parser argument", new String[] { "argument" }, false, null); + check("parser argument", "argument", + new String[] { "argument" }, false, null); } public void testRegularDashDash() { - check("parser argument --", new String[] { "argument" }, false, null); + check("parser argument --", "argument", + new String[] { "argument" }, false, null); } public void testOption() { - check("parser -opt", new String[0], true, null); + check("parser -opt", "", new String[0], true, null); } public void testOptionAfterDashDash() { - check("parser -- -opt", new String[0], true, null); + check("parser -- -opt", "", new String[0], true, null); } public void testOptionBeforeDashDash() { - check("parser -opt --", new String[] { "-opt" }, false, null); + check("parser -opt --", "-opt", new String[] { "-opt" }, false, null); } public void testOptionWithArg() { - check("parser -arg argument", new String[0], true, "argument"); + check("parser -arg argument", "", new String[0], true, "argument"); } public void testOptionWithArgAfterDashDash() { - check("parser -- -arg argument", new String[0], true, "argument"); + check("parser -- -arg argument", "", new String[0], true, "argument"); } public void testOptionWithArgBeforeDashDash() { - check("parser -arg argument --", new String[] { "-arg", "argument" }, + check("parser -arg argument --", "-arg argument", + new String[] { "-arg", "argument" }, false, null); } hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 9 19:21:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 09 Nov 2007 19:21:00 -0000 Subject: [SCM] master: swagiaal: Prepare CompositeType for support of static memebers. Message-ID: <20071109192140.11380.qmail@sourceware.org> The branch, master has been updated via 0f6d423b274fdbde0e75003e468a041032284a8f (commit) via 23954c1bc36265e03cb5c67b4dab931a5b044ba1 (commit) via a3c6407966e079ff93d3b6b9ff1c77a1537210db (commit) from fdb837f1918543acf84ece7806c0900798fd27d2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0f6d423b274fdbde0e75003e468a041032284a8f Author: Sami Wagiaalla Date: Fri Nov 9 13:29:01 2007 -0500 swagiaal: Prepare CompositeType for support of static memebers. frysk-core/frysk/debuginfo/ChangeLog +2007-11-09 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): New test. + frysk-core/frysk/scopes/ChangeLog @@ -1,3 +1,7 @@ +2007-11-09 Sami Wagiaalla + + * Composite.java (getType): New function. + frysk-core/frysk/value/ChangeLog +2007-11-09 Sami Wagiaalla + + * CompositeType.java (addStaticMember): New function. + (Member.Member): Moved Access and inheretence arguments + from DynamicMember to this constructor. + commit 23954c1bc36265e03cb5c67b4dab931a5b044ba1 Author: Sami Wagiaalla Date: Tue Nov 6 15:52:59 2007 -0500 swagiaal: Created class StaticMember in CompositeType frysk-core/frysk/value/ChangeLog +2007-11-06 Sami Wagiaalla + + * CompositeType.java: Renamed Member to DynamicMember. + Created StaticMember + Created Member. + DynamicMember and StaticMember now extends Member. + commit a3c6407966e079ff93d3b6b9ff1c77a1537210db Author: Sami Wagiaalla Date: Tue Nov 6 11:13:40 2007 -0500 swagiaal: Renamed Dwfl::getDie to Dwfl::getCompilationUnit. frysk-core/frysk/debuginfo/ChangeLog +2007-11-06 Sami Wagiaalla + + Renamed Dwfl::getDie to Dwfl::getCompilationUnit. + * gen-type-expect-tests.py: Updated. + * TestTypeEntry.java: Updated. + * TestDebugInfoStackTrace.java: Updated. + * DebugInfoFrame.java: Updated. + * DebugInfo.java: Updated. + frysk-core/frysk/scopes/ChangeLog +2007-11-06 Sami Wagiaalla + + Renamed Dwfl::getDie to Dwfl::getCompilationUnit. + * TestScopeFactory.java: Updated. + frysk-sys/lib/dwfl/ChangeLog +2007-11-06 Sami Wagiaalla + + * Dwfl.java: Renamed getDie to getCompilationUnit. + * TestDwfl.java: Updated. + * TestDwarfDie.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 13 +++ frysk-core/frysk/debuginfo/DebugInfo.java | 4 +- frysk-core/frysk/debuginfo/DebugInfoFrame.java | 4 +- frysk-core/frysk/debuginfo/TestFrameDebugInfo.java | 4 +- frysk-core/frysk/debuginfo/TestTypeEntry.java | 56 ++++++++++++- .../frysk/debuginfo/gen-type-expect-tests.py | 2 +- ...pes-class-static.cxx => funit-class-static.cxx} | 8 +- frysk-core/frysk/scopes/ChangeLog | 9 ++ frysk-core/frysk/scopes/Composite.java | 5 + frysk-core/frysk/scopes/TestScopeFactory.java | 2 +- frysk-core/frysk/value/ChangeLog | 13 +++ frysk-core/frysk/value/CompositeType.java | 86 ++++++++++++++------ frysk-sys/lib/dwfl/ChangeLog | 6 ++ frysk-sys/lib/dwfl/Dwfl.java | 2 +- frysk-sys/lib/dwfl/TestDwarfDie.java | 2 +- frysk-sys/lib/dwfl/TestDwfl.java | 2 +- 16 files changed, 172 insertions(+), 46 deletions(-) copy frysk-core/frysk/pkglibdir/{funit-cpp-scopes-class-static.cxx => funit-class-static.cxx} (62%) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 956665f..0f09d35 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,7 +1,20 @@ +2007-11-09 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): New test. + 2007-11-07 Stan Cox * gen-type-expect-tests.py (j.start_test): Only unresolve value tests. +2007-11-06 Sami Wagiaalla + + Renamed Dwfl::getDie to Dwfl::getCompilationUnit. + * gen-type-expect-tests.py: Updated. + * TestTypeEntry.java: Updated. + * TestDebugInfoStackTrace.java: Updated. + * DebugInfoFrame.java: Updated. + * DebugInfo.java: Updated. + 2007-11-05 Teresa Thomas * PieceLocation.java (getAddress): Edit exception message. diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index 5d29be9..6768379 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -94,7 +94,7 @@ public class DebugInfo { public int complete (DebugInfoFrame frame, String buffer, int cursor, List candidates) { long pc = frame.getAdjustedAddress(); Dwfl dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; String token = ""; @@ -153,7 +153,7 @@ public class DebugInfo { public String what(DebugInfoFrame frame, String sInput) { long pc = frame.getAdjustedAddress(); Dwfl dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); if (bias == null) throw new RuntimeException("No symbol table is available."); diff --git a/frysk-core/frysk/debuginfo/DebugInfoFrame.java b/frysk-core/frysk/debuginfo/DebugInfoFrame.java index 724c89b..5a60f7e 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoFrame.java +++ b/frysk-core/frysk/debuginfo/DebugInfoFrame.java @@ -89,7 +89,7 @@ public class DebugInfoFrame extends FrameDecorator { if (scope == null) { Dwfl dwfl = DwflCache.getDwfl(this.getTask()); - DwflDieBias bias = dwfl.getDie(getAdjustedAddress()); + DwflDieBias bias = dwfl.getCompilationUnit(getAdjustedAddress()); if (bias != null) { @@ -135,7 +135,7 @@ public class DebugInfoFrame extends FrameDecorator { this.inlinedSubprograms = new LinkedList(); Dwfl dwfl = DwflCache.getDwfl(this.getTask()); - DwflDieBias bias = dwfl.getDie(getAdjustedAddress()); + DwflDieBias bias = dwfl.getCompilationUnit(getAdjustedAddress()); if (bias != null) { diff --git a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java index 34aec18..bee94f5 100644 --- a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java +++ b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java @@ -124,7 +124,7 @@ public class TestFrameDebugInfo Frame frame = StackFactory.createFrame(task); Dwfl dwfl = DwflCache.getDwfl(task); - DwflDieBias bias = dwfl.getDie(frame.getAdjustedAddress()); + DwflDieBias bias = dwfl.getCompilationUnit(frame.getAdjustedAddress()); DwarfDie[] scopes = bias.die.getScopes(frame.getAdjustedAddress() - bias.bias); assertEquals("number of scopes", 3, scopes.length); @@ -158,7 +158,7 @@ public class TestFrameDebugInfo Frame frame = StackFactory.createFrame(task); Dwfl dwfl = DwflCache.getDwfl(task); - DwflDieBias bias = dwfl.getDie(frame.getAdjustedAddress()); + DwflDieBias bias = dwfl.getCompilationUnit(frame.getAdjustedAddress()); DwarfDie[] scopes = bias.die.getScopes(frame.getAdjustedAddress() - bias.bias); scopes = scopes[0].getScopesDie(); diff --git a/frysk-core/frysk/debuginfo/TestTypeEntry.java b/frysk-core/frysk/debuginfo/TestTypeEntry.java index fe40d78..b02a08c 100644 --- a/frysk-core/frysk/debuginfo/TestTypeEntry.java +++ b/frysk-core/frysk/debuginfo/TestTypeEntry.java @@ -39,6 +39,7 @@ package frysk.debuginfo; +import java.util.Iterator; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -50,7 +51,9 @@ import frysk.dwfl.DwflCache; import frysk.proc.Task; import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.TestLib; +import frysk.value.CompositeType; import frysk.value.Type; +import frysk.value.CompositeType.Member; public class TestTypeEntry extends TestLib @@ -89,7 +92,7 @@ public class TestTypeEntry DwarfDie varDie; long pc = frame.getAdjustedAddress(); dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; allDies = die.getScopes(pc - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); @@ -120,7 +123,7 @@ public class TestTypeEntry DwarfDie varDie; long pc = frame.getAdjustedAddress(); dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; allDies = die.getScopes(pc - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); @@ -151,7 +154,7 @@ public class TestTypeEntry DwarfDie varDie; long pc = frame.getAdjustedAddress(); dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; allDies = die.getScopes(pc - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); @@ -191,7 +194,7 @@ public class TestTypeEntry DwarfDie varDie; long pc = frame.getAdjustedAddress(); dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; allDies = die.getScopes(pc - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); @@ -226,7 +229,7 @@ public class TestTypeEntry DwarfDie varDie; long pc = frame.getAdjustedAddress(); dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); DwarfDie die = bias.die; allDies = die.getScopes(pc - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); @@ -239,4 +242,47 @@ public class TestTypeEntry assertTrue("testClass " + expect[i].symbol, m.matches()); } } + + public void testClassWithStaticMembers () { + + if(unresolved(5301)){ + return; + } + + Task task = (new DaemonBlockedAtSignal("funit-class-static")).getMainTask(); + + DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); + + CompositeType compositeType = (CompositeType) frame.getSubprogram().getComposite().getType(); + + assertNotNull("Retrieved type successfully", compositeType); + + Iterator iterator = compositeType.iterator(); + + while(iterator.hasNext()){ + System.out.println("TestTypeEntry.testClassWithStaticMembers() " + ((Member)iterator.next()).getName() + "\n"); + } + + assertTrue(false); + +// Dwfl dwfl; +// DwarfDie[] allDies; +// Type varType; +// DwarfDie varDie; +// long pc = frame.getAdjustedAddress(); +// dwfl = DwflCache.getDwfl(frame.getTask()); +// DwflDieBias bias = dwfl.getCompilationUnit(pc); +// DwarfDie die = bias.die; +// allDies = die.getScopes(pc - bias.bias); +// TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); +// +// for (int i = 0; i < expect.length; i++) { +// varDie = die.getScopeVar(allDies, expect[i].symbol); +// varType = typeEntry.getType(varDie.getType()); +// Pattern p = Pattern.compile(expect[i].output, Pattern.DOTALL); +// Matcher m = p.matcher(varType.toPrint()); +// assertTrue("testClass " + expect[i].symbol, m.matches()); +// } + } + } diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 9bb9e1b..7b6f526 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -96,7 +96,7 @@ public class %s extends TestLib { frame = DebugInfoStackFactory.createDebugInfoStackTrace(task); long pc = frame.getAdjustedAddress(); Dwfl dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getDie(pc); + DwflDieBias bias = dwfl.getCompilationUnit(pc); die = bias.die; allDies = die.getScopes(pc - bias.bias); typeEntry = new TypeEntry(frame.getTask().getISA()); diff --git a/frysk-core/frysk/pkglibdir/funit-cpp-scopes-class-static.cxx b/frysk-core/frysk/pkglibdir/funit-class-static.cxx similarity index 62% copy from frysk-core/frysk/pkglibdir/funit-cpp-scopes-class-static.cxx copy to frysk-core/frysk/pkglibdir/funit-class-static.cxx index 7889cea..c086f74 100644 --- a/frysk-core/frysk/pkglibdir/funit-cpp-scopes-class-static.cxx +++ b/frysk-core/frysk/pkglibdir/funit-class-static.cxx @@ -1,12 +1,12 @@ #include #include -int first = 11; - class A{ - static const int first = 22; //*this* one should be found + static int static_i; + int i; public: - static void crash(); + static void static_crash(); + void crash(); }; void A::crash(){ diff --git a/frysk-core/frysk/scopes/ChangeLog b/frysk-core/frysk/scopes/ChangeLog index 66ac318..499343f 100644 --- a/frysk-core/frysk/scopes/ChangeLog +++ b/frysk-core/frysk/scopes/ChangeLog @@ -1,3 +1,12 @@ +2007-11-09 Sami Wagiaalla + + * Composite.java (getType): New function. + +2007-11-06 Sami Wagiaalla + + Renamed Dwfl::getDie to Dwfl::getCompilationUnit. + * TestScopeFactory.java: Updated. + 2007-11-05 Sami Wagiaalla * TestScopes.java (testGetOriginalStaticSubprogram): New test. diff --git a/frysk-core/frysk/scopes/Composite.java b/frysk-core/frysk/scopes/Composite.java index 4e7cd1b..f344ce3 100644 --- a/frysk-core/frysk/scopes/Composite.java +++ b/frysk-core/frysk/scopes/Composite.java @@ -41,6 +41,7 @@ package frysk.scopes; import frysk.debuginfo.TypeEntry; import frysk.value.CompositeType; +import frysk.value.Type; import lib.dwfl.DwarfDie; /** @@ -60,4 +61,8 @@ public class Composite extends Scope { public String getName(){ return this.getDie().getName(); } + + public Type getType(){ + return this.compositeType; + } } diff --git a/frysk-core/frysk/scopes/TestScopeFactory.java b/frysk-core/frysk/scopes/TestScopeFactory.java index c4e9bde..d7e2ec8 100644 --- a/frysk-core/frysk/scopes/TestScopeFactory.java +++ b/frysk-core/frysk/scopes/TestScopeFactory.java @@ -59,7 +59,7 @@ public class TestScopeFactory Frame frame = StackFactory.createFrame(task); Dwfl dwfl = DwflCache.getDwfl(task); - DwflDieBias bias = dwfl.getDie(frame.getAdjustedAddress()); + DwflDieBias bias = dwfl.getCompilationUnit(frame.getAdjustedAddress()); DwarfDie[] scopes = bias.die.getScopes(frame.getAdjustedAddress() - bias.bias); TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index e696918..0a2c650 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,16 @@ +2007-11-09 Sami Wagiaalla + + * CompositeType.java (addStaticMember): New function. + (Member.Member): Moved Access and inheretence arguments + from DynamicMember to this constructor. + +2007-11-09 Sami Wagiaalla + + * CompositeType.java: Renamed Member to DynamicMember. + Created StaticMember + Created Member. + DynamicMember and StaticMember now extends Member. + 2007-11-08 Teresa Thomas * Type.java (index): Make operation commutative. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 1ce5d73..059351b 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -52,30 +52,52 @@ import java.io.PrintWriter; public abstract class CompositeType extends Type { + + public static class Member{ + final int index; + final String name; + final Type type; + final Access access; + final boolean inheritance; + + public Member(int index, String name, Type type, Access access, + boolean inheritance) { + this.index = index; + this.type = type; + this.name = name; + this.access = access; + this.inheritance = inheritance; + } + + public String getName(){ + return this.name; + } + } + + static class StaticMember extends Member{ + + public StaticMember(int index, String name, Type type, Access access, + boolean inheritance) { + super(index, name, type, access, inheritance); + } + + } + /** * Class members; package private. */ - static class Member { + static class DynamicMember extends Member{ // XXX: To keep getValue working. - final int index; - final String name; - final Type type; final long offset; - final Access access; final int bitOffset; final int bitSize; - final boolean inheritance; - Member(int index, String name, Type type, long offset, + DynamicMember(int index, String name, Type type, long offset, Access access, int bitOffset, int bitSize, boolean inheritance) { - this.index = index; - this.type = type; - this.name = name; + super(index, name, type, access, inheritance); this.offset = offset; - this.access = access; this.bitOffset = bitOffset; this.bitSize = bitSize; - this.inheritance = inheritance; } public String toString() { return ("{" @@ -106,8 +128,8 @@ public abstract class CompositeType /** * Return the composit's members as an array. PACKAGE PRIVATE. */ - Member[] members() { - Member[] m = new Member[members.size()]; + DynamicMember[] members() { + DynamicMember[] m = new DynamicMember[members.size()]; members.toArray(m); return m; } @@ -155,11 +177,20 @@ public abstract class CompositeType */ private CompositeType add(String name, Type type, long offset, Access access, int bitOffset, int bitLength, + boolean staticMember, boolean inheritance) { if (bitOffset >= 0 && bitLength > 0) type = type.pack(bitOffset, bitLength); - Member member = new Member(members.size(), name, type, offset, + + Member member; + + if(staticMember){ + member = new StaticMember(members.size(), name, type, + access, inheritance); + }else{ + member = new DynamicMember(members.size(), name, type, offset, access, bitOffset, bitLength, inheritance); + } nameToMember.put(name, member); members.add(member); return this; @@ -167,18 +198,22 @@ public abstract class CompositeType public CompositeType addMember(String name, Type type, long offset, Access access) { - return add(name, type, offset, access, -1, -1, false); + return add(name, type, offset, access, -1, -1,false, false); } public CompositeType addMember(String name, Type type, long offset, Access access, int bitOffset, int bitLength) { - return add(name, type, offset, access, bitOffset, bitLength, false); + return add(name, type, offset, access, bitOffset, bitLength, false, false); } public CompositeType addInheritance(String name, Type type, long offset, Access access) { - return add(name, type, offset, access, -1, -1, true); + return add(name, type, offset, access, -1, -1,false, true); + } + + public CompositeType addStaticMember(String name, Type type, long offset, + Access access){ + return add(name, type, offset, access, -1, -1,false, false); } - /** * Iterate through the class types. */ @@ -186,7 +221,6 @@ public abstract class CompositeType implements java.util.Iterator { private int idx; - ClassIterator () { idx = -1; } @@ -199,7 +233,7 @@ public abstract class CompositeType } public String nextName () { - return ((Member)members.get(idx)).name; + return ((DynamicMember)members.get(idx)).name; } public Object next () { @@ -219,7 +253,7 @@ public abstract class CompositeType writer.print("{"); boolean first = true; for (Iterator i = members.iterator(); i.hasNext();) { - Member member = (Member)i.next(); + DynamicMember member = (DynamicMember)i.next(); if (member.type instanceof frysk.value.FunctionType) continue; else { @@ -261,11 +295,11 @@ public abstract class CompositeType } // : public PARENT ... boolean first = true; - Member member = null; + DynamicMember member = null; Iterator i = members.iterator(); // Types this inherits come first; print them out. while (i.hasNext()) { - member = (Member)i.next(); + member = (DynamicMember)i.next(); if (!member.inheritance) break; if (first) { @@ -323,7 +357,7 @@ public abstract class CompositeType writer.print(";\n"); // Advance if (i.hasNext()) - member = (Member)i.next(); + member = (DynamicMember)i.next(); else member = null; } @@ -338,7 +372,7 @@ public abstract class CompositeType public Value member(Value var1, String member) { - Member mem = (Member)nameToMember.get(member); + DynamicMember mem = (DynamicMember)nameToMember.get(member); if (mem == null) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Fri Nov 9 19:28:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 09 Nov 2007 19:28:00 -0000 Subject: [SCM] master: Implement arithmetic and logical operations in ArithmeticUnit. Message-ID: <20071109192817.15810.qmail@sourceware.org> The branch, master has been updated via 90461168c98edfed137f66e8633b66e04e15f499 (commit) from 0f6d423b274fdbde0e75003e468a041032284a8f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 90461168c98edfed137f66e8633b66e04e15f499 Author: Teresa Thomas Date: Fri Nov 9 14:22:27 2007 -0500 Implement arithmetic and logical operations in ArithmeticUnit. frysk-core/frysk/value/ChangeLog 2007-11-09 Teresa Thomas * FloatingPointUnit.java (lessThan): New. (greaterThan): New. (greaterThanOrEqualTo): New. (lessThanOrEqualTo): New. (equal): New. (notEqual): New. * IntegerUnit.java (shiftLeft): New. (lessThan): New. (greaterThan): New. (greaterThanOrEqualTo): New. (lessThanOrEqualTo): New. (equal): New. (notEqual): New. (bitWiseAnd): New. (bitWiseXor): New. (bitWiseOr): New. (bitWiseComplement): New. (logicalAnd): New. (logicalOr): New. (logicalNegation): New. (getLogicalValue): New. * Type.java (shiftLeft): Delete. (shiftRight): Delete. (lessThan): Delete. (greaterThan): Delete. (lessThanOrEqualTo): Delete. (greaterThanOrEqualTo): Delete. (equal): Delete. (notEqual): Delete. (bitWiseAnd): Delete. (bitWiseXor): Delete. (bitWiseOr): Delete. (bitWiseComplement): Delete. (logicalAnd): Delete. (logicalOr): Delete. (logicalNegation): Delete. (shiftLeftEqual): Delete. (shiftRightEqual): Delete. (bitWiseOrEqual): Delete. (bitWiseXorEqual): Delete. (bitWiseAndEqual): Delete. (getLogicalValue): Delete. * TypeDecorator.java: Delete above functions. * ArithmeticType.java: Ditto. (returnType): Delete function. * ArithmeticUnit.java: Add above functions. * TestValue.java: Updated. frysk-core/frysk/expr/ChangeLog 2007-11-09 Teresa Thomas * CExprEvaluator.g: Update evaluator to use Arithmetic Unit. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 96 ++++++++---- frysk-core/frysk/expr/ChangeLog | 5 + frysk-core/frysk/value/ArithmeticType.java | 217 +------------------------ frysk-core/frysk/value/ArithmeticUnit.java | 105 +++++++++++-- frysk-core/frysk/value/ChangeLog | 50 ++++++ frysk-core/frysk/value/FloatingPointUnit.java | 51 ++++-- frysk-core/frysk/value/IntegerUnit.java | 89 +++++++++-- frysk-core/frysk/value/TestValue.java | 50 +++--- frysk-core/frysk/value/Type.java | 68 +-------- frysk-core/frysk/value/TypeDecorator.java | 72 +-------- 10 files changed, 359 insertions(+), 444 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 087ca64..411e134 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -193,58 +193,92 @@ expr returns [Value returnVar=null] .modEqual(v1, v2); } | #(MEMORY v1=expr ) { - returnVar = v1.getType().dereference(v1, exprSymTab.taskMemory()); + returnVar = v1.getType() + .dereference(v1, exprSymTab.taskMemory()); } | #(SHIFTLEFT v1=expr v2=expr) { - returnVar = v1.getType().shiftLeft(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .shiftLeft(v1, v2); } | #(SHIFTRIGHT v1=expr v2=expr) { - returnVar = v1.getType().shiftRight(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .shiftRight(v1, v2); } | #(LESSTHAN v1=expr v2=expr) { - returnVar = v1.getType().lessThan(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .lessThan(v1, v2); } | #(GREATERTHAN v1=expr v2=expr) { - returnVar = v1.getType().greaterThan(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .greaterThan(v1, v2); } | #(LESSTHANOREQUALTO v1=expr v2=expr) { - returnVar = v1.getType().lessThanOrEqualTo(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .lessThanOrEqualTo(v1, v2); } | #(GREATERTHANOREQUALTO v1=expr v2=expr) { - returnVar = v1.getType().greaterThanOrEqualTo(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .greaterThanOrEqualTo(v1, v2); } | #(NOTEQUAL v1=expr v2=expr) { - returnVar = v1.getType().notEqual(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .notEqual(v1, v2); } | #(EQUAL v1=expr v2=expr) { - returnVar = v1.getType().equal(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .equal(v1, v2); } | ( #(AMPERSAND expr expr) )=>#(AMPERSAND v1=expr v2=expr) { - returnVar = v1.getType().bitWiseAnd(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseAnd(v1, v2); } | #(ADDRESS_OF v1=expr ) { - returnVar = v1.getType().addressOf(v1, exprSymTab.order(), exprSymTab.getWordSize()); + returnVar = v1.getType().addressOf(v1, + exprSymTab.order(), exprSymTab.getWordSize()); } | #(BITWISEXOR v1=expr v2=expr) { - returnVar = v1.getType().bitWiseXor(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseXor(v1, v2); } | #(BITWISEOR v1=expr v2=expr) { - returnVar = v1.getType().bitWiseOr(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseOr(v1, v2); } | #(AND v1=expr v2=expr) { - returnVar = v1.getType().logicalAnd(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .logicalAnd(v1, v2); } | #(OR v1=expr v2=expr) { - returnVar = v1.getType().logicalOr(v1, v2); + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .logicalOr(v1, v2); } | #(NOT v1=expr) { - returnVar = v1.getType().logicalNegation(v1); + returnVar = v1.getType().getALU(v1.getType(), + exprSymTab.getWordSize()) + .logicalNegation(v1); } | #(TILDE v1=expr) { - returnVar = v1.getType().bitWiseComplement(v1); + returnVar = v1.getType().getALU(v1.getType(), + exprSymTab.getWordSize()) + .bitWiseComplement(v1); } | #(COND_EXPR log_expr=expr v1=expr v2=expr) { - returnVar = ((log_expr.getType().getLogicalValue(log_expr)) ? v1 : v2); + returnVar = ((log_expr.getType().getALU(log_expr.getType(), + exprSymTab.getWordSize()) + .getLogicalValue(log_expr)) ? v1 : v2); } | o:OCTALINT { char c = o.getText().charAt(o.getText().length() - 1); @@ -291,24 +325,30 @@ expr returns [Value returnVar=null] returnVar = v1; } | #(SHIFTLEFTEQUAL v1=expr v2=expr) { - v1.getType().shiftLeftEqual(v1, v2); - returnVar = v1; + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .shiftLeftEqual(v1, v2); } | #(SHIFTRIGHTEQUAL v1=expr v2=expr) { - v1.getType().shiftRightEqual(v1, v2); - returnVar = v1; + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .shiftRightEqual(v1, v2); } | #(BITWISEANDEQUAL v1=expr v2=expr) { - v1.getType().bitWiseAndEqual(v1, v2); - returnVar = v1; + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseAndEqual(v1, v2); + } | #(BITWISEXOREQUAL v1=expr v2=expr) { - v1.getType().bitWiseXorEqual(v1, v2); - returnVar = v1; + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseXorEqual(v1, v2); } | #(BITWISEOREQUAL v1=expr v2=expr) { - v1.getType().bitWiseOrEqual(v1, v2); - returnVar = v1; + returnVar = v1.getType().getALU(v2.getType(), + exprSymTab.getWordSize()) + .bitWiseOrEqual(v1, v2); } | #(CAST pt:primitiveType v2=expr) { if(pt.getText().compareTo("long") == 0) { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 313f07b..24693ab 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-09 Teresa Thomas + + * CExprEvaluator.g: Update evaluator to + use Arithmetic Unit. + 2007-11-08 Teresa Thomas * ScratchSymTab.java (getWordSize): Return word size diff --git a/frysk-core/frysk/value/ArithmeticType.java b/frysk-core/frysk/value/ArithmeticType.java index 96f8a79..4134a05 100644 --- a/frysk-core/frysk/value/ArithmeticType.java +++ b/frysk-core/frysk/value/ArithmeticType.java @@ -65,226 +65,11 @@ public abstract class ArithmeticType public ByteOrder order() { return order; } - - /** - * Examine the underlying types to determine the result's Type; - * callers then use the result type to determine the type system - * to use, and conversion to perform, when applying the arithmetic - * operation. - * - * XXX: Is ther a better to handle this whole arithmetic thing; - * for instance Operator classes responsible for performing each - * operation? That would let us construct an expression tree and - * evaluate that using traversal. - */ - private ArithmeticType returnType(Value var1, Value var2) { - Type t1 = var1.getType().getUltimateType(); - Type t2 = var2.getType().getUltimateType(); - - // Floating point trumps everything else. - if (t1 instanceof FloatingPointType) { - if (t2 instanceof FloatingPointType) { - if (t1.getSize() > t2.getSize()) - return (ArithmeticType)t1; - else - return (ArithmeticType)t2; - } else if (t2 instanceof IntegerType) { - return (ArithmeticType)t1; - } else { - // Can't apply cast: (t1)t2 - throw new InvalidOperatorException(t2, - "(" + t1.toPrint() + ")"); - } - } else if (t1 instanceof IntegerType) { - if (t2 instanceof FloatingPointType) { - return (ArithmeticType)t2; - } else if (t2 instanceof IntegerType) { - if (t1.getSize() > t2.getSize()) - return (ArithmeticType)t1; - else - return (ArithmeticType)t2; - } else { - // Can't apply cast: (t1)t2 - throw new InvalidOperatorException(t2, - "(" + t1.toPrint() + ")"); - } - } else { - if (t2 instanceof ArithmeticType) { - // Can't apply cast: (t2)t1 - throw new InvalidOperatorException(t1, - "(" + t2.toPrint() + ")"); - } else { - throw new InvalidOperatorException(t1, "invalid type"); - } - } - } - - public Value shiftLeft(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() << var2.asLong()); - else - throw new InvalidOperatorException(type, "<<"); - } - - public Value shiftRight(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() >> var2.asLong()); - else - throw new InvalidOperatorException(type, ">>"); - } - - public Value lessThan(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() < var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() < var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value greaterThan(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() > var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() > var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value lessThanOrEqualTo(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() <= var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() <= var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value greaterThanOrEqualTo(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() >= var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() >= var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value equal(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() == var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() == var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value notEqual(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() != var2.asLong()) ? 1 : 0); - else if (type instanceof FloatingPointType) - return type.createValue((var1.doubleValue() != var2.doubleValue()) ? 1 : 0); - else - throw new RuntimeException("type conversion botch"); - } - - public Value bitWiseAnd(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue(var1.asLong() & var2.asLong()); - else - throw new InvalidOperatorException(type, "&"); - } - - public Value bitWiseOr(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() | var2.asLong())); - else - throw new InvalidOperatorException(type, "|"); - } - - public Value bitWiseXor(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() ^ var2.asLong())); - else - throw new InvalidOperatorException(type, "^"); - } - - public Value bitWiseComplement(Value var1) { - Type type = var1.getType().getUltimateType(); - if (type instanceof IntegerType) - return ((ArithmeticType)type).createValue((~var1.asLong())); - else - throw new InvalidOperatorException(type, "~"); - } - - public Value logicalAnd(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() == 0 ? false : true) - && (var2.asLong() == 0 ? false : true) ? 1 : 0); - else - throw new InvalidOperatorException(type, "&&"); - } - - public Value logicalOr(Value var1, Value var2) { - ArithmeticType type = returnType(var1, var2); - if (type instanceof IntegerType) - return type.createValue((var1.asLong() == 0 ? false : true) - || (var2.asLong() == 0 ? false : true) ? 1 : 0); - else - throw new InvalidOperatorException(var1.getType(), "||"); - } - - public Value logicalNegation(Value var1) { - Type type = var1.getType().getUltimateType(); - if (type instanceof IntegerType) - return ((ArithmeticType)type).createValue((var1.asLong() == 0 ? true : false) ? 1 : 0); - else - throw new InvalidOperatorException(var1.getType(), "||"); - } - + public Value assign(Value var1, Value var2) { return var1.assign(var2); } - public Value shiftLeftEqual(Value var1, Value var2) { - return var1.assign(shiftLeft(var1, var2)); - } - - public Value shiftRightEqual(Value var1, Value var2) { - return var1.assign(shiftRight(var1, var2)); - } - - public Value bitWiseOrEqual(Value var1, Value var2) { - return var1.assign(bitWiseOr(var1, var2)); - } - - public Value bitWiseXorEqual(Value var1, Value var2) { - return var1.assign(bitWiseXor(var1, var2)); - } - - public Value bitWiseAndEqual(Value var1, Value var2) { - return var1.assign(bitWiseAnd(var1, var2)); - } - - public boolean getLogicalValue (Value var1) { - Type type = var1.getType().getUltimateType(); - if (type instanceof IntegerType) - return ((var1.asLong() == 0) ? false : true); - else - throw new InvalidOperatorException(this, "(bool)"); - } - public void toPrint(PrintWriter writer) { writer.print(getName()); } diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index 736f89a..1daa863 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -47,48 +47,129 @@ public abstract class ArithmeticUnit { protected ArithmeticType retType; + // Multiplicative and Additive expressions public Value add(Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "+"); } - public Value subtract(Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "-"); } - public Value multiply (Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "*"); } - public Value divide(Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "/"); } - public Value mod(Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "%"); } - public Value plusEqual(Value v1, Value v2) { - return v1.assign(add(v1, v2)); + // Shift expressions + public Value shiftLeft (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "<<"); + } + public Value shiftRight (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), ">>"); } - public Value minusEqual(Value v1, Value v2) { - return v1.assign(subtract(v1, v2)); + // Relational expressions + public Value lessThan (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "<"); + } + public Value greaterThan (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), ">"); + } + public Value lessThanOrEqualTo (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "<="); + } + public Value greaterThanOrEqualTo (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), ">="); + } + public Value equal (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "=="); + } + public Value notEqual (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "!="); } - public Value timesEqual(Value v1, Value v2) { - return v1.assign(multiply(v1, v2)); + // Bit wise expressions. + public Value bitWiseAnd (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "&"); + } + public Value bitWiseXor (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "^"); + } + public Value bitWiseOr (Value v1, Value v2) { + throw new InvalidOperatorException + (v1.getType(), v2.getType(), "|"); + } + public Value bitWiseComplement (Value v1) { + throw new InvalidOperatorException + (v1.getType(), "~"); } - public Value divideEqual (Value v1, Value v2) { - return v1.assign(divide(v1, v2)); + // Logical expressions - valid for scalar types. + public Value logicalAnd (Value v1, Value v2) { + throw new InvalidOperatorException hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 9 19:34:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 09 Nov 2007 19:34:00 -0000 Subject: [SCM] master: swagiaal: removed value argument CompositeType::iterator().Fixes broken build. Message-ID: <20071109193415.18868.qmail@sourceware.org> The branch, master has been updated via 7f1af8e43becb1579889c0764a96e37e4efe52b1 (commit) from 90461168c98edfed137f66e8633b66e04e15f499 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7f1af8e43becb1579889c0764a96e37e4efe52b1 Author: Sami Wagiaalla Date: Fri Nov 9 14:29:26 2007 -0500 swagiaal: removed value argument CompositeType::iterator().Fixes broken build. frysk-core/frysk/value/ChangeLog +2007-11-09 Sami Wagiaalla + + * CompositeType.java (iterator): removed value argument + from bad merge. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 5 +++++ frysk-core/frysk/value/CompositeType.java | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 547ed33..db39231 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -50,6 +50,11 @@ 2007-11-09 Sami Wagiaalla + * CompositeType.java (iterator): removed value argument + from bad merge. + +2007-11-09 Sami Wagiaalla + * CompositeType.java (addStaticMember): New function. (Member.Member): Moved Access and inheretence arguments from DynamicMember to this constructor. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 059351b..db5d7ae 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -244,7 +244,7 @@ public abstract class CompositeType } } - public ClassIterator iterator (Value v) { + public ClassIterator iterator () { return new ClassIterator(); } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Fri Nov 9 20:22:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 09 Nov 2007 20:22:00 -0000 Subject: [SCM] master: Tests for logicalNegation, getLogicalValue on int types added. Message-ID: <20071109202224.21319.qmail@sourceware.org> The branch, master has been updated via fd94985768aaab064cb3fdae15087ace1fa7b188 (commit) from 7f1af8e43becb1579889c0764a96e37e4efe52b1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fd94985768aaab064cb3fdae15087ace1fa7b188 Author: Teresa Thomas Date: Fri Nov 9 15:21:16 2007 -0500 Tests for logicalNegation, getLogicalValue on int types added. frysk-core/frysk/value/ChangeLog 2007-11-09 Teresa Thomas * TestValue.java (testIntOps): Test for logicalNegation, getLogicalValue added. * IntegerUnit.java (logicalNegation): Simplify. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 6 ++++++ frysk-core/frysk/value/IntegerUnit.java | 2 +- frysk-core/frysk/value/TestValue.java | 5 +++++ 3 files changed, 12 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index db39231..f89f379 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,11 @@ 2007-11-09 Teresa Thomas + * TestValue.java (testIntOps): Test for logicalNegation, + getLogicalValue added. + * IntegerUnit.java (logicalNegation): Simplify. + +2007-11-09 Teresa Thomas + * FloatingPointUnit.java (lessThan): New. (greaterThan): New. (greaterThanOrEqualTo): New. diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 655920e..7178356 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -136,7 +136,7 @@ public class IntegerUnit } public Value logicalNegation(Value v1) { return retType.createValue - ((v1.asBigInteger().longValue() == 0 ? true : false) ? 1 : 0); + (v1.asBigInteger().longValue() == 0 ? 1 : 0); } public boolean getLogicalValue (Value v1) { return ((v1.asBigInteger().longValue() == 0) ? false : true); diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 10b087d..13f6142 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -102,6 +102,7 @@ public class TestValue { Value v1 = intType.createValue(4); Value v2 = shortType.createValue(9); + boolean bool = false; // Give bogus word size values. Value v3 = v1.getType().getALU(v2.getType(), 0).add(v1, v2); assertEquals ("4 + 9", 4 + 9, v3.asLong()); @@ -139,6 +140,10 @@ public class TestValue assertEquals ("9 & 4", 1, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).logicalOr(v2, v1); assertEquals ("9 | 4", 1, v3.asLong()); + v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1); + assertEquals ("!4", 0, v3.asLong()); + bool = v2.getType().getALU(v2.getType(), 0).getLogicalValue(v2); + assertEquals ("bool(9)", true, bool); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.asLong()); v3 = v3.getType().getALU(v1.getType(), 0).plusEqual(v3, v1); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 9 20:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 09 Nov 2007 20:54:00 -0000 Subject: [SCM] master: Second half of refactor Set/Unset. Message-ID: <20071109205435.12591.qmail@sourceware.org> The branch, master has been updated via 8b867fb62647409597fd921ec3e0888e53976190 (commit) via 6d8e45c3d597cb380215da40c2a6b02702ee4b9d (commit) from fd94985768aaab064cb3fdae15087ace1fa7b188 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8b867fb62647409597fd921ec3e0888e53976190 Author: Andrew Cagney Date: Fri Nov 9 15:50:11 2007 -0500 Second half of refactor Set/Unset. frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * DbgVariables.java (complete(String,int,List)): New. * TestDbgVariables.java: New. * DbgVariableCommands: New. * SetCommand.java: Delete. * UnsetCommand.java: Delete. * TopLevelCommand.java: Update. * CLI.java (dbgvars): Make final; update. commit 6d8e45c3d597cb380215da40c2a6b02702ee4b9d Author: Andrew Cagney Date: Fri Nov 9 15:48:59 2007 -0500 Refactor unset and set; test. frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * DbgVariables.java (complete(String,int,List)): New. * TestDbgVariables.java: New. * DbgVariableCommands: New. * SetCommand.java: Delete. * UnsetCommand.java: Delete. * TopLevelCommand.java: Update. * CLI.java (dbgvars): Make final; update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 9 +- frysk-core/frysk/hpd/ChangeLog | 8 + frysk-core/frysk/hpd/DbgVariableCommands.java | 162 ++++++++++++++++ frysk-core/frysk/hpd/DbgVariables.java | 245 ++++++++++++------------- frysk-core/frysk/hpd/SetCommand.java | 103 ----------- frysk-core/frysk/hpd/TopLevelCommand.java | 6 +- frysk-core/frysk/hpd/UnsetCommand.java | 84 --------- 7 files changed, 294 insertions(+), 323 deletions(-) create mode 100644 frysk-core/frysk/hpd/DbgVariableCommands.java delete mode 100644 frysk-core/frysk/hpd/SetCommand.java delete mode 100644 frysk-core/frysk/hpd/UnsetCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index e077073..04a10a5 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -163,7 +163,7 @@ public class CLI { private final SortedMap handlers = new TreeMap(); private final Command topLevelCommand; final UserHelp userhelp; - private DbgVariables dbgvars; + final DbgVariables dbgvars = new DbgVariables(); // PT set related stuff private SetNotationParser setparser; @@ -220,7 +220,6 @@ public class CLI { prepro = new Preprocessor(); userhelp = new UserHelp(); - dbgvars = new DbgVariables(); //XXX: Must make a reference to every command that is used //otherwise build system will discard those classes. Therefore @@ -250,11 +249,11 @@ public class CLI { addHandler(new PtypeCommand()); addHandler(new QuitCommand("quit")); addHandler(new QuitCommand("exit")); - addHandler(new SetCommand(dbgvars)); + addHandler(new DbgVariableCommands.Set()); addHandler(new StepCommand()); addHandler(new StepInstructionCommand()); addHandler(new UndefsetCommand()); - addHandler(new UnsetCommand(dbgvars)); + addHandler(new DbgVariableCommands.Unset()); addHandler(new FrameCommands("up")); addHandler(new ViewsetCommand()); addHandler(new WhatCommand()); @@ -268,7 +267,7 @@ public class CLI { addHandler(new ExamineCommand()); addHandler(new LoadCommand()); addHandler(new PeekCommand()); - topLevelCommand = new TopLevelCommand(dbgvars); + topLevelCommand = new TopLevelCommand(); // initialize PT set stuff setparser = new SetNotationParser(); diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index f46f0fa..093da8c 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,13 @@ 2007-11-09 Andrew Cagney + * DbgVariables.java (complete(String,int,List)): New. + * TestDbgVariables.java: New. + * DbgVariableCommands: New. + * SetCommand.java: Delete. + * UnsetCommand.java: Delete. + * TopLevelCommand.java: Update. + * CLI.java (dbgvars): Make final; update. + * TestParameterizedCommand.java (check(...)): Add check for input.stringValue(). * PrintCommand.java: Extend ParameterizedCommand. diff --git a/frysk-core/frysk/hpd/DbgVariableCommands.java b/frysk-core/frysk/hpd/DbgVariableCommands.java new file mode 100644 index 0000000..e8c90d2 --- /dev/null +++ b/frysk-core/frysk/hpd/DbgVariableCommands.java @@ -0,0 +1,162 @@ +// This file is part of the program FRYSK. +// +// Copyright 2005, 2006, 2007 Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.hpd; + +import java.util.List; + +abstract class DbgVariableCommands extends ParameterizedCommand { + + DbgVariableCommands(String name, String description, + String syntax, String full) { + super(name, description, syntax, full); + } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List completions) { + return cli.dbgvars.complete(incomplete, base, completions); + } + + static class Set extends DbgVariableCommands { + Set() { + super("set", "Change or view a debugger variable.", + "set debugger-var = value\nset [debugger-var]", + ("The set command supports the viewing of debugger state" + + " variables and the assignment of new values to them. When" + + " no arguments are specified, the names and current values" + + " for all debugger state variables are displayed. When" + + " just a single argument is included, the debugger echoes" + + " the variable name and displays its current value. The" + + " second argument defines the value that should replace" + + " any previous value for that variable. It must be" + + " enclosed in quotes if it contains multiple words.")); + } + public void interpret(CLI cli, Input input, Object options) { + switch (input.size()) { + default: + throw new InvalidCommandException + ("wrong number of parameters"); + case 0: + cli.outWriter.println(cli.dbgvars.toString()); + break; + case 1: + String var = input.parameter(0); + if (!cli.dbgvars.variableIsValid(var)) + throw new InvalidCommandException("Debug variable \"" + + var + + "\" is invalid"); + cli.outWriter.print(var); + cli.outWriter.print(" = "); + cli.outWriter.print(cli.dbgvars.getValue(var)); + cli.outWriter.println(); + break; + case 2: + case 3: + if (input.size() == 3 && !input.parameter(1).equals("=")) + throw new InvalidCommandException("missing \"=\""); + String variable = input.parameter(0); + if (!cli.dbgvars.variableIsValid(variable)) + throw new InvalidCommandException("Debugger variable \"" + + variable + + "\" is invalid"); + String value = input.parameter(input.size() - 1); + if (!cli.dbgvars.valueIsValid(variable, value)) + throw new InvalidCommandException("Debug variable value \"" + + value + + "\" is invalid"); + cli.dbgvars.setVariable(variable, value); + break; + } + } + } + + static class Unset extends DbgVariableCommands { + Unset() { + super("unset", "Revert variable value to default.", + "unset [ | -all ]", + ("The unset command reverses the effects of any previous" + + " set operations, restoring the debugger state" + + " variable(s) to their default settings. When the" + + " argument -all is specified, the command affects all" + + " debugger state variables, restoring them to the" + + " original settings that were in effect when the" + + " debugging session began. When just a single" + + " argument is included, only that variable is" + + " affected.")); + add(new CommandOption("all", "Revert all variables") { + void parse(String arg, Object option) { + ((Options)option).all = true; + } + }); + } + + private class Options { + boolean all = false; + } + Object options() { + return new Options(); + } + + public void interpret(CLI cli, Input input, Object o) { + Options options = (Options)o; + if (options.all) { + if (input.size() != 0) + throw new InvalidCommandException + ("Too many arguments for -all"); + cli.dbgvars.unsetAll(); + cli.outWriter.println("All debug variables reset"); + return; + } + + switch (input.size()) { + case 0: + throw new InvalidCommandException("Missing argument"); + case 1: + String temp = input.parameter(0); + if (!cli.dbgvars.variableIsValid(temp)) + throw new InvalidCommandException + ("\"" + temp + "\" is not a valid debugger variable"); + cli.dbgvars.unsetVariable(temp); + break; + default: + throw new InvalidCommandException("Too many arguments"); + } + } + } +} diff --git a/frysk-core/frysk/hpd/DbgVariables.java b/frysk-core/frysk/hpd/DbgVariables.java index c38083a..c115224 100644 --- a/frysk-core/frysk/hpd/DbgVariables.java +++ b/frysk-core/frysk/hpd/DbgVariables.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006, Red Hat Inc. +// Copyright 2006, 2007, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -36,160 +36,149 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. + package frysk.hpd; -import java.util.Hashtable; +import java.util.SortedMap; +import java.util.TreeMap; import java.util.LinkedList; import java.util.Arrays; import java.lang.Integer; import java.util.Iterator; +import java.util.List; /** * Debugger variable accessible through the "set" command. */ -class DbgVariables -{ - public static int VARTYPE_INT = 0; - public static int VARTYPE_STRING = 1; - public static int VARTYPE_CUSTOM = 2; - - Hashtable vars; - - class Value - { - private int type; - private Object value; - private Object deflt; - private LinkedList validVals; - - public Value(int type, Object deflt) - { - this.type = type; - this.value = deflt; - this.deflt = deflt; - } - - public Value(int type, Object deflt, String[] validVals) - { - this.type = type; - this.value = deflt; - this.deflt = deflt; - this.validVals = new LinkedList(Arrays.asList(validVals)); - } - - public int getType() - { - return type; - } - - public Object getValue() - { - return value; - } - - public Object getDefault() - { - return deflt; - } - - public void setValue(Object val) - { - value = val; - } - - public boolean valueValid(String val) - { - return validVals.contains(val); - } - - public String toString() - { - return value.toString(); - } +class DbgVariables { + public static int VARTYPE_INT = 0; + public static int VARTYPE_STRING = 1; + public static int VARTYPE_CUSTOM = 2; + + static private class Value { + private int type; + private Object value; + private Object deflt; + private LinkedList validVals; + + public Value(int type, Object deflt) { + this.type = type; + this.value = deflt; + this.deflt = deflt; } - public DbgVariables() - { - vars = new Hashtable(); - - vars.put("MODE", new Value(VARTYPE_CUSTOM, "MULTILEVEL", new String[] {"THREADS", "PROCESSES", "MULTILEVEL"})); - vars.put("START_MODEL", new Value(VARTYPE_CUSTOM, "ANY", new String[] {"ANY", "ALL"})); - vars.put("STOP_MODEL", new Value(VARTYPE_CUSTOM, "ANY", new String[] {"ANY", "ALL"})); - vars.put("EVENT_INTERRUPT", new Value(VARTYPE_CUSTOM, "ON", new String[] {"ON", "OFF"})); - vars.put("VERBOSE", new Value(VARTYPE_CUSTOM, "WARN", new String[] {"WARN", "ERR", "ALL"})); - vars.put("ERROR_CHECKS", new Value(VARTYPE_CUSTOM, "NORMAL", new String[] {"NORMAL", "MIN", "MAX"})); - vars.put("MAX_PROMPT", new Value(VARTYPE_INT, new Integer(40))); - vars.put("MAX_HISTORY", new Value(VARTYPE_INT, new Integer(20))); - vars.put("MAX_LEVELS", new Value(VARTYPE_INT, new Integer(20))); - vars.put("MAX_LIST", new Value(VARTYPE_INT, new Integer(20))); - vars.put("PROMPT", new Value(VARTYPE_STRING, "(frysk) ")); - vars.put("SOURCE_PATH", new Value(VARTYPE_STRING, "")); - vars.put("EXECUTABLE_PATH", new Value(VARTYPE_STRING, "./:" + System.getenv("PATH"))); + public Value(int type, Object deflt, String[] validVals) { + this.type = type; + this.value = deflt; + this.deflt = deflt; + this.validVals = new LinkedList(Arrays.asList(validVals)); } - public void setVariable(String var, String value) - { - Value tempval = (Value)vars.get(var); - - if (var.equals("MAX_PROMPT") || var.equals("MAX_HISTORY") || - var.equals("MAX_LEVELS") || var.equals("MAX_LIST")) - tempval.setValue(Integer.getInteger(value)); - else - tempval.setValue(value); + public int getType() { + return type; } - public void unsetVariable(String var) - { - Value tempval = (Value)vars.get(var); - tempval.setValue(tempval.getDefault()); + public Object getValue() { + return value; } - public void unsetAll() - { - Value tempval; - - for (Iterator iter = vars.values().iterator(); iter.hasNext();) - { - tempval = (Value)iter.next(); - tempval.setValue(tempval.getDefault()); - } + public Object getDefault() { + return deflt; } - public boolean variableIsValid(String var) - { - return vars.containsKey(var); + public void setValue(Object val) { + value = val; } - public boolean valueIsValid(String var, String value) - { - boolean result = true; - Value tempval = (Value) vars.get(var); - - if (tempval.getType() == VARTYPE_INT && Integer.getInteger(value) == null) - result = false; - else if (tempval.getType() == VARTYPE_CUSTOM && !tempval.valueValid(value)) - result = false; - - return result; + public boolean valueValid(String val) { + return validVals.contains(val); } - public int getIntValue(String var) - { - return ((Integer)vars.get(var)).intValue(); + public String toString() { + return value.toString(); } - - public String getStringValue(String var) - { - return (String)vars.get(var); + } + + private final SortedMap vars = new TreeMap(); + + public DbgVariables() { + vars.put("MODE", new Value(VARTYPE_CUSTOM, "MULTILEVEL", new String[] {"THREADS", "PROCESSES", "MULTILEVEL"})); + vars.put("START_MODEL", new Value(VARTYPE_CUSTOM, "ANY", new String[] {"ANY", "ALL"})); + vars.put("STOP_MODEL", new Value(VARTYPE_CUSTOM, "ANY", new String[] {"ANY", "ALL"})); + vars.put("EVENT_INTERRUPT", new Value(VARTYPE_CUSTOM, "ON", new String[] {"ON", "OFF"})); + vars.put("VERBOSE", new Value(VARTYPE_CUSTOM, "WARN", new String[] {"WARN", "ERR", "ALL"})); + vars.put("ERROR_CHECKS", new Value(VARTYPE_CUSTOM, "NORMAL", new String[] {"NORMAL", "MIN", "MAX"})); + vars.put("MAX_PROMPT", new Value(VARTYPE_INT, new Integer(40))); + vars.put("MAX_HISTORY", new Value(VARTYPE_INT, new Integer(20))); + vars.put("MAX_LEVELS", new Value(VARTYPE_INT, new Integer(20))); + vars.put("MAX_LIST", new Value(VARTYPE_INT, new Integer(20))); + vars.put("PROMPT", new Value(VARTYPE_STRING, "(frysk) ")); + vars.put("SOURCE_PATH", new Value(VARTYPE_STRING, "")); + vars.put("EXECUTABLE_PATH", new Value(VARTYPE_STRING, "./:" + System.getenv("PATH"))); + } + + public void setVariable(String var, String value) { + Value tempval = (Value)vars.get(var); + if (var.equals("MAX_PROMPT") || var.equals("MAX_HISTORY") || + var.equals("MAX_LEVELS") || var.equals("MAX_LIST")) + tempval.setValue(Integer.getInteger(value)); + else + tempval.setValue(value); + } + + public void unsetVariable(String var) { + Value tempval = (Value)vars.get(var); + tempval.setValue(tempval.getDefault()); + } + + public void unsetAll() { + Value tempval; + for (Iterator iter = vars.values().iterator(); iter.hasNext();) { + tempval = (Value)iter.next(); + tempval.setValue(tempval.getDefault()); } + } - public Object getValue(String var) - { - return ((Value)vars.get(var)).getValue(); - } + public boolean variableIsValid(String var) { + return vars.containsKey(var); + } - public String toString() - { - return vars.toString(); + public boolean valueIsValid(String var, String value) { + boolean result = true; + Value tempval = (Value) vars.get(var); + + if (tempval.getType() == VARTYPE_INT + && Integer.getInteger(value) == null) + result = false; + else if (tempval.getType() == VARTYPE_CUSTOM + && !tempval.valueValid(value)) + result = false; + return result; + } + + public int getIntValue(String var) { + return ((Integer)vars.get(var)).intValue(); + } + + public String getStringValue(String var) { + return (String)vars.get(var); + } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 10 00:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 10 Nov 2007 00:01:00 -0000 Subject: [SCM] master: Refactor action commands into ActionPointCommands. Message-ID: <20071110000108.30818.qmail@sourceware.org> The branch, master has been updated via 3b9805588cfd98e0f769f691365f9d55b7204a01 (commit) via cb9bf2d8e90be105f1257155be5386eab2281706 (commit) from 8b867fb62647409597fd921ec3e0888e53976190 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3b9805588cfd98e0f769f691365f9d55b7204a01 Author: Andrew Cagney Date: Fri Nov 9 18:59:23 2007 -0500 Refactor action commands into ActionPointCommands. frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * ActionPointCommands.java: New. * DeleteCommand.java: Delete. * EnableCommand.java: Delete. * DisableCommand.java: Delete. * ActionsCommand.java: Delete. * CLI.java: Update. * TopLevelCommands.java: Update. * TestHelp.java: Update. commit cb9bf2d8e90be105f1257155be5386eab2281706 Author: Andrew Cagney Date: Fri Nov 9 16:56:35 2007 -0500 Undefset extend ParameterizedCommand frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * UndefsetCommand.java: Extend ParameterizedCommand. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionPointCommands.java | 544 +++++++++++++++++++++++++ frysk-core/frysk/hpd/ActionsCommand.java | 247 ----------- frysk-core/frysk/hpd/CLI.java | 8 +- frysk-core/frysk/hpd/ChangeLog | 11 + frysk-core/frysk/hpd/DeleteCommand.java | 196 --------- frysk-core/frysk/hpd/DisableCommand.java | 196 --------- frysk-core/frysk/hpd/EnableCommand.java | 193 --------- frysk-core/frysk/hpd/TestHelp.java | 2 +- frysk-core/frysk/hpd/TopLevelCommand.java | 8 +- frysk-core/frysk/hpd/UndefsetCommand.java | 71 ++-- 10 files changed, 609 insertions(+), 867 deletions(-) create mode 100644 frysk-core/frysk/hpd/ActionPointCommands.java delete mode 100644 frysk-core/frysk/hpd/ActionsCommand.java delete mode 100644 frysk-core/frysk/hpd/DeleteCommand.java delete mode 100644 frysk-core/frysk/hpd/DisableCommand.java delete mode 100644 frysk-core/frysk/hpd/EnableCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ActionPointCommands.java b/frysk-core/frysk/hpd/ActionPointCommands.java new file mode 100644 index 0000000..dc45628 --- /dev/null +++ b/frysk-core/frysk/hpd/ActionPointCommands.java @@ -0,0 +1,544 @@ +// This file is part of the program FRYSK. +// +// Copyright 2007, Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.hpd; + +import frysk.proc.Task; +import frysk.rt.BreakpointManager; +import frysk.rt.DisplayManager; +import frysk.rt.SourceBreakpoint; +import frysk.rt.UpdatingDisplayValue; +import java.util.List; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.Comparator; + +abstract class ActionPointCommands extends ParameterizedCommand { + + static private class Options { + boolean disabled; + boolean enabled; + boolean present; + boolean barriers; + boolean breakpoints; + boolean displaypoints; + boolean watchpoints; + } + Object options() { + return new Options(); + } + + private boolean argsRequired; + + ActionPointCommands(boolean argsRequired, String name, String syntax, + String description) { + super(name, syntax, description); + this.argsRequired = argsRequired; + add(new CommandOption("enabled", "only enabled action-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).enabled = true; + } + }); + add(new CommandOption("disabled", "only disabled action-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).disabled = true; + } + }); + add(new CommandOption("watch", "only watch-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).watchpoints = true; + } + }); + add(new CommandOption("break", "only break-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).breakpoints = true; + } + }); + add(new CommandOption("display", "only display-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).displaypoints = true; + } + }); + add(new CommandOption("barrier", "only barriers") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).barriers = true; + } + }); + add(new CommandOption("all", "all action-points") { + void parse(String arg, Object options) { + ((Options)options).present = true; + ((Options)options).enabled = true; + ((Options)options).disabled = true; + ((Options)options).breakpoints = true; + ((Options)options).watchpoints = true; + ((Options)options).displaypoints = true; + ((Options)options).barriers = true; + } + }); + } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List alternatives) { + return -1; + } + + // FIXME: Should be able to implement the bulk of this interpret() + // method as generic code. + final void interpret(CLI cli, Input input, Object o) { + Options options = (Options)o; + if (argsRequired && input.size() == 0 && !options.present) + throw new InvalidCommandException("missing arguments"); + if (input.size() != 0 && options.present) + throw new InvalidCommandException("too many arguments"); + PTSet ptset = cli.getCommandPTSet(input); + interpret(cli, ptset, input.stringValue(), options); + } + abstract void interpret(CLI cli, PTSet ptset, String actionpoints, + Options options); + + static class Actions extends ActionPointCommands { + Actions() { + super(false, "actions", "actions", "List action points"); + } + private static class TaskComparator implements Comparator { + public int compare(Object o1, Object o2) { + Map.Entry me1 = (Map.Entry) o1; + Map.Entry me2 = (Map.Entry) o2; + int id1 = ((Task) me1.getKey()).getTaskId().intValue(); + int id2 = ((Task) me2.getKey()).getTaskId().intValue(); + if (id1 < id2) + return -1; + else if (id1 > id2) + return 1; + else + return 0; + } + } + private final TaskComparator taskComparator = new TaskComparator(); + + /* + * Print out the specified actionpoints. These will be + * filtered as per the possible arguments in the hpd. We have + * also added the --display option, which will output the + * current displays (non-Javadoc) + * + * @see frysk.hpd.CLIHandler#handle(frysk.hpd.Command) + */ + void interpret(CLI cli, PTSet ptset, String actionpoints, + Options options) { + int[] ids = null; + // generate a list of actionpoints to display + if (!actionpoints.equals("")) { + String[] points = actionpoints.split(","); + ids = new int[points.length]; + for (int i = 0; i < points.length; i++) + try { + ids[i] = Integer.parseInt(points[i]); + } catch (NumberFormatException e) { + throw new InvalidCommandException + ("Invalid actionpoint id " + points[i]); + } + Arrays.sort(ids); + } + if (!options.present) + options.enabled + = options.disabled + = options.displaypoints + = options.barriers + = options.breakpoints + = options.watchpoints + = true; + // Print out the breakpoints + if (options.breakpoints || options.enabled || options.disabled) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + Iterator iterator = bpManager.getBreakpointTableIterator(); + if (iterator.hasNext()) + cli.outWriter.println("BREAKPOINTS"); + while (iterator.hasNext()) { + SourceBreakpoint bpt = (SourceBreakpoint) iterator.next(); + // Only display enabled/disblaed breakpoints if + // the appropriate flags are set. We include the + // showEnabled || showDisabled so that we only + // care about this if at least one of the two + // flags is set. + if (((bpt.getUserState() == SourceBreakpoint.ENABLED + && !options.enabled) + || (bpt.getUserState() == SourceBreakpoint.DISABLED + && !options.disabled)) + && (options.enabled || options.disabled)) + continue; + // If we were given a list of points, only output + // breakpoints if they match one of the points + if (ids != null + && Arrays.binarySearch(ids, bpt.getId()) < 0) + continue; + cli.outWriter.print(bpt.getId()); + cli.outWriter.print(" "); + if (bpt.getUserState() == SourceBreakpoint.ENABLED) { + cli.outWriter.print(" y "); + } else { + cli.outWriter.print(" n "); + } + bpt.output(cli.outWriter); + cli.outWriter.print(" "); + // Print tasks in which breakpoint is enabled + Set taskEntrySet = bpt.getTaskStateMap().entrySet(); + Map.Entry[] taskEntries + = new Map.Entry[taskEntrySet.size()]; + taskEntrySet.toArray(taskEntries); + Arrays.sort(taskEntries, taskComparator); + for (int i = 0; i < taskEntries.length; i++) { + int id = ((Task) taskEntries[i].getKey()).getTaskId() + .intValue(); + SourceBreakpoint.State state = (SourceBreakpoint.State) taskEntries[i] + .getValue(); + if (state == SourceBreakpoint.ENABLED) { + cli.outWriter.print(id); + cli.outWriter.print(" "); + } + } + cli.outWriter.println(); + } + cli.outWriter.println(); + } + // Print out the displays + if (options.displaypoints || options.disabled || options.enabled) { + Iterator iterator = DisplayManager.getDisplayIterator(); + if (iterator.hasNext()) + cli.outWriter.println("DISPLAYS"); + while (iterator.hasNext()) { + UpdatingDisplayValue uDisp + = (UpdatingDisplayValue) iterator.next(); + // Similar to the breakpoint section, if one of + // the enabled / disabled flags is set, only + // display displays of that type + if (((uDisp.isEnabled() && !options.enabled) + || (!uDisp.isEnabled() && !options.disabled)) + && (options.enabled || options.disabled)) + continue; + // If we are given a list of actionpoints to + // display, only display those points + if (ids != null + && Arrays.binarySearch(ids, uDisp.getId()) < 0) + continue; + cli.outWriter.print(uDisp.getId()); + cli.outWriter.print(" "); + if (uDisp.isEnabled()) + cli.outWriter.print(" y "); + else + cli.outWriter.print(" n "); + cli.outWriter.print("\""); + cli.outWriter.print(uDisp.getName()); + cli.outWriter.print("\" "); + cli.outWriter.print(uDisp.getTask().getTaskId().intValue()); + cli.outWriter.println(); + } + cli.outWriter.println(); + } + } + } + + static class Delete extends ActionPointCommands { + Delete() { + super(true, "delete", "delete actionpointID", + "delete a source breakpoint"); + } + void interpret(CLI cli, PTSet ptset, String actionpoints, + Options options) { + // generate a list of actionpoints to delete + if (!actionpoints.equals("")) { + String[] points = actionpoints.split(","); + int[] ids = new int[points.length]; + for (int i = 0; i < points.length; i++) + try { + ids[i] = Integer.parseInt(points[i]); + } catch (NumberFormatException e) { + throw new InvalidCommandException + ("Invalid actionpoint id " + points[i]); + } + Arrays.sort(ids); + for (int i = 0; i < ids.length; i++) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + SourceBreakpoint bpt = bpManager.getBreakpoint(ids[i]); + if (bpt != null) { + for (Iterator taskIter = ptset.getTasks(); + taskIter.hasNext(); ) { + Task task = (Task)taskIter.next(); + bpManager.disableBreakpoint(bpt, task); + } + cli.outWriter.print("breakpoint "); + cli.outWriter.print(bpt.getId()); + cli.outWriter.println(" deleted"); + } else if (DisplayManager.deleteDisplay(ids[i])) { + // Failed to get a breakpoint, try to get a + // display instead + cli.outWriter.print("display "); + cli.outWriter.print(ids[i]); + cli.outWriter.println(" deleted"); + } else { + cli.outWriter.println("no such actionpoint"); + } + } + return; + } + // Delete breakpoints. We need to consider all of -break, + // -enabled, and -disabled and delete breakpoints + // accordingly + if (options.breakpoints || options.enabled || options.disabled) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + for (Iterator iter = bpManager.getBreakpointTableIterator(); + iter.hasNext(); ) { + SourceBreakpoint bpt = (SourceBreakpoint)iter.next(); + if (options.breakpoints + || (options.enabled + && (bpt.getUserState() + == SourceBreakpoint.ENABLED)) + || (options.disabled + && (bpt.getUserState() + == SourceBreakpoint.DISABLED))) { + for (Iterator taskIter = ptset.getTasks(); + taskIter.hasNext(); ) { + Task task = (Task)taskIter.next(); + bpManager.disableBreakpoint(bpt, task); + } + cli.outWriter.print("breakpoint "); + cli.outWriter.print(bpt.getId()); + cli.outWriter.println(" deleted"); + } + } + } + // Delete Displays. Again, we need to pay attention to + // whether -enabled and -disabled are set + if (options.displaypoints || options.enabled || options.disabled) { + for (Iterator iter = DisplayManager.getDisplayIterator(); + iter.hasNext(); ) { + UpdatingDisplayValue disp + = (UpdatingDisplayValue) iter.next(); + if (options.displaypoints + || (options.enabled && disp.isEnabled()) + || (options.disabled && !disp.isEnabled())) { + DisplayManager.deleteDisplay(disp); + cli.outWriter.print("display "); + cli.outWriter.print(disp.getId()); + cli.outWriter.println(" deleted"); + } + } + } + } + } + + static class Disable extends ActionPointCommands { + Disable() { + super(true, "disable", "disable actionpointID", + "disable a source breakpoint"); + } + public void interpret(CLI cli, PTSet ptset, String actionpoints, + Options options) { + // generate a list of actionpoints to disable + if (!actionpoints.equals("")) { + String[] points = actionpoints.split(","); + int[] ids = new int[points.length]; + for (int i = 0; i < points.length; i++) + try { + ids[i] = Integer.parseInt(points[i]); + } catch (NumberFormatException e) { + throw new InvalidCommandException + ("Invalid actionpoint id " + points[i]); + } + Arrays.sort(ids); + for (int i = 0; i < ids.length; i++) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + SourceBreakpoint bpt = bpManager.getBreakpoint(ids[i]); + if (bpt != null) { + for (Iterator taskIter = ptset.getTasks(); + taskIter.hasNext(); ) { + Task task = (Task)taskIter.next(); + bpManager.disableBreakpoint(bpt, task); + } + cli.outWriter.print("breakpoint "); + cli.outWriter.print(bpt.getId()); + cli.outWriter.println(" disabled"); + } else if (DisplayManager.disableDisplay(ids[i])) { + // Failed to get a breakpoint, try to get a + // display instead + cli.outWriter.print("display "); + cli.outWriter.print(ids[i]); + cli.outWriter.println(" disabled"); + } else { + cli.outWriter.println("no such actionpoint"); + } + } + return; + } + // Disable breakpoints For our purposes -break and + // -enabled are equivalent here, as disabling all + // breakpoints is identical to disabling all enabled + // breakpoints. + if (options.breakpoints || options.enabled) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + for (Iterator iter = bpManager.getBreakpointTableIterator(); + iter.hasNext(); ) { + SourceBreakpoint bpt = (SourceBreakpoint) iter.next(); + if (bpt.getUserState() == SourceBreakpoint.ENABLED) { + for (Iterator taskIter = ptset.getTasks(); + taskIter.hasNext(); ) { + Task task = (Task)taskIter.next(); + bpManager.disableBreakpoint(bpt, task); + } + cli.outWriter.print("breakpoint "); + cli.outWriter.print(bpt.getId()); + cli.outWriter.println(" disabled"); + } + } + } + // Disable displays Similar to breakpoints, -enable also + // means we disable all the displays. + if (options.displaypoints || options.enabled) { + for (Iterator iter = DisplayManager.getDisplayIterator(); + iter.hasNext(); ) { + UpdatingDisplayValue uDisp + = (UpdatingDisplayValue) iter.next(); + if (uDisp.isEnabled()) { + uDisp.disable(); + cli.outWriter.print("display "); + cli.outWriter.print(uDisp.getId()); + cli.outWriter.println(" disabled"); + } + } + } + } + } + + static class Enable extends ActionPointCommands { + Enable() { + super(true, "enable", "enable actionpointID", + "enable a source breakpoint"); + } + void interpret(CLI cli, PTSet ptset, String actionpoints, + Options options) { + // generate a list of actionpoints to enable + if (!actionpoints.equals("")) { + String[] points = actionpoints.split(","); + int[] ids = new int[points.length]; + for (int i = 0; i < points.length; i++) + try { + ids[i] = Integer.parseInt(points[i]); + } catch (NumberFormatException e) { + throw new InvalidCommandException + ("Invalid actionpoint id " + points[i]); + } + Arrays.sort(ids); + for (int i = 0; i < ids.length; i++) { + BreakpointManager bpManager = cli.getSteppingEngine() + .getBreakpointManager(); + SourceBreakpoint bpt = bpManager.getBreakpoint(ids[i]); + if (bpt != null) { + for (Iterator taskIter = ptset.getTasks(); + taskIter.hasNext(); ) { + Task task = (Task)taskIter.next(); + bpManager.enableBreakpoint(bpt, task); + } + cli.outWriter.print("breakpoint "); + cli.outWriter.print(bpt.getId()); + cli.outWriter.println(" enabled"); + } else if (DisplayManager.enableDisplay(ids[i])) { + // Failed to get a breakpoint, try to get a hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Sat Nov 10 00:34:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Sat, 10 Nov 2007 00:34:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071110003427.21507.qmail@sourceware.org> The branch, master has been updated via 15b8b363369e0940cf83a199162a1e4023bf22e5 (commit) via 691f275a213a2eaddb4689b83fee7bfdd8d1842c (commit) via 541b4186e931dab4246e5dc99efa811c06945822 (commit) from 3b9805588cfd98e0f769f691365f9d55b7204a01 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 15b8b363369e0940cf83a199162a1e4023bf22e5 Merge: 691f275a213a2eaddb4689b83fee7bfdd8d1842c 3b9805588cfd98e0f769f691365f9d55b7204a01 Author: Stan Cox Date: Fri Nov 9 19:32:55 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 691f275a213a2eaddb4689b83fee7bfdd8d1842c Merge: 541b4186e931dab4246e5dc99efa811c06945822 8b867fb62647409597fd921ec3e0888e53976190 Author: Stan Cox Date: Fri Nov 9 18:02:57 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 541b4186e931dab4246e5dc99efa811c06945822 Author: Stan Cox Date: Fri Nov 9 18:02:09 2007 -0500 Clean up array display in anticipation of turning on TestTypeEntryValue. * gen-type-expect-tests.py (j.prologue): Throttle ptr tests for now. * gen-type-funit-tests.py (c.add): Filter quotes, new lines, member "." (main): Handle char specially. Match result formatting to fhpd * ArrayType.java (toPrint): Do multiple dimension here. Move vector handling... (toPrintVector): ...here. expectations. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 + .../frysk/debuginfo/gen-type-expect-tests.py | 14 ++-- frysk-core/frysk/pkglibdir/ChangeLog | 6 ++ frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 58 +++++++++------ frysk-core/frysk/value/ArrayType.java | 81 ++++++++++++++----- frysk-core/frysk/value/ChangeLog | 6 ++ 6 files changed, 117 insertions(+), 52 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 0f09d35..83e86a8 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-09 Stan Cox + + * gen-type-expect-tests.py (j.prologue): Throttle ptr tests for now. + 2007-11-09 Sami Wagiaalla * TestTypeEntry.java (testClassWithStaticMembers): New test. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 7b6f526..4d748ec 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -114,7 +114,6 @@ public class %s extends TestLib { System.out.println("Error: Cannot find " + expect[i].symbol); assertNotNull(varDie); varType = typeEntry.getType(varDie.getType()); - // System.out.println("Expect: " + expect[i].symbol + "\\n'" + expect[i].output + "'\\nGot:\\n'" + valueString + "'"); assertNotNull(varType); assertEquals(myName + expect[i].symbol, expect[i].output, varType.toPrint()); } @@ -128,11 +127,9 @@ public class %s extends TestLib { ByteArrayOutputStream baos = new ByteArrayOutputStream(32); PrintWriter pw = new PrintWriter(baos, true); for (int i = 0; i < expect.length; i++) { - // ??? cache address of x so &x can be checked - if (expect[i].output.indexOf("&") >= 0) - continue; - // ??? ignore char for now - if (expect[i].symbol.indexOf("char_") >= 0) + // ??? cache address of x so &x can be checked? + if (expect[i].output.indexOf("&") >= 0 + || expect[i].symbol.indexOf("ptr") >= 0) continue; DwarfDie varDie = die.getScopeVar(allDies, expect[i].symbol); if (varDie == null) @@ -143,7 +140,9 @@ public class %s extends TestLib { value.toPrint(pw, task.getMemory(), Format.NATURAL); pw.flush(); String valueString = baos.toString(); -// System.out.println("Expect: " + expect[i].symbol + "\\n'" + expect[i].output + "'\\nGot:\\n'" + valueString + "'"); + // System.out.println("Expect: " + expect[i].symbol + + // "\\n'" + expect[i].output + "'\\nGot:\\n'" + + // valueString + "'" + " " + value.getType()); assertEquals(myName + expect[i].symbol, expect[i].output, valueString); baos.reset(); } @@ -169,6 +168,7 @@ public class %s extends TestLib { def start_test(self, tool, name): print(" public void test%s () {" % (name)) +# if (tool == "value" and (name == "Enum" or name == "Struct")): if (tool == "value"): print(''' if (unresolved(5235)) diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index f4de0b2..5901a1e 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,9 @@ +2007-11-09 Stan Cox + + * gen-type-funit-tests.py (c.add): Filter quotes, new lines, member "." + (main): Handle char specially. Match result formatting to fhpd + expectations. + 2007-11-05 Sami Wagiaalla * funit-cpp-scopes-class-static.cxx: Removed print statement. diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index 8a2f744..6150c40 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -21,7 +21,8 @@ class c: self.write(" = " + initial) self.c_file.write(";\n") self.c_file.write("// Name: " + var + var_suffix + "\n") - self.c_file.write("// Value: " + initial + "\n") + # Escape quotes and new lines, remove struct member "." + self.c_file.write("// Value: " + initial.replace('"','\\"').replace('\n',"\\n").replace('{.','{').replace(' .',' ') + "\n") self.c_file.write("// Type: ") type += type_arr self.c_file.write(type.replace("\n", "\n// Type: ")) @@ -79,14 +80,14 @@ for t in sys.argv: # base types we generate variables for. used to index into limits map base_types=('char','short int','int','long int','long long int','float','double') # Used for variable initialization -limits={'char' : {'min' : '41', 'max' : '176'}, +limits={'char' : {'min' : "'!'", 'max' : "'~'"}, 'short int' : {'min' : '-32767', 'max' : '32767'}, - 'int' : {'min' : '-2147483647', 'max' : '2147483647'}, - 'long int' : {'min' : '-2147483647L', 'max' : '2147483647L'}, - 'long long int' : {'min' : '-9223372036854775807LL', - 'max' : '9223372036854775807LL'}, - 'float' : {'min' : '1.175494E-38', 'max' : '3.402823E+38'}, - 'double' : {'min' : '2.225074E-308', 'max' : '1.797693E+308'} + 'int' : {'min' : '-65536', 'max' : '65536'}, + 'long int' : {'min' : '-65536', 'max' : '65536'}, + 'long long int' : {'min' : '-65536', + 'max' : '65536'}, + 'float' : {'min' : '1.1754939E-38', 'max' : '3.402823E38'}, + 'double' : {'min' : '2.225074E-308', 'max' : '1.797693E308'} } type_modifiers=('const','volatile') @@ -136,26 +137,37 @@ for t in base_types: ts = t.replace(" ","_") min = limits[t]['min'] max = limits[t]['max'] - c_file.add(t, "arr_%s" % ts, "{%s,%s}" % (min,max), " [2]") - c_file.add(t, "arr_arr_%s" % ts, "{{%s,%s},{%s,%s}}" % (min,max,min,max), " [2][2]") - c_file.add(t, "arr_arr_arr_%s" % ts, "{{{%s,%s},{%s,%s}},{{%s,%s},{%s,%s}}}" % (min,max,min,max,min,max,min,max), " [2][2][2]") - c_file.add("%s *" % t, "arr_ptr_arr_arr_%s" % ts, "{arr_arr_%s[0],arr_arr_%s[1]}" % (ts,ts), " [2]") - c_file.add("%s (*" % t, "ptr_arr_%s" % ts, "&arr_%s" % ts, ")[2]") + if (t == "char"): + char1 = min.strip("'") + char2 = max.strip("'") + c_file.add(t, "arr_%s" % ts, '"%s%s"' % (char1,char2), " [2]") + c_file.add(t, "arr_arr_%s" % ts, '{{"%s%s"},{"%s%s"}}' % (char1,char2,char1,char2), " [2][2]") + c_file.add(t, "arr_arr_arr_%s" % ts, '{{{"%s%s"},{"%s%s"}},{{"%s%s"},{"%s%s"}}}' % (char1,char2,char1,char2,char1,char2,char1,char2), " [2][2][2]") + c_file.add("%s *" % t, "arr_ptr_arr_arr_%s" % ts, "{arr_arr_%s[0],arr_arr_%s[1]}" % (ts,ts), " [2]") + c_file.add("%s (*" % t, "ptr_arr_%s" % ts, "&arr_%s" % ts, ")[2]") + else: + c_file.add(t, "arr_%s" % ts, "{%s,%s}" % (min,max), " [2]") + c_file.add(t, "arr_arr_%s" % ts, "{{%s,%s},{%s,%s}}" % (min,max,min,max), " [2][2]") + c_file.add(t, "arr_arr_arr_%s" % ts, "{{{%s,%s},{%s,%s}},{{%s,%s},{%s,%s}}}" % (min,max,min,max,min,max,min,max), " [2][2][2]") + c_file.add(t, "arr_arr_arr_arr_%s" % ts, + "{{{{%s,%s},{%s,%s},{%s,%s}},{{%s,%s},{%s,%s},{%s,%s}}},{{{%s,%s},{%s,%s},{%s,%s}},{{%s,%s},{%s,%s},{%s,%s}}},{{{%s,%s},{%s,%s},{%s,%s}},{{%s,%s},{%s,%s},{%s,%s}}}}" % (min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max,min,max), " [3][2][3][2]") + c_file.add("%s *" % t, "arr_ptr_arr_arr_%s" % ts, "{arr_arr_%s[0],arr_arr_%s[1]}" % (ts,ts), " [2]") + c_file.add("%s (*" % t, "ptr_arr_%s" % ts, "&arr_%s" % ts, ")[2]") c_file.write("\nstatic int one = 1, two = 2, three = 3, four = 4;\n") -c_file.add("struct {\n int int_var;\n}", "arr_struct", "{{1},{2}}", " [2]") -c_file.add("union {\n int int_var;\n float fl;\n}", "arr_union", "{{1},{2}}", " [2]") -c_file.add("struct {\n int int_var;\n}", "arr_arr_struct", "{{{1},{2}},{{3},{4}}}", " [2][2]") -c_file.add("union {\n int int_var;\n float float_var;\n}", "arr_arr_union", "{{{1},{2}},{{3},{4}}}", " [2][2]") +c_file.add("struct {\n int int_var;\n}", "arr_struct", "{{.int_var=1,\n},{.int_var=2,\n}}", " [2]") +c_file.add("union {\n int int_var;\n float fl;\n}", "arr_union", "{{.int_var=1,\n .fl=1.4012985E-45,\n},{.int_var=1073741824,\n .fl=2.0,\n}}", " [2]") +c_file.add("struct {\n int int_var;\n}", "arr_arr_struct", "{{{.int_var=1,\n},{.int_var=2,\n}},{{.int_var=3,\n},{.int_var=4,\n}}}", " [2][2]") +c_file.add("union {\n int int_var;\n float float_var;\n}", "arr_arr_union", "{{{.int_var=1,\n .float_var=1.4012985E-45,\n},{.int_var=2,\n .float_var=2.802597E-45,\n}},{{.int_var=3,\n .float_var=4.2038954E-45,\n},{.int_var=4,\n .float_var=5.605194E-45,\n}}}", " [2][2]") c_file.add("int *", "arr_arr_ptr", "{{&one,&two},{&three,&four}}", " [2][2]") -c_file.add("struct {\n int arr_int[2];\n}", "arr_struct_arr_int", "{{{1, 2}}, {{3, 4}}}", " [2]") -c_file.add("struct {\n struct {\n int int_var;\n } struct_a;\n}", "arr_struct_struct", "{{{1}},{{2}}}", " [2]") -c_file.add("struct {\n union {\n int int_var;\n float float_var;\n } struct_a;\n}", "arr_struct_union", "{{{1}},{{2}}}", " [2]") +c_file.add("struct {\n int arr_int[2];\n}", "arr_struct_arr_int", "{{.arr_int={1,2},\n},{.arr_int={3,4},\n}}", " [2]") +c_file.add("struct {\n struct {\n int int_var;\n } struct_a;\n}", "arr_struct_struct", "{{.struct_a={.int_var=1,\n},\n},{.struct_a={.int_var=2,\n},\n}}", " [2]") +c_file.add("struct {\n union {\n int int_var;\n float float_var;\n } struct_a;\n}", "arr_struct_union", "{{.struct_a={.int_var=1,\n .float_var=1.4012985E-45,\n},\n},{.struct_a={.int_var=2,\n .float_var=2.802597E-45,\n},\n}}", " [2]") c_file.add("struct {\n int * ptr;\n}", "arr_struct_ptr", "{{&one},{&two}}", " [2]") -c_file.add("union {\n int arr_int[2];\n float arr_float[2];\n}", "arr_union_arr_int", "{{{1, 2}}, {{3, 4}}}", " [2]") -c_file.add("union {\n struct {\n int int_var;\n } struct_a;\n}", "arr_union_struct", "{{{1}}, {{2}}}", " [2]") -c_file.add("union {\n union {\n int int_var;\n } union_a;\n}", "arr_union_union", "{{{1}}, {{2}}}", " [2]") +c_file.add("union {\n int arr_int[2];\n float arr_float[2];\n}", "arr_union_arr_int", "{{.arr_int={1,2},\n .arr_float={1.4012985E-45,2.802597E-45},\n},{.arr_int={3,4},\n .arr_float={4.2038954E-45,5.605194E-45},\n}}", " [2]") +c_file.add("union {\n struct {\n int int_var;\n } struct_a;\n}", "arr_union_struct", "{{.struct_a={.int_var=1,\n},\n},{.struct_a={.int_var=2,\n},\n}}", " [2]") +c_file.add("union {\n union {\n int int_var;\n } union_a;\n}", "arr_union_union", "{{.union_a={.int_var=1,\n},\n},{.union_a={.int_var=2,\n},\n}}", " [2]") c_file.add("union {\n int * ptr;\n}", "arr_union_ptr", "{{&one}, {&two}}", " [2]", ) # ??? fails # c_file.add("int (*", "arr_ptr_arr", "{&arr_int, &arr_int}", " [2])[2]") diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 6eb0893..9505874 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -166,39 +166,76 @@ public class ArrayType Location loc = PieceLocation.createSimpleLoc (var1.getLocation().getAddress(), type.getSize(), taskMem); return new Value (type, loc); - } - + } + void toPrint(PrintWriter writer, Location location, ByteBuffer memory, Format format) { - if (type instanceof CharType) { - // Treat it as a character string + // XXX: Add dimension start/end instead of assuming {} + for (int i = 0; i < dimension.length - 1; i++) + writer.print("{"); + for (ArrayIterator e = new ArrayIterator(location); e.hasNext(); ) { + if (e.idx > 0) { + for (int i = 0; i < stride.length - 2; i++) + if ((e.idx % stride[i]) == 0) + writer.print("}"); + if ((e.idx % stride[stride.length - 2]) == 0) + writer.print(","); + for (int i = 0; i < stride.length - 2; i++) + if ((e.idx % stride[i]) == 0) + writer.print("{"); + } + if (! toPrintVector(writer, type, e, memory, format)) + break; + } + for (int i = 0; i < dimension.length - 1; i++) + writer.print("}"); + } + + private boolean toPrintVector(PrintWriter writer, Type type, ArrayIterator e, + ByteBuffer memory, Format format) + { + boolean isVector = dimension.length == 1; + int vectorLength = dimension[dimension.length - 1]; + boolean haveCharType; + boolean noNullByte = true; + if (type instanceof CharType) + haveCharType = true; + else + haveCharType = false; + + if (haveCharType) { + if (! isVector) + writer.print("{"); writer.print("\""); - for (ArrayIterator e = new ArrayIterator(location); - e.hasNext(); ) { - Location l = (Location)e.next(); + } + else + writer.print("{"); + + for (int i = 0; i < vectorLength; i++) { + Location l = (Location)e.next(); + if (haveCharType) { BigInteger c = ((CharType)type).getBigInteger(l); - if (c.equals(BigInteger.ZERO)) + if (c.equals(BigInteger.ZERO)) { + noNullByte = false; break; // NUL + } writer.print((char)c.longValue()); } - writer.print("\""); - } else { - for (int i = 0; i < dimension.length; i++) - writer.print("{"); - for (ArrayIterator e = new ArrayIterator(location); - e.hasNext(); ) { - if (e.idx > 0) { - if ((e.idx % dimension[dimension.length - 1]) == 0) - writer.print("},{"); - else - writer.print(","); - } - Location l = (Location)e.next(); + else { type.toPrint(writer, l, memory, format); + if (i < vectorLength - 1) + writer.print(","); } - for (int i = 0; i < dimension.length; i++) + } + + if (haveCharType) { + writer.print("\""); + if (! isVector) writer.print("}"); } + else + writer.print("}"); + return noNullByte; } public void toPrint(String s, PrintWriter writer) { diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index f89f379..48bf9aa 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,9 @@ +2007-11-09 Stan Cox + + * ArrayType.java (toPrint): Do multiple dimension here. Move + vector handling... + (toPrintVector): ...here. + 2007-11-09 Teresa Thomas * TestValue.java (testIntOps): Test for logicalNegation, hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 10 02:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 10 Nov 2007 02:07:00 -0000 Subject: [SCM] master: Ignore *~; don't ignore "bin"; stop new files hiding in Untracked. Message-ID: <20071110020736.6612.qmail@sourceware.org> The branch, master has been updated via e069b59bb15ed2140a0d39e1806f4e5d1e16d347 (commit) from 15b8b363369e0940cf83a199162a1e4023bf22e5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e069b59bb15ed2140a0d39e1806f4e5d1e16d347 Author: Andrew Cagney Date: Fri Nov 9 21:06:14 2007 -0500 Ignore *~; don't ignore "bin"; stop new files hiding in Untracked. ----------------------------------------------------------------------- Summary of changes: .gitignore | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/.gitignore b/.gitignore index a96d4d0..db54151 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,8 @@ Makefile.in aclocal.m4 autom4te.cache configure -bin install-sh missing compile depcomp +*~ hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 10 03:36:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 10 Nov 2007 03:36:00 -0000 Subject: [SCM] master: List extends ParameterizedCommand Message-ID: <20071110033658.32294.qmail@sourceware.org> The branch, master has been updated via 17a8d02379e74546d0fe49a54839248d92e66ad7 (commit) from e069b59bb15ed2140a0d39e1806f4e5d1e16d347 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 17a8d02379e74546d0fe49a54839248d92e66ad7 Author: Andrew Cagney Date: Fri Nov 9 22:30:00 2007 -0500 List extends ParameterizedCommand 2007-11-09 Andrew Cagney * TestParameterizedCommand.java (testOptionWithDashArg()): New. (testUnknownOpt()): New. (testTooManyArgs(), testExtraArg(), testMissingOption()): Delete. * CommandOption.java (Magnitude): New. * ListCommand.java: Extend ParameterizedCommand. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 7 ++- frysk-core/frysk/hpd/CommandOption.java | 20 +++++ frysk-core/frysk/hpd/ListCommand.java | 75 ++++++++++------- frysk-core/frysk/hpd/ParameterizedCommand.java | 91 ++++++++++---------- frysk-core/frysk/hpd/TestParameterizedCommand.java | 18 ++-- 5 files changed, 122 insertions(+), 89 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 7661c97..2d484f3 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-11-09 Andrew Cagney + * TestParameterizedCommand.java (testOptionWithDashArg()): New. + (testUnknownOpt()): New. + (testTooManyArgs(), testExtraArg(), testMissingOption()): Delete. + * CommandOption.java (Magnitude): New. + * ListCommand.java: Extend ParameterizedCommand. + * ActionPointCommands.java: New. * DeleteCommand.java: Delete. * EnableCommand.java: Delete. @@ -12,7 +18,6 @@ * UndefsetCommand.java: Extend ParameterizedCommand. * DbgVariables.java (complete(String,int,List)): New. - * TestDbgVariables.java: New. * DbgVariableCommands: New. * SetCommand.java: Delete. * UnsetCommand.java: Delete. diff --git a/frysk-core/frysk/hpd/CommandOption.java b/frysk-core/frysk/hpd/CommandOption.java index 5f795a1..5672fbd 100644 --- a/frysk-core/frysk/hpd/CommandOption.java +++ b/frysk-core/frysk/hpd/CommandOption.java @@ -85,6 +85,26 @@ abstract class CommandOption { } /** + * Parse sign/magnitude integer. + */ + static class Magnitude { + final int sign; + final int magnitude; + Magnitude(String argument) { + if (argument.charAt(0) == '+') { + sign = 1; + magnitude = Integer.parseInt(argument.substring(1)); + } else if (argument.charAt(0) == '-') { + sign = -1; + magnitude = Integer.parseInt(argument.substring(1)); + } else { + sign = 0; + magnitude = Integer.parseInt(argument); + } + } + } + + /** * Template option; parse a format. */ static abstract class FormatOption extends CommandOption { diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index 373195c..da46304 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -40,6 +40,7 @@ package frysk.hpd; import java.io.File; +import java.util.List; import java.io.FileReader; import java.io.IOException; import java.io.LineNumberReader; @@ -53,38 +54,50 @@ import frysk.proc.Task; * Implement the "list" source command. */ -class ListCommand - extends Command -{ +class ListCommand extends ParameterizedCommand { ListCommand () { super("list", "Display source code lines.", - "list source-loc [-length [-]num-lines]", "The list command displays lines of source code. The user can control\n" + -"both the location in the source code and the number of lines\n" + -"displayed. Successive list commands without location arguments result in\n" + -"the display of consecutive sequences of source lines."); + "list source-loc [-length [-]num-lines]", + ("The list command displays lines of source code. The" + + " user can control both the location in the source" + + " code and the number of lines displayed. Successive" + + " list commands without location arguments result in" + + " the display of consecutive sequences of source lines.")); + add(new CommandOption("length", "number of lines to display", + "[+-]num-lines") { + void parse(String args, Object options) { + ((Options)options).length = new Magnitude(args); + } + }); } + private static class Options { + CommandOption.Magnitude length; + } + Object options() { + return new Options(); + } + private File file = null; private int line; private int exec_line = 0; - public void interpret(CLI cli, Input cmd) { + void interpret(CLI cli, Input cmd, Object o) { + Options options = (Options)o; PTSet ptset = cli.getCommandPTSet(cmd); int windowSize = 20; Iterator taskIter = ptset.getTaskData(); while (taskIter.hasNext()) { TaskData taskData = (TaskData)taskIter.next(); Task task = taskData.getTask(); + cli.outWriter.print("["); + cli.outWriter.print(taskData.getParentID()); + cli.outWriter.print("."); + cli.outWriter.print(taskData.getID()); + cli.outWriter.println("]"); DebugInfoFrame frame = cli.getTaskFrame(task); - if (cmd.size() == 1 && cmd.parameter(0).equals("-help")) { - cli.printUsage(cmd); - return; - } if (frame.getLines().length == 0) { - cli.addMessage("No symbol table is available.", - Message.TYPE_NORMAL); - return; + cli.outWriter.println("No symbol table is available."); + continue; } - cli.outWriter.println("[" + taskData.getParentID() + "." - + taskData.getID() + "]"); if (cmd.size() == 1) { // list N try { @@ -104,20 +117,15 @@ class ListCommand } } } - else if (cmd.size() == 2) { - // list -length {-}N - if ((cmd.parameter(0)).equals("-length")) { - try { - windowSize = Integer.parseInt(cmd.parameter(1)); - if (windowSize < 0) { - line += windowSize; - } - } - catch (NumberFormatException ignore) { - // XXX: Ignored? - } - } - } + else if (options.length != null) { + windowSize = options.length.magnitude; + if (options.length.sign < 0) + line -= windowSize; + else if (options.length.sign > 0) + line += windowSize; + else + line -= windowSize / 2; + } else if (frame.getLines()[0].getLine() != exec_line) { // list around pc. exec_line = frame.getLines()[0].getLine(); @@ -174,4 +182,9 @@ class ListCommand } } + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return -1; + } } diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index 558e367..12fe094 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -67,46 +67,20 @@ abstract class ParameterizedCommand extends Command { shortOptions.put("" + option.shortName, option); } - private void handleOption(Input input, String option, int index, - Object options) { - // Strip any leading "-"'s - String name = option.substring(1); - while (name.length() > 0 && name.charAt(0) == '-') - name = name.substring(1); - // Strip off =... in -option=... - int eq = name.indexOf('='); - if (eq != -1) - name = option.substring(0, eq); + private CommandOption lookupOption(String name) { CommandOption commandOption = (CommandOption)longOptions.get(name); if (commandOption == null) commandOption = (CommandOption)shortOptions.get(name); - if (commandOption == null) { - throw new InvalidCommandException("unrecognized option '-" - + name + "'"); - } - String argument = null; - if (commandOption.parameter != null) { - // Require a single parameter. - if ((eq >= 0 && index != input.size()) - || (eq == -1 && index != input.size() - 1)) - throw new InvalidCommandException - ("option -" + commandOption.longName - + " expects a single parameter " - + commandOption.parameter); - if (eq == -1) { - argument = input.parameter(index); - input.removeLast(); - } else { - argument = option.substring(eq + 1); - } - } else { - // Reject a parameter. - if (eq != -1 || index != input.size()) - throw new InvalidCommandException - ("option -" + commandOption.longName - + " doesn't allow an argument"); - } - commandOption.parse(argument, options); + return commandOption; + } + + private String optionName(String name) { + if (name.charAt(0) != '-') + return null; + do { + name = name.substring(1); + } while (name.length() > 0 && name.charAt(0) == '-'); + return name; } /** @@ -115,24 +89,47 @@ abstract class ParameterizedCommand extends Command { */ public final void interpret(CLI cli, Input input) { Object options = options(); - for (int currentIndex = input.size() - 1; currentIndex > -1; - --currentIndex) { - String string = input.parameter(currentIndex); + while (input.size() > 0) { + int index = input.size() - 1; + String string = input.parameter(index); if (string.equals("--")) { - if (currentIndex != input.size() - 1) - throw new InvalidCommandException - ("Invalid option " - + input.parameter(currentIndex + 1)); input.removeLast(); break; } + // Check for <<-option ARG>>; so that <<-option -1>> is + // prefered over <<-1>> (which isn't valid). + if (input.size() > 1) { + String name = optionName(input.parameter(index - 1)); + if (name != null) { + CommandOption option = lookupOption(name); + if (option != null && option.parameter != null) { + option.parse(string, options); + input.removeLast(); // arg + input.removeLast(); // -opt + continue; + } + } + } if (string.equals("-help")) { help(cli, input); return; } - if (string.charAt(0) != '-') - continue; - handleOption(input, string, currentIndex + 1, options); + // Check for <<-option>>; if nothing going give up. + String name = optionName(string); + if (name == null) + break; + CommandOption commandOption = lookupOption(name); + if (commandOption == null) { + throw new InvalidCommandException("unrecognized option '-" + + name + "'"); + } + if (commandOption.parameter != null) { + throw new InvalidCommandException + ("option -" + commandOption.longName + + " expects a single parameter " + + commandOption.parameter); + } + commandOption.parse(null, options); input.removeLast(); } interpret(cli, input, options); diff --git a/frysk-core/frysk/hpd/TestParameterizedCommand.java b/frysk-core/frysk/hpd/TestParameterizedCommand.java index f625adb..359b0c7 100644 --- a/frysk-core/frysk/hpd/TestParameterizedCommand.java +++ b/frysk-core/frysk/hpd/TestParameterizedCommand.java @@ -152,6 +152,12 @@ public class TestParameterizedCommand extends TestLib { false, null); } + public void testOptionWithDashArg() { + check("parser -arg -1", "", + new String[0], + true, "-1"); + } + private void checkInvalid(String string) { RuntimeException thrown = null; try { @@ -166,16 +172,8 @@ public class TestParameterizedCommand extends TestLib { checkInvalid("parser -arg"); } - public void testTooManyArgs() { - checkInvalid("parser -arg arg1 arg2"); - } - - public void testExtraArg() { - checkInvalid("parser -opt arg"); - } - - public void testMissingOption() { - checkInvalid("parser -- arg"); + public void testUnknownOpt() { + checkInvalid("parser -unknown"); } public void testHelp() { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 10 03:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 10 Nov 2007 03:56:00 -0000 Subject: [SCM] master: Eliminate unused UserHelp Message-ID: <20071110035659.12808.qmail@sourceware.org> The branch, master has been updated via bddcc9f83077db2a97348cb8689975794c819d55 (commit) from 17a8d02379e74546d0fe49a54839248d92e66ad7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bddcc9f83077db2a97348cb8689975794c819d55 Author: Andrew Cagney Date: Fri Nov 9 22:55:37 2007 -0500 Eliminate unused UserHelp frysk-core/frysk/hpd/ChangeLog 2007-11-09 Andrew Cagney * UserHelp.java: Delete. * CLI.java (printUsage(String)): Delete. (userhelp): Delete. (handlers): Delete. (addHandler): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 76 +----------------------------------- frysk-core/frysk/hpd/ChangeLog | 6 +++ frysk-core/frysk/hpd/UserHelp.java | 67 ------------------------------- 3 files changed, 7 insertions(+), 142 deletions(-) delete mode 100644 frysk-core/frysk/hpd/UserHelp.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 1fafa3c..3c14b2e 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -41,8 +41,6 @@ package frysk.hpd; import java.io.PrintStream; import java.io.PrintWriter; -import java.util.SortedMap; -import java.util.TreeMap; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -156,13 +154,10 @@ public class CLI { idManager.manageProc(proc, idManager.reserveProcID()); } - //private static PrintStream out = null;// = System.out; final PrintWriter outWriter; private Preprocessor prepro; private String prompt; // string to represent prompt, will be moved - private final SortedMap handlers = new TreeMap(); - private final Command topLevelCommand; - final UserHelp userhelp; + private final Command topLevelCommand = new TopLevelCommand(); final DbgVariables dbgvars = new DbgVariables(); // PT set related stuff @@ -183,16 +178,6 @@ public class CLI { * Public methods */ - /** - * Add a CLIHandler, along with its help messages. - * @param handler the handler - */ - public void addHandler(Command handler) { - String name = handler.getName(); - handlers.put(name, handler); - userhelp.addHelp(name, handler.getHelp()); - } - Value parseValue(Task task, String value) { return parseValue(task, value, false); } @@ -219,55 +204,6 @@ public class CLI { idManager = ProcTaskIDManager.getSingleton(); prepro = new Preprocessor(); - userhelp = new UserHelp(); - - //XXX: Must make a reference to every command that is used - //otherwise build system will discard those classes. Therefore - //CLI cannot be made to be a singleton. - addHandler(new AliasCommands.Alias()); - addHandler(new AliasCommands.Unalias()); - addHandler(new AssignCommand()); - addHandler(new AttachCommand()); - addHandler(new BreakpointCommand()); - addHandler(new DebuginfoCommand()); - addHandler(new DefsetCommand()); - addHandler(new ActionPointCommands.Actions()); - addHandler(new ActionPointCommands.Delete()); - addHandler(new ActionPointCommands.Disable()); - addHandler(new ActionPointCommands.Enable()); - addHandler(new DetachCommand()); - addHandler(new FrameCommands("down")); - addHandler(new StepFinishCommand()); - addHandler(new FocusCommand()); - addHandler(new GoCommand()); - addHandler(new HaltCommand()); - addHandler(new ListCommand()); - addHandler(new StepNextCommand()); - addHandler(new StepNextiCommand()); - addHandler(new PrintCommand()); - addHandler(new PlocationCommand()); - addHandler(new PtypeCommand()); - addHandler(new QuitCommand("quit")); - addHandler(new QuitCommand("exit")); - addHandler(new DbgVariableCommands.Set()); - addHandler(new StepCommand()); - addHandler(new StepInstructionCommand()); - addHandler(new UndefsetCommand()); - addHandler(new DbgVariableCommands.Unset()); - addHandler(new FrameCommands("up")); - addHandler(new ViewsetCommand()); - addHandler(new WhatCommand()); - addHandler(new WhereCommand()); - addHandler(new WhichsetsCommand()); - addHandler(new DisplayCommand()); - addHandler(new RunCommand()); - addHandler(new CoreCommand()); - addHandler(new DisassembleCommand()); - addHandler(new RegsCommand()); - addHandler(new ExamineCommand()); - addHandler(new LoadCommand()); - addHandler(new PeekCommand()); - topLevelCommand = new TopLevelCommand(); // initialize PT set stuff setparser = new SetNotationParser(); @@ -467,16 +403,6 @@ public class CLI { } /** - * Prints a usage message for a command. - * - * @param cmd the command - */ - public void printUsage(Input cmd) { - addMessage("Usage: " + userhelp.getCmdSyntax(cmd.getAction()), - Message.TYPE_NORMAL); - } - - /** * Return output writer. */ public PrintWriter getPrintWriter() { diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 2d484f3..0146871 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-11-09 Andrew Cagney + * UserHelp.java: Delete. + * CLI.java (printUsage(String)): Delete. + (userhelp): Delete. + (handlers): Delete. + (addHandler): Delete. + * TestParameterizedCommand.java (testOptionWithDashArg()): New. (testUnknownOpt()): New. (testTooManyArgs(), testExtraArg(), testMissingOption()): Delete. diff --git a/frysk-core/frysk/hpd/UserHelp.java b/frysk-core/frysk/hpd/UserHelp.java deleted file mode 100644 index 77f2603..0000000 --- a/frysk-core/frysk/hpd/UserHelp.java +++ /dev/null @@ -1,67 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.util.TreeMap; -import java.util.ArrayList; - -class UserHelp { - private final TreeMap commandHelp = new TreeMap(); - - public void addHelp(String commandName, CommandHelp help) { - commandHelp.put(commandName, help); - } - - public ArrayList getCmdList() { - return new ArrayList(commandHelp.keySet()); - } - - public String getCmdDescription(String cmd) { - return ((CommandHelp) commandHelp.get(cmd)).getDescription(); - } - - public String getCmdSyntax(String cmd) { - return ((CommandHelp) commandHelp.get(cmd)).getSyntax(); - } - - public String getCmdFullDescr(String cmd) { - return ((CommandHelp) commandHelp.get(cmd)).getFull(); - } -} hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Sat Nov 10 14:47:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Sat, 10 Nov 2007 14:47:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071110144752.27179.qmail@sourceware.org> The branch, master has been updated via 3d96853b2e7b6935288fc4881f2a9230bc743506 (commit) via 26494adb8e756245aebbb591ad28aba39375aa58 (commit) from bddcc9f83077db2a97348cb8689975794c819d55 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3d96853b2e7b6935288fc4881f2a9230bc743506 Merge: 26494adb8e756245aebbb591ad28aba39375aa58 bddcc9f83077db2a97348cb8689975794c819d55 Author: Jose Flavio Aguilar Paulino Date: Sat Nov 10 12:47:16 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 26494adb8e756245aebbb591ad28aba39375aa58 Author: Jose Flavio Aguilar Paulino Date: Sat Nov 10 02:06:29 2007 -0200 Fix for Power64 (isa registers and groups) ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 3 + frysk-core/frysk/isa/PPC64Registers.java | 91 ++++++++++++++++++++++++++++-- 2 files changed, 88 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 671c4d2..195f4bc 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,6 @@ +2007-11-10 Jose Flavio Aguilar Paulino + * PPC64Registers.java: Fixing Power64 registers and groups. + 2007-11-09 Jose Flavio Aguilar Paulino * Fixing Power32 ISA. Patching the registers and creating register group diff --git a/frysk-core/frysk/isa/PPC64Registers.java b/frysk-core/frysk/isa/PPC64Registers.java index 611f16d..f93fcb1 100644 --- a/frysk-core/frysk/isa/PPC64Registers.java +++ b/frysk-core/frysk/isa/PPC64Registers.java @@ -173,9 +173,88 @@ public class PPC64Registers extends Registers { public static final Register FPR31 = new Register("fpr31", StandardTypes.FLOAT64B_T); + /* Special Registers */ + public static final Register LR + = new Register("lr", StandardTypes.VOIDPTR64B_T); + public static final Register CTR + = new Register("ctr", StandardTypes.INT64B_T); + public static final Register ARG + = new Register("arg", StandardTypes.INT64B_T); + public static final Register CR + = new Register("cr", StandardTypes.INT64B_T); + public static final Register XER + = new Register("xer", StandardTypes.INT64B_T); + + /* Alti-vec special register */ + public static final Register VRSAVE + = new Register("vrsave", StandardTypes.INT64B_T); + public static final Register VSCR + = new Register("vscr", StandardTypes.INT64B_T); + + /* SPUs special registers (for CELL processors) */ + public static final Register SPEACC + = new Register("speacc", StandardTypes.INT64B_T); + public static final Register SPEFSCR + = new Register("spefscr", StandardTypes.INT64B_T); + + /* Frame-Pointer */ + public static final Register FRP + = new Register("frp", StandardTypes.VOIDPTR64B_T); + + /* Next-Instruction Pointer (Program Pointer) */ public static final Register NIP = new Register("nip", StandardTypes.VOIDPTR64B_T); + /* + * Defining Register Groups + */ + public static final RegisterGroup GENERAL + = new RegisterGroup("general", + new Register[] { + GPR0 , GPR1 , GPR2 , GPR3 , GPR4 , GPR5 , GPR6 , GPR7 , GPR8 , GPR9 , + GPR10, GPR11, GPR12, GPR13, GPR14, GPR15, GPR16, GPR17, GPR18, GPR19, + GPR20, GPR21, GPR22, GPR23, GPR24, GPR25, GPR26, GPR27, GPR28, GPR29, + GPR30, GPR31 }); + + public static final RegisterGroup SPECIAL + = new RegisterGroup("special", + new Register[] { LR, CTR, ARG, CR, XER, + VRSAVE, VSCR, SPEACC, SPEFSCR, + FRP, NIP }); + + public static final RegisterGroup FLOATING_POINTER + = new RegisterGroup("floatingpointer", + new Register[] { + FPR0 , FPR1 , FPR2 , FPR3 , FPR4 , FPR5 , FPR6 , FPR7 , FPR8 , FPR9 , + FPR10, FPR11, FPR12, FPR13, FPR14, FPR15, FPR16, FPR17, FPR18, FPR19, + FPR20, FPR21, FPR22, FPR23, FPR24, FPR25, FPR26, FPR27, FPR28, FPR29, + FPR30, FPR31 }); + + /* + * Creating the special ALL group + */ + public static final RegisterGroup ALL; + static { + Register[] allRegs = new Register[ + GENERAL.getRegisters().length + + SPECIAL.getRegisters().length + + FLOATING_POINTER.getRegisters().length]; + + System.arraycopy(GENERAL.getRegisters(), 0, + allRegs, 0, + GENERAL.getRegisters().length); + + System.arraycopy(SPECIAL.getRegisters(), 0, + allRegs, GENERAL.getRegisters().length, + SPECIAL.getRegisters().length); + + System.arraycopy(FLOATING_POINTER.getRegisters(), 0, + allRegs, GENERAL.getRegisters().length + SPECIAL.getRegisters().length, + FLOATING_POINTER.getRegisters().length); + + ALL = new RegisterGroup("all", allRegs); + } + public Register getProgramCounter() { return NIP; } @@ -185,17 +264,17 @@ public class PPC64Registers extends Registers { } public RegisterGroup getDefaultRegisterGroup() { - // FIXME! - return null; + return GENERAL; } public RegisterGroup getAllRegistersGroup() { - // FIXME! - return null; + return ALL; } + /* + * Default Constructor + */ PPC64Registers() { - // FIXME! - super(null); + super(new RegisterGroup[] { GENERAL, SPECIAL, FLOATING_POINTER, ALL }); } } hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Nov 12 03:25:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 12 Nov 2007 03:25:00 -0000 Subject: [SCM] master: Improve struct display and have TestTypeEntryValue match it. Message-ID: <20071112032459.15639.qmail@sourceware.org> The branch, master has been updated via f3cbb7a3c8679f4a58771e90f55691fa371f62b9 (commit) from 3d96853b2e7b6935288fc4881f2a9230bc743506 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f3cbb7a3c8679f4a58771e90f55691fa371f62b9 Author: Stan Cox Date: Sun Nov 11 22:22:45 2007 -0500 Improve struct display and have TestTypeEntryValue match it. * CompositeType.java (toPrint (int, PrintWriter, Location, ByteBuffer, Format): New. * TestComposite.java (testBigStructure, testLittleStructure): Allow for new formatting. * gen-type-expect-tests.py (j.add_test): Escape \n for value. * gen-type-funit-tests.py (c.add): Escape \n for value. (main): Use newline instead of \n for expected results. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 + .../frysk/debuginfo/gen-type-expect-tests.py | 3 +- frysk-core/frysk/pkglibdir/ChangeLog | 5 + frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 610 +++++++++++++++++--- frysk-core/frysk/value/ChangeLog | 7 + frysk-core/frysk/value/CompositeType.java | 29 +- frysk-core/frysk/value/TestComposite.java | 8 +- 7 files changed, 579 insertions(+), 87 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 83e86a8..1442da3 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-11 Stan Cox + + * gen-type-expect-tests.py (j.add_test): Escape \n for value. + 2007-11-09 Stan Cox * gen-type-expect-tests.py (j.prologue): Throttle ptr tests for now. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 4d748ec..7141cc4 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -168,7 +168,6 @@ public class %s extends TestLib { def start_test(self, tool, name): print(" public void test%s () {" % (name)) -# if (tool == "value" and (name == "Enum" or name == "Struct")): if (tool == "value"): print(''' if (unresolved(5235)) @@ -180,7 +179,7 @@ public class %s extends TestLib { name = name.rstrip() type = type.rstrip().replace("\n","\\n") etype = etype.rstrip() - value = value.rstrip() + value = value.rstrip().replace("\n","\\n") if (tool == "type"): print('\t new Expect("%s","%s"),' % (name, type)) diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 5901a1e..a1120e1 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-11 Stan Cox + + * gen-type-funit-tests.py (c.add): Escape \n for value. + (main): Use newline instead of \n for expected results. + 2007-11-09 Stan Cox * gen-type-funit-tests.py (c.add): Filter quotes, new lines, member "." diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index 6150c40..2c08c47 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -22,7 +22,7 @@ class c: self.c_file.write(";\n") self.c_file.write("// Name: " + var + var_suffix + "\n") # Escape quotes and new lines, remove struct member "." - self.c_file.write("// Value: " + initial.replace('"','\\"').replace('\n',"\\n").replace('{.','{').replace(' .',' ') + "\n") + self.c_file.write("// Value: " + initial.replace('"','\\"').replace('\n',"\n// Value: ").replace('{.','{').replace(' .',' ') + "\n") self.c_file.write("// Type: ") type += type_arr self.c_file.write(type.replace("\n", "\n// Type: ")) @@ -156,18 +156,127 @@ for t in base_types: c_file.write("\nstatic int one = 1, two = 2, three = 3, four = 4;\n") -c_file.add("struct {\n int int_var;\n}", "arr_struct", "{{.int_var=1,\n},{.int_var=2,\n}}", " [2]") -c_file.add("union {\n int int_var;\n float fl;\n}", "arr_union", "{{.int_var=1,\n .fl=1.4012985E-45,\n},{.int_var=1073741824,\n .fl=2.0,\n}}", " [2]") -c_file.add("struct {\n int int_var;\n}", "arr_arr_struct", "{{{.int_var=1,\n},{.int_var=2,\n}},{{.int_var=3,\n},{.int_var=4,\n}}}", " [2][2]") -c_file.add("union {\n int int_var;\n float float_var;\n}", "arr_arr_union", "{{{.int_var=1,\n .float_var=1.4012985E-45,\n},{.int_var=2,\n .float_var=2.802597E-45,\n}},{{.int_var=3,\n .float_var=4.2038954E-45,\n},{.int_var=4,\n .float_var=5.605194E-45,\n}}}", " [2][2]") +c_file.add('''struct { + int int_var; +}''', "arr_struct", +'''{{ + .int_var=1, +},{ + .int_var=2, +}}''', " [2]") +c_file.add( +'''union { + int int_var; + float fl; +}''', "arr_union", +'''{{ + .int_var=1, + .fl=1.4012985E-45, +},{ + .int_var=1073741824, + .fl=2.0, +}}''', " [2]") +c_file.add('''struct { + int int_var; +}''', "arr_arr_struct", '''{{{ + .int_var=1, +},{ + .int_var=2, +}},{{ + .int_var=3, +},{ + .int_var=4, +}}}''', " [2][2]") +c_file.add('''union { + int int_var; + float float_var; +}''', "arr_arr_union", '''{{{ + .int_var=1, + .float_var=1.4012985E-45, +},{ + .int_var=2, + .float_var=2.802597E-45, +}},{{ + .int_var=3, + .float_var=4.2038954E-45, +},{ + .int_var=4, + .float_var=5.605194E-45, +}}}''', " [2][2]") c_file.add("int *", "arr_arr_ptr", "{{&one,&two},{&three,&four}}", " [2][2]") -c_file.add("struct {\n int arr_int[2];\n}", "arr_struct_arr_int", "{{.arr_int={1,2},\n},{.arr_int={3,4},\n}}", " [2]") -c_file.add("struct {\n struct {\n int int_var;\n } struct_a;\n}", "arr_struct_struct", "{{.struct_a={.int_var=1,\n},\n},{.struct_a={.int_var=2,\n},\n}}", " [2]") -c_file.add("struct {\n union {\n int int_var;\n float float_var;\n } struct_a;\n}", "arr_struct_union", "{{.struct_a={.int_var=1,\n .float_var=1.4012985E-45,\n},\n},{.struct_a={.int_var=2,\n .float_var=2.802597E-45,\n},\n}}", " [2]") +c_file.add('''struct { + int arr_int[2]; +}''', "arr_struct_arr_int", '''{{ + .arr_int={1,2}, +},{ + .arr_int={3,4}, +}}''', " [2]") +c_file.add('''struct { + struct { + int int_var; + } struct_a; +}''', "arr_struct_struct", '''{{ + .struct_a={ + .int_var=1, + }, +},{ + .struct_a={ + .int_var=2, + }, +}}''', " [2]") +c_file.add('''struct { + union { + int int_var; + float float_var; + } struct_a; +}''', "arr_struct_union", '''{{ + .struct_a={ + .int_var=1, + .float_var=1.4012985E-45, + }, +},{ + .struct_a={ + .int_var=2, + .float_var=2.802597E-45, + }, +}}''', " [2]") c_file.add("struct {\n int * ptr;\n}", "arr_struct_ptr", "{{&one},{&two}}", " [2]") -c_file.add("union {\n int arr_int[2];\n float arr_float[2];\n}", "arr_union_arr_int", "{{.arr_int={1,2},\n .arr_float={1.4012985E-45,2.802597E-45},\n},{.arr_int={3,4},\n .arr_float={4.2038954E-45,5.605194E-45},\n}}", " [2]") -c_file.add("union {\n struct {\n int int_var;\n } struct_a;\n}", "arr_union_struct", "{{.struct_a={.int_var=1,\n},\n},{.struct_a={.int_var=2,\n},\n}}", " [2]") -c_file.add("union {\n union {\n int int_var;\n } union_a;\n}", "arr_union_union", "{{.union_a={.int_var=1,\n},\n},{.union_a={.int_var=2,\n},\n}}", " [2]") +c_file.add('''union { + int arr_int[2]; + float arr_float[2]; +}''', "arr_union_arr_int", '''{{ + .arr_int={1,2}, + .arr_float={1.4012985E-45,2.802597E-45}, +},{ + .arr_int={3,4}, + .arr_float={4.2038954E-45,5.605194E-45}, +}}''', " [2]") +c_file.add('''union { + struct { + int int_var; + } struct_a; +}''', "arr_union_struct", '''{{ + .struct_a={ + .int_var=1, + }, +},{ + .struct_a={ + .int_var=2, + }, +}}''', " [2]") +c_file.add('''union { + union { + int int_var; + } union_a; +}''', "arr_union_union", '''{{ + .union_a={ + .int_var=1, + }, +},{ + .union_a={ + .int_var=2, + }, +}}''', " [2]") c_file.add("union {\n int * ptr;\n}", "arr_union_ptr", "{{&one}, {&two}}", " [2]", ) # ??? fails # c_file.add("int (*", "arr_ptr_arr", "{&arr_int, &arr_int}", " [2])[2]") @@ -197,69 +306,426 @@ type_type_struct type_minmax_struct = {{%s, %s, %s, %s, %s, %s, %s}, {%s, %s, %s, %s, %s, %s, %s} };\n''' % (limits['char']['min'],limits['short int']['min'],limits['int']['min'],limits['long int']['min'],limits['float']['min'],limits['double']['min'],'"ABC"',limits['char']['max'],limits['short int']['max'],limits['int']['max'],limits['long int']['max'],limits['float']['max'],limits['double']['max'],'"XYZ"')) -c_file.add('''struct {\n unsigned int bit1_0:1;\n unsigned int bit1_1:1;\n char char_2;\n unsigned int bit1_6:1;\n unsigned int bit1_7:1;\n char char_8;\n unsigned int bit1_9:1;\n unsigned int bit1_10:1;\n}''', "bitfields_small", "{1, 0, 0x7f, 1, 0, 0x7f, 1, 0}") -c_file.add('''struct {\n unsigned char char_0;\n int bit1_4:1;\n unsigned int bit1_5:1;\n int bit2_6:2;\n unsigned int bit2_8:2;\n int bit3_10:3;\n unsigned int bit3_13:3;\n int bit9_16:9;\n unsigned int bit9_25:9;\n char char_34;\n}''', "bitfields_bit", "{0x7f, 1, 1, 1, 3, 3, 7, UINT8_MAX, 511, 0x7f}") -c_file.add('''struct {\n short int arr_short[2];\n}''', "struct_arr_short", "{{1, 2}}") -c_file.add('''struct {\n struct {\n int int_var;\n } struct_a;\n}''', "struct_struct", "{{1}}") -c_file.add("struct {\n union {\n int int_var;\n } union_a;\n}", "struct_union", "{{1}}") -c_file.add('''struct {\n int * ptr_int;\n}''', "struct_ptr", "{&one}") -c_file.add('''union {\n int arr_int[4];\n float arr_float[4];\n}''', "union_arr", "{{1, 2, 3, 4}}") -c_file.add('''union {\n struct {\n int int_var;\n } struct_a;\n}''', "union_struct", "{{1}}") -c_file.add('''union {\n union {\n int int_var;\n float float_var;\n } union_a;\n}''', "union_union", "{{1}}") -c_file.add('''union {\n int * ptr_int;\n}''', "union_ptr", "{&one}") -c_file.add('''struct {\n int int_var;\n} *''', "ptr_struct", "") -c_file.add('''union {\n int int_var;\n} *''', "ptr_union", "") -c_file.add('''struct {\n int arr_arr_int[2][2];\n}''', "struct_arr_arr_int", "{{{1, 2}, {3, 4}}}") -# ??? improve indentation -c_file.add('''struct {\n struct {\n int int_var;\n} arr_struct[2];\n}''', "struct_arr_struct", "{{{1}, {2}}}") -c_file.add('''struct {\n union {\n int int_var;\n} arr_union[4];\n}''', "struct_arr_union", "{{{1}, {2}}}") -c_file.add('''struct {\n int * arr_ptr[2];\n}''', "struct_arr_ptr", "{{&one, &two}}") -c_file.add('''struct {\n struct {\n int arr_int[2];\n } struct_arr;\n}''', "struct_struct_arr_int", "{{{1, 2}}}") -c_file.add('''struct {\n struct {\n struct {\n int int_var;\n } struct_a;\n } struct_struct;\n}''', "struct_struct_struct", "{{{1}}}") -c_file.add('''struct {\n struct {\n union {\n char int_var;\n } union_a;\n } struct_union;\n}''', "struct_struct_union", "{{{1}}}") -c_file.add('''struct {\n struct {\n int * ptr_int;\n } sp;\n}''', "struct_struct_ptr", "{{&three}}") -c_file.add('''struct {\n union {\n int arr_int[4];\n } union_arr_int;\n}''', "struct_union_arr", "{{{1, 2, 3, 4}}}") -c_file.add('''struct {\n union {\n struct {\n int int_var;\n } struct_a;\n } union_struct;\n}''', "struct_union_struct", "{{{1}}}") -c_file.add('''struct {\n union {\n union {\n long int int_var;\n float float_var;\n } union_a;\n } union_union;\n}''', "struct_union_union", "{{{1.0}}}") -c_file.add('''struct {\n union {\n int * ptr_int;\n } union_ptr;\n}''', "struct_union_ptr", "{{&four}}") -c_file.add('''struct {\n int (* ptr_arr)[4];\n}''', "struct_ptr_arr", "") -# ??? improve indentation -c_file.add('''struct {\n struct {\n int int_var;\n} * ptr_struct;\n}''', "struct_ptr_struct", "") -c_file.add('''struct {\n union {\n int int_var;\n} * ptr_union;\n}''', "struct_ptr_union", "") -c_file.add('''struct {\n int * * ptr_ptr;\n}''', "struct_ptr_ptr", "") -c_file.add('''union {\n int arr_int[2][2];\n float arr_float[2][2];\n}''', "union_arr_int", "{{{1, 2}, {3, 4}}}") -# ??? improve indentation -c_file.add('''union {\n struct {\n int int_var;\n} arr_struct[2];\n}''', "union_arr_struct", "{{{1}}}") -c_file.add('''union {\n union {\n int int_var;\n float float_var;\n} arr_union[2];\n}''', "union_arr_union", "{{{1.1}}}") -c_file.add('''union {\n int * arr_ptr[4];\n}''', "union_arr_ptr", "{{&one}}") -c_file.add('''union {\n struct {\n int arr_int[4];\n } struct_arr;\n}''', "union_struct_arr_int", "{{{1, 2, 3, 4}}}") -c_file.add('''union {\n struct {\n struct {\n int int_var;\n } struct_a;\n } struct_b;\n}''', "union_struct_struct", "{{{1}}}") -c_file.add('''union {\n struct {\n union {\n int int_var;\n float float_var;\n } union_a;\n } struct_a;\n}''', "union_struct_union", "{{{1.1}}}") -c_file.add('''union {\n struct {\n int * ptr_int;\n } struct_ptr;\n}''', "union_struct_ptr", "{{&one}}") -c_file.add('''union {\n union {\n long long int arr_int[4];\n } union_arr;\n}''', "union_union_arr_int", "{{{1, 2, 3, 4}}}") -c_file.add('''union {\n union {\n struct {\n long long int int_var;\n } struct_a;\n } union_a;\n}''', "union_union_struct", "{{{1}}}") -c_file.add('''union {\n union {\n union {\n int int_var;\n float float_var;\n } union_a;\n } union_b;\n}''', "union_union_union", "{{{1.1}}}") -c_file.add('''union {\n union {\n int * ptr_int;\n float * ptr_float;\n } union_ptr;\n}''', "union_union_ptr", "{{&one}}") -c_file.add('''union {\n int (* ptr_arr)[4];\n}''', "union_ptr_arr", "") -c_file.add('''union {\n struct {\n int int_var;\n} * ptr_struct;\n}''', "union_ptr_struct", "") -c_file.add('''union {\n union {\n int int_var;\n} * ptr_union;\n}''', "union_ptr_union", "") -c_file.add('''union {\n int * * ptr_ptr;\n}''', "union_ptr_ptr", "") -c_file.add('''struct {\n int arr_int[4];\n} *''', "ptr_struct_arr_int", "") -c_file.add('''struct {\n struct {\n int int_var;\n } struct_a;\n} *''', "Ptr_struct_struct", "") -c_file.add('''struct {\n union {\n int int_var;\n } union_a;\n} *''', "ptr_struct_union", "") -c_file.add('''struct {\n int * ptr_int;\n} *''', "ptr_struct_ptr", "") -c_file.add('''union {\n int arr_int[4];\n} *''',"ptr_union_arr_int", "") -c_file.add('''union {\n struct {\n int int_var;\n } struct_a;\n} *''',"ptr_union_struct", "") -c_file.add('''union {\n union {\n int int_var;\n } union_a;\n} *''', "ptr_union_union", "") -c_file.add('''union {\n int * ptr_int;\n} *''', "ptr_union_ptr", "") -c_file.add('''struct {\n int int_var;\n} * *''', "ptr_ptr_struct", "") -c_file.add('''union {\n int int_var;\n} * *''', "ptr_ptr_union", "") +c_file.add( +'''struct { + unsigned int bit1_0:1; + unsigned int bit1_1:1; + char char_2; + unsigned int bit1_6:1; + unsigned int bit1_7:1; + char char_8; + unsigned int bit1_9:1; + unsigned int bit1_10:1; +}''', "bitfields_small", '''{ + .bit1_0=1, + .bit1_1=0, + .char_2='a', + .bit1_6=1, + .bit1_7=0, + .char_8='z', + .bit1_9=1, + .bit1_10=0, +}''') +c_file.add('''struct { + unsigned char char_0; + int bit1_4:1; + unsigned int bit1_5:1; + int bit2_6:2; + unsigned int bit2_8:2; + int bit3_10:3; + unsigned int bit3_13:3; + int bit9_16:9; + unsigned int bit9_25:9; + char char_34; +}''', "bitfields_bit", '''{ + .char_0='A', + .bit1_4=-1, + .bit1_5=1, + .bit2_6=1, + .bit2_8=3, + .bit3_10=3, + .bit3_13=7, + .bit9_16=255, + .bit9_25=511, + .char_34='Z', +}''') +c_file.add('''struct { + short int arr_short[2]; +}''', "struct_arr_short", '''{ + .arr_short={1,2}, +}''') +c_file.add('''struct { + struct { + int int_var; + } struct_a; +}''', "struct_struct", '''{ + .struct_a={ + .int_var=1, + }, +}''') +# HERE HERE ------------------------------------------------------- +c_file.add('''struct { + union { + int int_var; + } union_a; +}''', "struct_union", '''{ + .union_a={ + .int_var=1, + }, +}''') +c_file.add('''struct { + int * ptr_int; +}''', "struct_ptr", "{&one}") +c_file.add('''union { + int arr_int[4]; + float arr_float[4]; +}''', "union_arr", '''{ + .arr_int={1,2,3,4}, + .arr_float={1.4012985E-45,2.802597E-45,4.2038954E-45,5.605194E-45}, +}''') +c_file.add('''union { + struct { + int int_var; + } struct_a; +}''', "union_struct", '''{ + .struct_a={ + .int_var=1, + }, +}''') +c_file.add('''union { + union { + int int_var; + float float_var; + } union_a; +}''', "union_union", '''{ + .union_a={ + .int_var=1, + .float_var=1.4012985E-45, + }, +}''') +c_file.add('''union { + int * ptr_int; +}''', "union_ptr", "{&one}") +c_file.add('''struct { + int int_var; +} *''', "ptr_struct", "") +c_file.add('''union { + int int_var; +} *''', "ptr_union", "") +c_file.add('''struct { + int arr_arr_int[2][2]; +}''', "struct_arr_arr_int", '''{ + .arr_arr_int={{1,2},{3,4}}, +}''') +# ??? array doesn't know the current indentation level +c_file.add('''struct { + struct { + int int_var; +} arr_struct[2]; +}''', "struct_arr_struct", '''{ + .arr_struct={{ + .int_var=1, +},{ + .int_var=2, +}}, +}''') +c_file.add('''struct { + union { + int int_var; +} arr_union[4]; +}''', "struct_arr_union", '''{ + .arr_union={{ + .int_var=1, +},{ + .int_var=2, +},{ + .int_var=0, +},{ + .int_var=0, +}}, +}''') +c_file.add('''struct { + int * arr_ptr[2]; +}''', "struct_arr_ptr", "{{&one, &two}}") +c_file.add('''struct { + struct { + int arr_int[2]; + } struct_arr; +}''', "struct_struct_arr_int", '''{ + .struct_arr={ + .arr_int={1,2}, + }, +}''') +c_file.add('''struct { + struct { + struct { + int int_var; + } struct_a; + } struct_struct; +}''', "struct_struct_struct", '''{ + .struct_struct={ + .struct_a={ + .int_var=1, + }, + }, +}''') +c_file.add('''struct { + struct { + union { + char int_var; + } union_a; + } struct_union; +}''', "struct_struct_union", '''{ + .struct_union={ + .union_a={ + .int_var='~', + }, + }, +}''') +c_file.add('''struct { + struct { + int * ptr_int; + } sp; +}''', "struct_struct_ptr", "{{&three}}") +c_file.add('''struct { + union { + int arr_int[4]; + } union_arr_int; +}''', "struct_union_arr", '''{ + .union_arr_int={ + .arr_int={1,2,3,4}, + }, +}''') +c_file.add('''struct { + union { + struct { + int int_var; + } struct_a; + } union_struct; +}''', "struct_union_struct", '''{ + .union_struct={ + .struct_a={ + .int_var=1, + }, + }, +}''') +c_file.add('''struct { + union { + union { + long int int_var; + float float_var; + } union_a; + } union_union; +}''', "struct_union_union", '''{ + .union_union={ + .union_a={ + .int_var=1, + .float_var=1.4012985E-45, + }, + }, +}''') +c_file.add('''struct { + union { + int * ptr_int; + } union_ptr; +}''', "struct_union_ptr", "{{&four}}") +c_file.add('''struct { + int (* ptr_arr)[4]; +}''', "struct_ptr_arr", "") +# ??? ptr doesn't know the current indentation level +c_file.add('''struct { + struct { + int int_var; +} * ptr_struct; +}''', "struct_ptr_struct", "") +c_file.add('''struct { + union { + int int_var; +} * ptr_union; +}''', "struct_ptr_union", "") +c_file.add('''struct { + int * * ptr_ptr; +}''', "struct_ptr_ptr", "") +c_file.add('''union { + int arr_int[2][2]; hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Nov 12 15:40:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 12 Nov 2007 15:40:00 -0000 Subject: [SCM] master: Turn on TestTypeEntryValue Message-ID: <20071112154026.14031.qmail@sourceware.org> The branch, master has been updated via ee1656cad8a1546e983eb80dc25cf09b6fb5f345 (commit) from f3cbb7a3c8679f4a58771e90f55691fa371f62b9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ee1656cad8a1546e983eb80dc25cf09b6fb5f345 Author: Stan Cox Date: Mon Nov 12 10:38:23 2007 -0500 Turn on TestTypeEntryValue * gen-type-funit-tests.py (c.add_decl): Make variables external. * gen-type-expect-tests.py (j.start_test): Turn on TestTypeEntryValue ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ .../frysk/debuginfo/gen-type-expect-tests.py | 2 +- frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 1442da3..843aaab 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-12 Stan Cox + + * gen-type-expect-tests.py (j.start_test): Turn on TestTypeEntryValue. + 2007-11-11 Stan Cox * gen-type-expect-tests.py (j.add_test): Escape \n for value. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 7141cc4..b73d7ff 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -168,7 +168,7 @@ public class %s extends TestLib { def start_test(self, tool, name): print(" public void test%s () {" % (name)) - if (tool == "value"): + if (False): print(''' if (unresolved(5235)) return; diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index a1120e1..251d540 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-12 Stan Cox + + * gen-type-funit-tests.py (c.add_decl): Make variables external. + 2007-11-11 Stan Cox * gen-type-funit-tests.py (c.add): Escape \n for value. diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index 2c08c47..a23ae24 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -15,7 +15,7 @@ class c: var_suffix = "_var" else: var_suffix = "" - self.c_file.write("static " + type + " " + var + var_suffix + type_arr) + self.c_file.write(type + " " + var + var_suffix + type_arr) self.c_file.write(" unused") if initial != "": self.write(" = " + initial) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 12 15:55:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 12 Nov 2007 15:55:00 -0000 Subject: [SCM] master: Create inline and non-inline(outline) versions of frysk-inlined.c Message-ID: <20071112155553.20674.qmail@sourceware.org> The branch, master has been updated via 90fa678ccd14e9266d81df04f888203f234f47d7 (commit) from ee1656cad8a1546e983eb80dc25cf09b6fb5f345 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 90fa678ccd14e9266d81df04f888203f234f47d7 Author: Andrew Cagney Date: Mon Nov 12 10:52:16 2007 -0500 Create inline and non-inline(outline) versions of frysk-inlined.c frysk-core/frysk/bindir/ChangeLog 2007-11-12 Andrew Cagney * TestFstack.java: Update; funit-inlined renamed to funit-stack-inlined. frysk-core/frysk/debuginfo/ChangeLog 2007-11-12 Andrew Cagney * TestFrameDebugInfo.java: Update; funit-inlined renamed to funit-stack-inlined. frysk-core/frysk/hpd/ChangeLog 2007-11-12 Andrew Cagney * TestWhereCommand.java: Update; funit-inlined renamed to funit-stack-inlined. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-12 Andrew Cagney * funit-stack-inlined.c: Rename funit-inlined.c * funit-stack-outlined.c: New; Non-inline funit-stack-inlined.c. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++ frysk-core/frysk/bindir/TestFstack.java | 4 +- frysk-core/frysk/debuginfo/ChangeLog | 7 +++- frysk-core/frysk/debuginfo/TestFrameDebugInfo.java | 6 ++-- frysk-core/frysk/hpd/ChangeLog | 5 +++ frysk-core/frysk/hpd/TestWhereCommand.java | 8 ++-- frysk-core/frysk/pkglibdir/ChangeLog | 5 +++ frysk-core/frysk/pkglibdir/funit-inlined.c | 24 ------------- .../{funit-hello.c => funit-stack-inlined.c} | 35 ++++++++++++------- .../{funit-hello.c => funit-stack-outlined.c} | 34 ++++++++++++------- 10 files changed, 73 insertions(+), 60 deletions(-) delete mode 100644 frysk-core/frysk/pkglibdir/funit-inlined.c copy frysk-core/frysk/pkglibdir/{funit-hello.c => funit-stack-inlined.c} (83%) copy frysk-core/frysk/pkglibdir/{funit-hello.c => funit-stack-outlined.c} (84%) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index df7585f..e165a0a 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Andrew Cagney + + * TestFstack.java: Update; funit-inlined renamed to + funit-stack-inlined. + 2007-11-09 Sami Wagiaalla Changed CoreFileAtSignal to return core File instead of core Proc. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index c8d6f3c..0d73771 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -140,11 +140,11 @@ public class TestFstack public void testBackTraceWithDashV () { - File coreFile = CoreFileAtSignal.constructCore("funit-inlined"); + File coreFile = CoreFileAtSignal.constructCore("funit-stack-inlined"); e = new Expect (new String[] { Config.getBinFile("fstack").getAbsolutePath (), coreFile.getAbsolutePath(), - Config.getPkgLibFile("funit-inlined").getAbsolutePath(), + Config.getPkgLibFile("funit-stack-inlined").getAbsolutePath(), "-v", "-a" }); diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 843aaab..be11fec 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,7 +1,12 @@ +2007-11-12 Andrew Cagney + + * TestFrameDebugInfo.java: Update; funit-inlined renamed to + funit-stack-inlined. + 2007-11-12 Stan Cox * gen-type-expect-tests.py (j.start_test): Turn on TestTypeEntryValue. - + 2007-11-11 Stan Cox * gen-type-expect-tests.py (j.add_test): Escape \n for value. diff --git a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java index bee94f5..8342b3c 100644 --- a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java +++ b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java @@ -173,7 +173,7 @@ public class TestFrameDebugInfo public void testGetInlinedSubroutines () { - Task task = (new DaemonBlockedAtSignal("funit-inlined")).getMainTask(); + Task task = (new DaemonBlockedAtSignal("funit-stack-inlined")).getMainTask(); DebugInfoFrame frame = DebugInfoStackFactory.createDebugInfoStackTrace(task); LinkedList inlinedSubprograms = frame.getInlinedSubprograms(); @@ -185,7 +185,7 @@ public class TestFrameDebugInfo public void testVirtualStackTrace () { - Task task = (new DaemonBlockedAtSignal("funit-inlined")).getMainTask(); + Task task = (new DaemonBlockedAtSignal("funit-stack-inlined")).getMainTask(); StringWriter stringWriter = new StringWriter(); DebugInfoStackFactory.printVirtualTaskStackTrace(new PrintWriter(stringWriter), task, true, true, true); @@ -203,7 +203,7 @@ public class TestFrameDebugInfo public void testInlinedFunctionDerailment () { - Task task = (new DaemonBlockedAtSignal("funit-inlined")).getMainTask(); + Task task = (new DaemonBlockedAtSignal("funit-stack-inlined")).getMainTask(); DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); Subprogram subprogram = null; diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 0146871..5fdd4a2 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Andrew Cagney + + * TestWhereCommand.java: Update; funit-inlined renamed to + funit-stack-inlined. + 2007-11-09 Andrew Cagney * UserHelp.java: Delete. diff --git a/frysk-core/frysk/hpd/TestWhereCommand.java b/frysk-core/frysk/hpd/TestWhereCommand.java index 5cd4b2d..1beb993 100644 --- a/frysk-core/frysk/hpd/TestWhereCommand.java +++ b/frysk-core/frysk/hpd/TestWhereCommand.java @@ -55,9 +55,9 @@ public class TestWhereCommand extends TestLib { public void testFhpdVirtualStackTrace () { File coreFile = CoreFileAtSignal - .constructCore("funit-inlined"); + .constructCore("funit-stack-inlined"); e = new HpdCoreFileTestbed(coreFile, - Config.getPkgLibFile("funit-inlined"), + Config.getPkgLibFile("funit-stack-inlined"), "Attached to core file.*"); e.send("where\n"); e.expect("\\#0 .*third[^\\r\\n]*\\[inline\\]"); @@ -70,9 +70,9 @@ public class TestWhereCommand extends TestLib { public void testFhpdVirtualStackTraceWithScopes () { File coreFile = CoreFileAtSignal - .constructCore("funit-inlined"); + .constructCore("funit-stack-inlined"); e = new HpdCoreFileTestbed(coreFile, - Config.getPkgLibFile("funit-inlined"), + Config.getPkgLibFile("funit-stack-inlined"), "Attached to core file.*"); e.send("where -scopes\n"); e.expect(".*var3"); diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 251d540..891af0c 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Andrew Cagney + + * funit-stack-inlined.c: Rename funit-inlined.c + * funit-stack-outlined.c: New; Non-inline funit-stack-inlined.c. + 2007-11-12 Stan Cox * gen-type-funit-tests.py (c.add_decl): Make variables external. diff --git a/frysk-core/frysk/pkglibdir/funit-inlined.c b/frysk-core/frysk/pkglibdir/funit-inlined.c deleted file mode 100644 index 0a7b19d..0000000 --- a/frysk-core/frysk/pkglibdir/funit-inlined.c +++ /dev/null @@ -1,24 +0,0 @@ -#include - -inline void third(int arg3){ - int var3 = arg3; - int* a = 0; - a[0] = var3; -} - -inline void second(int arg2){ - int var2 = arg2; - third(var2+1); -} - -inline void first(int arg1){ - int var1 = arg1; - second(var1+1); -} - -int main(){ - int some_int = 1; - first(some_int); - return 0; -} - diff --git a/frysk-core/frysk/pkglibdir/funit-hello.c b/frysk-core/frysk/pkglibdir/funit-stack-inlined.c similarity index 83% copy from frysk-core/frysk/pkglibdir/funit-hello.c copy to frysk-core/frysk/pkglibdir/funit-stack-inlined.c index c2c0e5d..ba9fbac 100644 --- a/frysk-core/frysk/pkglibdir/funit-hello.c +++ b/frysk-core/frysk/pkglibdir/funit-stack-inlined.c @@ -28,7 +28,7 @@ // resulting work to be covered by the GNU General Public // License. Only Red Hat, Inc. may make changes or additions to the // list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code +// License in all respects for all o;f the FRYSK code and other code // used in conjunction with FRYSK except the Non-GPL Code covered by // this exception. If you modify this file, you may extend this // exception to your version of the file, but you are not obligated to @@ -37,20 +37,29 @@ // version and license this file solely under the GPL without // exception. -#include +#include -void -print(char *what) { - while (*what != '\0') { - write(1, what, 1); - what++; - } +// See also funit-stack-inlined.c + +inline void third(int arg3){ + int var3 = arg3; + int* a = 0; + a[0] = var3; +} + +inline void second(int arg2){ + int var2 = arg2; + third(var2+1); } -int -main(int argc, char** argv) { - // XXX: This forgets to check ARGC. - print(argv[1]); - print("\n"); +inline void first(int arg1){ + int var1 = arg1; + second(var1+1); +} + +int main(){ + int some_int = 1; + first(some_int); return 0; } + diff --git a/frysk-core/frysk/pkglibdir/funit-hello.c b/frysk-core/frysk/pkglibdir/funit-stack-outlined.c similarity index 84% copy from frysk-core/frysk/pkglibdir/funit-hello.c copy to frysk-core/frysk/pkglibdir/funit-stack-outlined.c index c2c0e5d..2ce2c93 100644 --- a/frysk-core/frysk/pkglibdir/funit-hello.c +++ b/frysk-core/frysk/pkglibdir/funit-stack-outlined.c @@ -28,7 +28,7 @@ // resulting work to be covered by the GNU General Public // License. Only Red Hat, Inc. may make changes or additions to the // list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code +// License in all respects for all o;f the FRYSK code and other code // used in conjunction with FRYSK except the Non-GPL Code covered by // this exception. If you modify this file, you may extend this // exception to your version of the file, but you are not obligated to @@ -37,20 +37,28 @@ // version and license this file solely under the GPL without // exception. -#include +#include -void -print(char *what) { - while (*what != '\0') { - write(1, what, 1); - what++; - } +// See also funit-stack-inlined.c + +void third(int arg3){ + int var3 = arg3; + int* a = 0; + a[0] = var3; +} + +void second(int arg2){ + int var2 = arg2; + third(var2+1); +} + +void first(int arg1){ + int var1 = arg1; + second(var1+1); } -int -main(int argc, char** argv) { - // XXX: This forgets to check ARGC. - print(argv[1]); - print("\n"); +int main(){ + int some_int = 1; + first(some_int); return 0; } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 12 16:37:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 12 Nov 2007 16:37:00 -0000 Subject: [SCM] master: Use asLong() instead of asBigInteger().longValue() in IntegerUnit. Message-ID: <20071112163743.28316.qmail@sourceware.org> The branch, master has been updated via 65cc62fab99852356333ed0dc98bb91118d4e021 (commit) from 90fa678ccd14e9266d81df04f888203f234f47d7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 65cc62fab99852356333ed0dc98bb91118d4e021 Author: Teresa Thomas Date: Mon Nov 12 11:35:34 2007 -0500 Use asLong() instead of asBigInteger().longValue() in IntegerUnit. frysk-core/frysk/value/ChangeLog 2007-11-12 Teresa Thomas * IntegerUnit.java: Use asLong() instead of asBigInteger().longValue(). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 5 +++++ frysk-core/frysk/value/IntegerUnit.java | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index d00c94f..226c16f 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Teresa Thomas + + * IntegerUnit.java: Use asLong() instead of + asBigInteger().longValue(). + 2007-11-11 Stan Cox * CompositeType.java (toPrint (int, PrintWriter, Location, diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 7178356..663f193 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -126,19 +126,19 @@ public class IntegerUnit public Value logicalAnd(Value v1, Value v2) { return retType.createValue - ((v1.asBigInteger().longValue() == 0 ? false : true) - && (v2.asBigInteger().longValue() == 0 ? false : true) ? 1 : 0); + ((v1.asLong() == 0 ? false : true) + && (v2.asLong() == 0 ? false : true) ? 1 : 0); } public Value logicalOr(Value v1, Value v2) { return retType.createValue - ((v1.asBigInteger().longValue() == 0 ? false : true) - || (v2.asBigInteger().longValue() == 0 ? false : true) ? 1 : 0); + ((v1.asLong() == 0 ? false : true) + || (v2.asLong() == 0 ? false : true) ? 1 : 0); } public Value logicalNegation(Value v1) { return retType.createValue - (v1.asBigInteger().longValue() == 0 ? 1 : 0); + (v1.asLong() == 0 ? 1 : 0); } public boolean getLogicalValue (Value v1) { - return ((v1.asBigInteger().longValue() == 0) ? false : true); + return ((v1.asLong() == 0) ? false : true); } } \ No newline at end of file hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 12 16:58:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 12 Nov 2007 16:58:00 -0000 Subject: [SCM] master: Add HpdTestbed.hpdTerminatingProgram(String). Message-ID: <20071112165848.5967.qmail@sourceware.org> The branch, master has been updated via e1b21136210c5575307114bbb0a66545b141470d (commit) from 65cc62fab99852356333ed0dc98bb91118d4e021 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e1b21136210c5575307114bbb0a66545b141470d Author: Andrew Cagney Date: Mon Nov 12 11:56:08 2007 -0500 Add HpdTestbed.hpdTerminatingProgram(String). frysk-core/frysk/hpd/ChangeLog 2007-11-12 Andrew Cagney * HpdTestbed.java (HpdTestbed(String[])): Make private. (hpdTerminatingProgram(String)): New. * HpdCoreFileTestbed.java: Delete. * TestWhereCommand.java (testFhpdVirtualStackTrace()): Use. (testFhpdVirtualStackTraceWithScopes()): Ditto. frysk-core/frysk/testbed/ChangeLog 2007-11-12 Andrew Cagney * DaemonBlockedAtSignal.java (DaemonBlockedAtSignal(File)): New. * TestCoreFileAtSignal.java (testCoreFileAtSignal()): Enable; simplify. * CoreFileAtSignal.java (constructCore(File)): New. (constructCore(String)): Use. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 6 ++ frysk-core/frysk/hpd/HpdCoreFileTestbed.java | 60 -------------------- frysk-core/frysk/hpd/HpdTestbed.java | 25 ++++++++- frysk-core/frysk/hpd/TestWhereCommand.java | 19 +------ frysk-core/frysk/testbed/ChangeLog | 8 +++ frysk-core/frysk/testbed/CoreFileAtSignal.java | 40 +++++++------ .../frysk/testbed/DaemonBlockedAtSignal.java | 5 ++ frysk-core/frysk/testbed/TestCoreFileAtSignal.java | 32 +++-------- 8 files changed, 75 insertions(+), 120 deletions(-) delete mode 100644 frysk-core/frysk/hpd/HpdCoreFileTestbed.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 5fdd4a2..71e39f5 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-11-12 Andrew Cagney + * HpdTestbed.java (HpdTestbed(String[])): Make private. + (hpdTerminatingProgram(String)): New. + * HpdCoreFileTestbed.java: Delete. + * TestWhereCommand.java (testFhpdVirtualStackTrace()): Use. + (testFhpdVirtualStackTraceWithScopes()): Ditto. + * TestWhereCommand.java: Update; funit-inlined renamed to funit-stack-inlined. diff --git a/frysk-core/frysk/hpd/HpdCoreFileTestbed.java b/frysk-core/frysk/hpd/HpdCoreFileTestbed.java deleted file mode 100644 index b080f5f..0000000 --- a/frysk-core/frysk/hpd/HpdCoreFileTestbed.java +++ /dev/null @@ -1,60 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.io.File; - -import frysk.Config; - -/** - * For fhpd tests that are based on core files. - */ -public class HpdCoreFileTestbed - extends HpdTestbed -{ - public HpdCoreFileTestbed(File coreFile, File exeFile, String startup) { - super(new String[] { - Config.getBinFile("fhpd").getPath (), - coreFile.toString(), - exeFile.toString() - }); - expectPrompt(startup); - } -} diff --git a/frysk-core/frysk/hpd/HpdTestbed.java b/frysk-core/frysk/hpd/HpdTestbed.java index a6ccc73..9914ee5 100644 --- a/frysk-core/frysk/hpd/HpdTestbed.java +++ b/frysk-core/frysk/hpd/HpdTestbed.java @@ -41,6 +41,7 @@ package frysk.hpd; import frysk.junit.TestCase; import frysk.Config; +import frysk.testbed.CoreFileAtSignal; import frysk.expunit.Expect; import frysk.expunit.Match; import frysk.expunit.Regex; @@ -63,7 +64,7 @@ public class HpdTestbed */ private final String prompt = "\\(fhpd\\) "; - protected HpdTestbed(String[] command) { + private HpdTestbed(String[] command) { super(command); TearDownExpect.add(this); TearDownProcess.add(getPid()); @@ -207,4 +208,26 @@ public class HpdTestbed static HpdTestbed run(String program) { return run(program, null); } + + /** + * Start HPD attatched to PROGRAM that is crashing (due to a + * signal). + * + * XXX: The current implementation runs the program until it + * crashes and then pulls a core file from it; the code then loads + * the core-file into the HPD. A future implementation may just + * run the program to the terminating event. + */ + static HpdTestbed hpdTerminatingProgram(String program) { + File exeFile = Config.getPkgLibFile(program); + File coreFile = CoreFileAtSignal.constructCore(exeFile); + HpdTestbed hpd + = new HpdTestbed(new String[] { + Config.getBinFile("fhpd").getPath (), + coreFile.toString(), + exeFile.toString() + }); + hpd.expectPrompt("Attached to core file.*"); + return hpd; + } } diff --git a/frysk-core/frysk/hpd/TestWhereCommand.java b/frysk-core/frysk/hpd/TestWhereCommand.java index 1beb993..9b30104 100644 --- a/frysk-core/frysk/hpd/TestWhereCommand.java +++ b/frysk-core/frysk/hpd/TestWhereCommand.java @@ -39,11 +39,6 @@ package frysk.hpd; -import java.io.File; - -import frysk.Config; -import frysk.testbed.CoreFileAtSignal; - public class TestWhereCommand extends TestLib { public void testHpdTraceStack () { e = HpdTestbed.attachXXX("hpd-c"); @@ -53,12 +48,7 @@ public class TestWhereCommand extends TestLib { } public void testFhpdVirtualStackTrace () { - - File coreFile = CoreFileAtSignal - .constructCore("funit-stack-inlined"); - e = new HpdCoreFileTestbed(coreFile, - Config.getPkgLibFile("funit-stack-inlined"), - "Attached to core file.*"); + e = HpdTestbed.hpdTerminatingProgram("funit-stack-inlined"); e.send("where\n"); e.expect("\\#0 .*third[^\\r\\n]*\\[inline\\]"); e.expect("\\#1 .*second[^\\r\\n]*\\[inline\\]"); @@ -68,12 +58,7 @@ public class TestWhereCommand extends TestLib { } public void testFhpdVirtualStackTraceWithScopes () { - - File coreFile = CoreFileAtSignal - .constructCore("funit-stack-inlined"); - e = new HpdCoreFileTestbed(coreFile, - Config.getPkgLibFile("funit-stack-inlined"), - "Attached to core file.*"); + e = HpdTestbed.hpdTerminatingProgram("funit-stack-inlined"); e.send("where -scopes\n"); e.expect(".*var3"); e.expect(".*var2"); diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index b58b912..01c6bb7 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,11 @@ +2007-11-12 Andrew Cagney + + * DaemonBlockedAtSignal.java (DaemonBlockedAtSignal(File)): New. + * TestCoreFileAtSignal.java (testCoreFileAtSignal()): Enable; + simplify. + * CoreFileAtSignal.java (constructCore(File)): New. + (constructCore(String)): Use. + 2007-11-09 Sami Wagiaalla * CoreFileAtSignal.java (constructCore): Now return core file diff --git a/frysk-core/frysk/testbed/CoreFileAtSignal.java b/frysk-core/frysk/testbed/CoreFileAtSignal.java index 707f5b8..8d058fc 100644 --- a/frysk-core/frysk/testbed/CoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/CoreFileAtSignal.java @@ -40,12 +40,12 @@ package frysk.testbed; import java.io.File; - import frysk.event.Event; import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.ProcBlockAction; import frysk.util.CoredumpAction; +import frysk.Config; public class CoreFileAtSignal extends TestLib { @@ -55,27 +55,31 @@ public class CoreFileAtSignal extends TestLib { * extracts a corefile at that point, and return a Proc representing * that core file. */ - public static File constructCore(String process) { - - final Proc ackProc = (new DaemonBlockedAtSignal(process)).getMainTask().getProc(); - - final CoredumpAction coreDump = new CoredumpAction(ackProc, - new Event() { - - public void execute() { - Manager.eventLoop.requestStop(); - } - }, false); - + public static File constructCore(File exeFile) { + final Proc ackProc + = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + final CoredumpAction coreDump + = new CoredumpAction(ackProc, new Event() { + public void execute() { + Manager.eventLoop.requestStop(); + } + }, false); new ProcBlockAction(ackProc, coreDump); assertRunUntilStop("Running event loop for core file"); - String coreFileName = coreDump.getConstructedFileName(); + // XXX: File.deleteOnExit() isn't reliable - for instance it + // isn't run between test-cases. + TearDownFile core = new TearDownFile(coreFileName); + return core; + } - File xtestCore = new File(coreFileName); - xtestCore.deleteOnExit(); - - return xtestCore; + /** + * Given a path to an executable it will run it until it sigfaults then + * extracts a corefile at that point, and return a Proc representing + * that core file. + */ + public static File constructCore(String process) { + return constructCore(Config.getPkgLibFile(process)); } } diff --git a/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java b/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java index 32afe8f..c44e319 100644 --- a/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java +++ b/frysk-core/frysk/testbed/DaemonBlockedAtSignal.java @@ -43,6 +43,7 @@ import frysk.proc.Action; import frysk.proc.TaskObserver; import frysk.proc.Task; import frysk.proc.Manager; +import java.io.File; /** * Creates an attached process that is blocked at a signal. @@ -83,6 +84,10 @@ public class DaemonBlockedAtSignal { this(new DaemonBlockedAtEntry(program)); } + public DaemonBlockedAtSignal(File exe) { + this(new DaemonBlockedAtEntry(exe)); + } + public Task getMainTask () { return this.mainTask; } diff --git a/frysk-core/frysk/testbed/TestCoreFileAtSignal.java b/frysk-core/frysk/testbed/TestCoreFileAtSignal.java index 6246f26..c4ed8f6 100644 --- a/frysk-core/frysk/testbed/TestCoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/TestCoreFileAtSignal.java @@ -40,35 +40,19 @@ package frysk.testbed; import java.io.File; -import java.io.PrintWriter; -import java.io.StringWriter; - import frysk.Config; import frysk.proc.Proc; -import frysk.stack.StackFactory; import frysk.util.Util; +import frysk.proc.Task; -public class TestCoreFileAtSignal extends TestLib - -{ - +public class TestCoreFileAtSignal extends TestLib { public void testCoreFileAtSignal() { - if (unresolved (4953)) - return; - - StringWriter stringWriter = new StringWriter(); - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - - Proc coreProc = Util.getProcFromCoreFile(coreFile, Config.getPkgLibFile("funit-stacks")); - StackFactory.printTaskStackTrace(new PrintWriter(stringWriter), coreProc - .getMainTask(), false); - - String stackString = stringWriter.getBuffer().toString(); - - assertTrue("Correct stack trace extracted from core file", stackString.contains("fourth")); - assertTrue("Correct stack trace extracted from core file", stackString.contains("third")); - assertTrue("Correct stack trace extracted from core file", stackString.contains("second")); - assertTrue("Correct stack trace extracted from core file", stackString.contains("first")); + File coreExe = Config.getPkgLibFile("funit-asm"); + File coreFile = CoreFileAtSignal.constructCore(coreExe); + Proc coreProc = Util.getProcFromCoreFile(coreFile, coreExe); + Task coreTask = coreProc.getMainTask(); + FryskAsm regs = FryskAsm.createFryskAsm(coreTask.getISA()); + assertEquals("REG0", 1, coreTask.getRegister(regs.REG0)); } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 12 18:10:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 12 Nov 2007 18:10:00 -0000 Subject: [SCM] master: Refactor all frame tests into TestStackCommands; expand. Message-ID: <20071112181055.28434.qmail@sourceware.org> The branch, master has been updated via a67dec4fdb23794fced6454ca317a4eb109e36a6 (commit) from e1b21136210c5575307114bbb0a66545b141470d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a67dec4fdb23794fced6454ca317a4eb109e36a6 Author: Andrew Cagney Date: Mon Nov 12 13:08:20 2007 -0500 Refactor all frame tests into TestStackCommands; expand. frysk-core/frysk/hpd/ChangeLog 2007-11-12 Andrew Cagney * StackCommands.java: Rename FrameCommands.java. * TopLevelCommand.java: Update. * TestStackCommands.java: New. * TestFrameCommands.java: Delete. * TestWhereCommand.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 6 ++ .../hpd/{FrameCommands.java => StackCommands.java} | 4 +- frysk-core/frysk/hpd/TestFrameCommands.java | 63 -------------------- ...estWhereCommand.java => TestStackCommands.java} | 56 +++++++++++++----- frysk-core/frysk/hpd/TopLevelCommand.java | 4 +- 5 files changed, 51 insertions(+), 82 deletions(-) rename frysk-core/frysk/hpd/{FrameCommands.java => StackCommands.java} (97%) delete mode 100644 frysk-core/frysk/hpd/TestFrameCommands.java rename frysk-core/frysk/hpd/{TestWhereCommand.java => TestStackCommands.java} (60%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 71e39f5..0defec5 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-11-12 Andrew Cagney + * StackCommands.java: Rename FrameCommands.java. + * TopLevelCommand.java: Update. + * TestStackCommands.java: New. + * TestFrameCommands.java: Delete. + * TestWhereCommand.java: Delete. + * HpdTestbed.java (HpdTestbed(String[])): Make private. (hpdTerminatingProgram(String)): New. * HpdCoreFileTestbed.java: Delete. diff --git a/frysk-core/frysk/hpd/FrameCommands.java b/frysk-core/frysk/hpd/StackCommands.java similarity index 97% rename from frysk-core/frysk/hpd/FrameCommands.java rename to frysk-core/frysk/hpd/StackCommands.java index a87e0ff..882c849 100644 --- a/frysk-core/frysk/hpd/FrameCommands.java +++ b/frysk-core/frysk/hpd/StackCommands.java @@ -44,9 +44,9 @@ import java.util.List; import frysk.debuginfo.DebugInfoFrame; import frysk.proc.Task; -class FrameCommands extends ParameterizedCommand { +class StackCommands extends ParameterizedCommand { - FrameCommands(String name) { + StackCommands(String name) { super(name, ("Move " + name + " one or more levels in the call stack"), (name + " [num-levels]"), diff --git a/frysk-core/frysk/hpd/TestFrameCommands.java b/frysk-core/frysk/hpd/TestFrameCommands.java deleted file mode 100644 index 028d57b..0000000 --- a/frysk-core/frysk/hpd/TestFrameCommands.java +++ /dev/null @@ -1,63 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -public class TestFrameCommands extends TestLib { - public void testHpdTraceStack () { - e = HpdTestbed.attachXXX("hpd-c"); - // Where - e.send ("where\n"); - e.expect ("where.*#0.*" + prompt); - // int_21 - e.send ("print int_21\n"); - e.expect ("print.*2.*\r\n" + prompt); - // Down - e.send ("d\t"); - e.expect (".*defset.*delete.*detach.*disable.*down.*" + prompt + ".*"); - e.send ("own\n"); - e.expect ("own.*#1.*" + prompt); - // int_21 - e.send ("print int_21\n"); - e.expect ("print.*int_21.*(fhpd)"); - e.send ("up\n"); - e.expect ("up.*#0.*" + prompt); - e.close(); - } -} diff --git a/frysk-core/frysk/hpd/TestWhereCommand.java b/frysk-core/frysk/hpd/TestStackCommands.java similarity index 60% rename from frysk-core/frysk/hpd/TestWhereCommand.java rename to frysk-core/frysk/hpd/TestStackCommands.java index 9b30104..b2d6a47 100644 --- a/frysk-core/frysk/hpd/TestWhereCommand.java +++ b/frysk-core/frysk/hpd/TestStackCommands.java @@ -39,26 +39,26 @@ package frysk.hpd; -public class TestWhereCommand extends TestLib { - public void testHpdTraceStack () { - e = HpdTestbed.attachXXX("hpd-c"); - // Where - e.send ("where\n"); - e.expect ("where.*#0.*" + prompt); - } +public class TestStackCommands extends TestLib { - public void testFhpdVirtualStackTrace () { - e = HpdTestbed.hpdTerminatingProgram("funit-stack-inlined"); - e.send("where\n"); - e.expect("\\#0 .*third[^\\r\\n]*\\[inline\\]"); - e.expect("\\#1 .*second[^\\r\\n]*\\[inline\\]"); - e.expect("\\#2 .*first[^\\r\\n]*\\[inline\\]"); + private void checkWhere(String program, String inline) { + e = HpdTestbed.hpdTerminatingProgram(program); + e.send("where\n"); + e.expect("\\#0 .*third" + inline); + e.expect("\\#1 .*second" + inline); + e.expect("\\#2 .*first" + inline); e.expect("\\#3 .*main"); e.expectPrompt(".*"); } + public void testWhereVirtual () { + checkWhere("funit-stack-inlined", "[^\\r\\n]*\\[inline\\]"); + } + public void testWherePhysical() { + checkWhere("funit-stack-outlined", ""); + } - public void testFhpdVirtualStackTraceWithScopes () { - e = HpdTestbed.hpdTerminatingProgram("funit-stack-inlined"); + private void checkWhereWithScopes(String program) { + e = HpdTestbed.hpdTerminatingProgram(program); e.send("where -scopes\n"); e.expect(".*var3"); e.expect(".*var2"); @@ -66,4 +66,30 @@ public class TestWhereCommand extends TestLib { e.expectPrompt(".*"); e.close(); } + public void testWhereWithVirtualScopes() { + checkWhereWithScopes("funit-stack-inlined"); + } + public void testWhereWithPhysicalScopes() { + checkWhereWithScopes("funit-stack-outlined"); + } + + public void testWhereOne() { + e = HpdTestbed.hpdTerminatingProgram("funit-stack-outlined"); + e.sendCommandExpectPrompt + ("where 1", "\\#0 .*third[^\\r\\n]*\\r\\n\\.\\.\\.\\r\\n"); + } + + public void testDownCompletion () { + e = HpdTestbed.hpdTerminatingProgram("funit-stack-outlined"); + e.send ("d\t"); + e.expect (".*defset.*delete.*detach.*disable.*down.*" + prompt + ".*"); + e.sendCommandExpectPrompt("own", "\\#1.*"); + } + + public void testUpDown () { + e = HpdTestbed.hpdTerminatingProgram("funit-stack-outlined"); + e.sendCommandExpectPrompt("down", "\\#1.*second.*"); + e.sendCommandExpectPrompt("down", "\\#2.*first.*"); + e.sendCommandExpectPrompt("up", "\\#1.*second.*"); + } } diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index 6206fdb..41acaf2 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -85,7 +85,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new ActionPointCommands.Delete()); add(new ActionPointCommands.Disable()); add(new ActionPointCommands.Enable()); - add(new FrameCommands("down")); + add(new StackCommands("down")); add(new StepFinishCommand()); add(new FocusCommand()); add(new GoCommand()); @@ -104,7 +104,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new StepInstructionCommand()); add(new UndefsetCommand()); add(new DbgVariableCommands.Unset()); - add(new FrameCommands("up")); + add(new StackCommands("up")); add(new ViewsetCommand()); add(new WhatCommand()); add(new WhereCommand()); hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 12 18:14:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 12 Nov 2007 18:14:00 -0000 Subject: [SCM] master: Use BigInteger.compareTo for comparisons in logical operations. Message-ID: <20071112181410.29988.qmail@sourceware.org> The branch, master has been updated via 0af7f15678cc58ed51713bb1c76fb384aa58be6c (commit) from a67dec4fdb23794fced6454ca317a4eb109e36a6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0af7f15678cc58ed51713bb1c76fb384aa58be6c Author: Teresa Thomas Date: Mon Nov 12 13:12:27 2007 -0500 Use BigInteger.compareTo for comparisons in logical operations. frysk-core/frysk/value/ChangeLog 2007-11-12 Teresa Thomas * IntegerUnit.java: Use BigInteger for logical operations. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 5 ++++- frysk-core/frysk/value/IntegerUnit.java | 13 +++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 226c16f..39d3690 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,7 +1,10 @@ 2007-11-12 Teresa Thomas + * IntegerUnit.java: Use BigInteger for logical + operations. + * IntegerUnit.java: Use asLong() instead of - asBigInteger().longValue(). + asBigInteger().longValue(). 2007-11-11 Stan Cox diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 663f193..3c6d9e4 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -39,6 +39,7 @@ package frysk.value; +import java.math.BigInteger; /** * Arithmetic and logical Operation handling * for integers. @@ -126,19 +127,19 @@ public class IntegerUnit public Value logicalAnd(Value v1, Value v2) { return retType.createValue - ((v1.asLong() == 0 ? false : true) - && (v2.asLong() == 0 ? false : true) ? 1 : 0); + ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) + && (v2.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) ? 1 : 0); } public Value logicalOr(Value v1, Value v2) { return retType.createValue - ((v1.asLong() == 0 ? false : true) - || (v2.asLong() == 0 ? false : true) ? 1 : 0); + ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) + || (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) ? 1 : 0); } public Value logicalNegation(Value v1) { return retType.createValue - (v1.asLong() == 0 ? 1 : 0); + (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? 1 : 0); } public boolean getLogicalValue (Value v1) { - return ((v1.asLong() == 0) ? false : true); + return ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0) ? false : true); } } \ No newline at end of file hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 12 21:24:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 12 Nov 2007 21:24:00 -0000 Subject: [SCM] master: Re-implement StackCommands; merge in WhereCommand, add "frame". Message-ID: <20071112212431.8191.qmail@sourceware.org> The branch, master has been updated via ed081c0d3afa9702c4d2bbce9ffa39fd02bce1f3 (commit) from 0af7f15678cc58ed51713bb1c76fb384aa58be6c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ed081c0d3afa9702c4d2bbce9ffa39fd02bce1f3 Author: Andrew Cagney Date: Mon Nov 12 16:22:22 2007 -0500 Re-implement StackCommands; merge in WhereCommand, add "frame". frysk-core/frysk/debuginfo/ChangeLog 2007-11-12 Andrew Cagney * DebugInfoStackFactory.java (printStackTrace): Handle -ve numberOfFrames. frysk-core/frysk/hpd/ChangeLog 2007-11-12 Andrew Cagney * TestStackCommands.java (testFrame()): New. * StackCommands.java (Up): New. (Down): New. (Frame): New. * TopLevelCommand.java: Update. * CommandOption.java (Mangitude): Copy to ... * Magnitude.java: ... here. New. * ListCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +- .../frysk/debuginfo/DebugInfoStackFactory.java | 13 +- frysk-core/frysk/hpd/ChangeLog | 9 + frysk-core/frysk/hpd/CommandOption.java | 20 -- frysk-core/frysk/hpd/ListCommand.java | 2 +- .../hpd/{AssignCommand.java => Magnitude.java} | 34 ++-- frysk-core/frysk/hpd/StackCommands.java | 226 ++++++++++++++++---- frysk-core/frysk/hpd/TestStackCommands.java | 7 + frysk-core/frysk/hpd/TopLevelCommand.java | 7 +- frysk-core/frysk/hpd/WhereCommand.java | 115 ---------- 10 files changed, 237 insertions(+), 201 deletions(-) copy frysk-core/frysk/hpd/{AssignCommand.java => Magnitude.java} (79%) delete mode 100644 frysk-core/frysk/hpd/WhereCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index be11fec..9f1cd01 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,5 +1,8 @@ 2007-11-12 Andrew Cagney - + + * DebugInfoStackFactory.java (printStackTrace): Handle -ve + numberOfFrames. + * TestFrameDebugInfo.java: Update; funit-inlined renamed to funit-stack-inlined. diff --git a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java index effea88..325c389 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java +++ b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java @@ -128,10 +128,17 @@ public class DebugInfoStackFactory { for (DebugInfoFrame frame = topFrame; frame != null; frame = frame.getOuterDebugInfoFrame()) { - if (numberOfFrames > 0 && count++ >= numberOfFrames) { - writer.println("..."); - break; + // Terminate early? + if (numberOfFrames > 0) { + if (count >= numberOfFrames) { + writer.println("..."); + break; + } + } else if (numberOfFrames < 0) { + if (count >= -numberOfFrames) + break; } + count++; frame.printLevel(writer); writer.print(" "); diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 0defec5..5f65f6c 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,14 @@ 2007-11-12 Andrew Cagney + * TestStackCommands.java (testFrame()): New. + * StackCommands.java (Up): New. + (Down): New. + (Frame): New. + * TopLevelCommand.java: Update. + * CommandOption.java (Mangitude): Copy to ... + * Magnitude.java: ... here. New. + * ListCommand.java: Update. + * StackCommands.java: Rename FrameCommands.java. * TopLevelCommand.java: Update. * TestStackCommands.java: New. diff --git a/frysk-core/frysk/hpd/CommandOption.java b/frysk-core/frysk/hpd/CommandOption.java index 5672fbd..5f795a1 100644 --- a/frysk-core/frysk/hpd/CommandOption.java +++ b/frysk-core/frysk/hpd/CommandOption.java @@ -85,26 +85,6 @@ abstract class CommandOption { } /** - * Parse sign/magnitude integer. - */ - static class Magnitude { - final int sign; - final int magnitude; - Magnitude(String argument) { - if (argument.charAt(0) == '+') { - sign = 1; - magnitude = Integer.parseInt(argument.substring(1)); - } else if (argument.charAt(0) == '-') { - sign = -1; - magnitude = Integer.parseInt(argument.substring(1)); - } else { - sign = 0; - magnitude = Integer.parseInt(argument); - } - } - } - - /** * Template option; parse a format. */ static abstract class FormatOption extends CommandOption { diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index da46304..8f76a8e 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -71,7 +71,7 @@ class ListCommand extends ParameterizedCommand { }); } private static class Options { - CommandOption.Magnitude length; + Magnitude length; } Object options() { return new Options(); diff --git a/frysk-core/frysk/hpd/AssignCommand.java b/frysk-core/frysk/hpd/Magnitude.java similarity index 79% copy from frysk-core/frysk/hpd/AssignCommand.java copy to frysk-core/frysk/hpd/Magnitude.java index cf2a7e4..065ecf1 100644 --- a/frysk-core/frysk/hpd/AssignCommand.java +++ b/frysk-core/frysk/hpd/Magnitude.java @@ -39,18 +39,26 @@ package frysk.hpd; -public class AssignCommand extends PrintCommand { - - static String full = "The assign command evaluates a scalar expression and " - + "uses the result to\n" - + "replace the previous contents of a program variable. The target " - + "location\n" - + "may be a scalar variable, an element of an array or " - + "structure/record, or\n" + "a de-referenced pointer variable."; - - AssignCommand() { - super("assign", "Change the value of a scalar program variable.", - "assign scalar-target scalar-value [-force]", full); +/** + * Parse sign/magnitude integer; for instance: -1, 1, or +1. + */ +class Magnitude { + final int sign; + final int magnitude; + Magnitude(int sign, int magnitude) { + this.sign = sign; + this.magnitude = magnitude; + } + Magnitude(String argument) { + if (argument.charAt(0) == '+') { + sign = 1; + magnitude = Integer.parseInt(argument.substring(1)); + } else if (argument.charAt(0) == '-') { + sign = -1; + magnitude = Integer.parseInt(argument.substring(1)); + } else { + sign = 0; + magnitude = Integer.parseInt(argument); + } } - } diff --git a/frysk-core/frysk/hpd/StackCommands.java b/frysk-core/frysk/hpd/StackCommands.java index 882c849..af5b84d 100644 --- a/frysk-core/frysk/hpd/StackCommands.java +++ b/frysk-core/frysk/hpd/StackCommands.java @@ -42,21 +42,34 @@ package frysk.hpd; import java.util.Iterator; import java.util.List; import frysk.debuginfo.DebugInfoFrame; +import frysk.debuginfo.DebugInfoStackFactory; import frysk.proc.Task; -class StackCommands extends ParameterizedCommand { +abstract class StackCommands extends ParameterizedCommand { + + private static class Options { + boolean printScopes; + } + Object options() { + return new Options(); + } + + StackCommands(String name, String description, String syntax, + String full) { + super(name, description, syntax, full); + add(new CommandOption("scopes", "include scopes") { + void parse(String arg, Object options) { + ((Options)options).printScopes = true; + } + }); + } StackCommands(String name) { - super(name, - ("Move " + name + " one or more levels in the call stack"), - (name + " [num-levels]"), - ("The up (down) command modifies the current frame" - + " location(s) by adding (subtracting) num-levels. Call" - + " stack movements are all relative, so up effectively" - + " \"moves up\" (or back) in the call stack, to a frame" - + " that has existed longer, while down \"moves down\" in" - + " the call stack, following the progress of program" - + " execution.")); + this(name, + ("Move " + name + " one or more levels in the call stack"), + (name + " [num-levels]"), + ("Move up (towards the stack top or inner most frame) or" + + " or down (towards the stack bottom or outer most frame)")); } int complete(CLI cli, PTSet ptset, String incomplete, int base, @@ -64,46 +77,169 @@ class StackCommands extends ParameterizedCommand { return -1; } - public void interpret(CLI cli, Input cmd, Object options) { - PTSet ptset = cli.getCommandPTSet(cmd); - int level = 1; - boolean down = true; + static private void printStack(CLI cli, DebugInfoFrame frame, + int stopLevel, Options options) { + DebugInfoStackFactory.printStackTrace(cli.outWriter, frame, + stopLevel, true, + options.printScopes, true); + } + static private void printFrame(CLI cli, DebugInfoFrame frame, + Options options) { + printStack(cli, frame, -1, options); + } - if (cmd.size() != 0) - level = Integer.parseInt(cmd.parameter(0)); + static private void select(CLI cli, PTSet ptset, Magnitude whereTo, + Options options) { + for (Iterator i = ptset.getTaskData(); i.hasNext(); ) { + TaskData td = (TaskData)i.next(); + Task task = td.getTask(); + td.toPrint(cli.outWriter, true); + cli.outWriter.println(); + DebugInfoFrame currentFrame = cli.getTaskFrame(task); + // Where to? + int newLevel; + if (whereTo.sign > 0) { + newLevel = currentFrame.level() + whereTo.magnitude; + } else if (whereTo.sign < 0) { + newLevel = currentFrame.level() - whereTo.magnitude; + } else { + newLevel = whereTo.magnitude; + } + // Get there. + DebugInfoFrame newFrame = currentFrame; + while (newFrame != null && newFrame.level() != newLevel) { + if (newFrame.level() < newLevel) { + newFrame = newFrame.getOuterDebugInfoFrame(); + } else { + newFrame = newFrame.getInnerDebugInfoFrame(); + } + } + // Success? + if (newFrame == null) { + // Reached end-of-stack + if (currentFrame.level() > newLevel) { + cli.outWriter.println("Top of stack"); + } else { + cli.outWriter.println("Bottom of stack"); + } + } else if (newFrame == currentFrame) { + // Same frame; just print it. + printFrame(cli, newFrame, options); + } else { + // New frame, change it. + cli.setTaskFrame(task, newFrame); + printFrame(cli, newFrame, options); + } + } + } - // For user command 'down', move a level towards the bottom of the - // call-stack - if (cmd.getAction().compareTo("down") == 0) - down = true; - // For user command 'up', move a level towards the top of the call-stack - else if (cmd.getAction().compareTo("up") == 0) - down = false; + static class Down extends StackCommands { + Down() { + super("down"); + } + void interpret(CLI cli, Input input, Object options) { + int count; + switch (input.size()) { + case 0: + count = 1; + break; + case 1: + count = Integer.parseInt(input.parameter(0)); + break; + default: + throw new InvalidCommandException("too many arguments"); + } + select(cli, cli.getCommandPTSet(input), new Magnitude(+1, count), + (Options)options); + } + } - Iterator taskIter = ptset.getTasks(); - while (taskIter.hasNext()) { - Task task = (Task) taskIter.next(); - DebugInfoFrame currentFrame = cli.getTaskFrame(task); - DebugInfoFrame tmpFrame = currentFrame; + static class Up extends StackCommands { + Up() { + super("up"); + } + void interpret(CLI cli, Input input, Object options) { + int count; + switch (input.size()) { + case 0: + count = 1; + break; + case 1: + count = Integer.parseInt(input.parameter(0)); + break; + default: + throw new InvalidCommandException("too many arguments"); + } + select(cli, cli.getCommandPTSet(input), new Magnitude(-1, count), + (Options)options); + } + } - int l = level; - while (tmpFrame != null && l != 0) { - if (down) - tmpFrame = tmpFrame.getOuterDebugInfoFrame(); - else - tmpFrame = tmpFrame.getInnerDebugInfoFrame(); - l = l - 1; + static class Frame extends StackCommands { + Frame() { + super("frame"); + } + void interpret(CLI cli, Input input, Object options) { + Magnitude count; + switch (input.size()) { + case 0: + count = new Magnitude(+1, 0); // go no where + break; + case 1: + count = new Magnitude(input.parameter(0)); + break; + default: + throw new InvalidCommandException("too many arguments"); } + select(cli, cli.getCommandPTSet(input), count, (Options)options); + } + } + + static class Where extends StackCommands { + Where() { + super("where", + "Display the current execution location and call stack", + "where [ {num-levels ] [ -scopes ]", + ("The where command displays the current execution" + + " location(s) and the call stack(s) - or sequence" + + " of procedure calls - which led to that point.")); + } - if (tmpFrame != null && tmpFrame != currentFrame) { - cli.setTaskFrame(task, tmpFrame); + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return -1; + } + + public void interpret(CLI cli, Input input, Object o) { + int levels; + switch (input.size()) { + case 0: + levels = 0; + break; + case 1: + levels = Integer.parseInt(input.parameter(0)); + break; + default: + throw new InvalidCommandException("Too many arguments"); } - if (tmpFrame == null) - tmpFrame = currentFrame; - tmpFrame.printLevel(cli.outWriter); - cli.outWriter.print(" "); - tmpFrame.toPrint(cli.outWriter, false); - cli.outWriter.println(); + Options options = (Options)o; + PTSet ptset = cli.getCommandPTSet(input); + for (Iterator i = ptset.getTaskData(); i.hasNext(); ) { + TaskData td = (TaskData)i.next(); + Task task = td.getTask(); + DebugInfoFrame currentFrame = cli.getTaskFrame(task); + td.toPrint(cli.outWriter, true); + cli.outWriter.println(); + // XXX: How come the pt set code didn't sort this out; + // filtering out running tasks??? + if (cli.getSteppingEngine() == null + || !cli.getSteppingEngine().isTaskRunning(task)) { + printStack(cli, currentFrame, levels, options); + } else { + cli.outWriter.println("Running task?"); + } + } + cli.outWriter.flush(); } } -} \ No newline at end of file +} diff --git a/frysk-core/frysk/hpd/TestStackCommands.java b/frysk-core/frysk/hpd/TestStackCommands.java index b2d6a47..41483e8 100644 --- a/frysk-core/frysk/hpd/TestStackCommands.java +++ b/frysk-core/frysk/hpd/TestStackCommands.java @@ -88,8 +88,15 @@ public class TestStackCommands extends TestLib { public void testUpDown () { e = HpdTestbed.hpdTerminatingProgram("funit-stack-outlined"); + e.sendCommandExpectPrompt("where 1", "\\#0.*third.*"); e.sendCommandExpectPrompt("down", "\\#1.*second.*"); e.sendCommandExpectPrompt("down", "\\#2.*first.*"); e.sendCommandExpectPrompt("up", "\\#1.*second.*"); } + + public void testFrame() { + e = HpdTestbed.hpdTerminatingProgram("funit-stack-outlined"); + e.sendCommandExpectPrompt("frame 3", "\\#3.*main.*"); + e.sendCommandExpectPrompt("frame 1", "\\#1.*second.*"); + } } diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index 41acaf2..b4bddf9 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -85,7 +85,10 @@ public class TopLevelCommand extends MultiLevelCommand { add(new ActionPointCommands.Delete()); add(new ActionPointCommands.Disable()); add(new ActionPointCommands.Enable()); - add(new StackCommands("down")); + add(new StackCommands.Down()); + add(new StackCommands.Up()); + add(new StackCommands.Frame()); + add(new StackCommands.Where()); add(new StepFinishCommand()); add(new FocusCommand()); add(new GoCommand()); @@ -104,10 +107,8 @@ public class TopLevelCommand extends MultiLevelCommand { add(new StepInstructionCommand()); add(new UndefsetCommand()); add(new DbgVariableCommands.Unset()); - add(new StackCommands("up")); add(new ViewsetCommand()); add(new WhatCommand()); - add(new WhereCommand()); add(new WhichsetsCommand()); add(new DisplayCommand()); add(new RunCommand()); diff --git a/frysk-core/frysk/hpd/WhereCommand.java b/frysk-core/frysk/hpd/WhereCommand.java deleted file mode 100644 index ced71cf..0000000 --- a/frysk-core/frysk/hpd/WhereCommand.java +++ /dev/null @@ -1,115 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -import java.util.Iterator; -import frysk.proc.Task; hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 12 22:47:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 12 Nov 2007 22:47:00 -0000 Subject: [SCM] master: Add an int return type for logical, equality and relational operations. Message-ID: <20071112224704.16705.qmail@sourceware.org> The branch, master has been updated via c105e3372fba89b087d26ed5f4e98546851714bb (commit) via e13132fb16f45165b5d1a3ce9aa54f87b2bfa5d3 (commit) from ed081c0d3afa9702c4d2bbce9ffa39fd02bce1f3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c105e3372fba89b087d26ed5f4e98546851714bb Author: Teresa Thomas Date: Mon Nov 12 17:29:30 2007 -0500 Add an int return type for logical, equality and relational operations. frysk-core/frysk/value/ChangeLog 2007-11-12 Teresa Thomas * ArithmeticUnit.java (intType): New. (ArithmeticUnit): New. * IntegerUnit.java (IntegerUnit): Call super. * FloatingPointUnit.java (FloatingPointUnit): Ditto. * AddressUnit.java (AddressUnit): Ditto. * IntegerType.java (getALU): Give wordSize to all ALUs. * FloatingPointType.java (getALU): Ditto. commit e13132fb16f45165b5d1a3ce9aa54f87b2bfa5d3 Author: Teresa Thomas Date: Mon Nov 12 17:28:25 2007 -0500 Comments added. frysk-core/frysk/value/ChangeLog 2007-11-12 Teresa Thomas * ArrayType.java (getALU): Comments added. * PointerType.java (getALU): Comments added. * Type.java (getALU): Comments added. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/AddressUnit.java | 2 ++ frysk-core/frysk/value/ArithmeticUnit.java | 16 ++++++++++++++++ frysk-core/frysk/value/ArrayType.java | 9 +++++---- frysk-core/frysk/value/ChangeLog | 14 ++++++++++++++ frysk-core/frysk/value/FloatingPointType.java | 16 ++++++++-------- frysk-core/frysk/value/FloatingPointUnit.java | 6 ++++-- frysk-core/frysk/value/IntegerType.java | 17 ++++++++--------- frysk-core/frysk/value/IntegerUnit.java | 9 ++++++--- frysk-core/frysk/value/PointerType.java | 15 +++++++-------- frysk-core/frysk/value/Type.java | 4 ++++ 10 files changed, 74 insertions(+), 34 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index 5d61db0..5f9b8f5 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -49,12 +49,14 @@ extends ArithmeticUnit private final int wordSize; public AddressUnit (ArrayType t, int wordSize) { + super (wordSize); retType = new PointerType(t.getName(), ByteOrder.BIG_ENDIAN, wordSize, t.getType()); this.wordSize = wordSize; } public AddressUnit (PointerType t, int wordSize) { + super (wordSize); retType = t; this.wordSize = wordSize; } diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index 1daa863..e68df96 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -39,14 +39,30 @@ package frysk.value; +import inua.eio.ByteOrder; + /** * Arithmetic and Logical Operation handling * for different types. */ public abstract class ArithmeticUnit { + // Return type based on the type of operands - used for + // most operations. protected ArithmeticType retType; + // Integer return type for relational, equality + // and logical operations. + protected IntegerType intType; + + protected ArithmeticUnit(int wordSize) { + // XXX: Is endianness okay? + // Create an int type with size equal to word + // size of machine. + intType = new UnsignedType ("int", ByteOrder.LITTLE_ENDIAN, + wordSize); + } + // Multiplicative and Additive expressions public Value add(Value v1, Value v2) { throw new InvalidOperatorException diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 9505874..12d2480 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -252,14 +252,15 @@ public class ArrayType this.toPrint("", writer); } + /* getALUs are double dispatch functions to determine + * the ArithmeticUnit for an operation between two types. + */ public ArithmeticUnit getALU(Type type, int wordSize) { return type.getALU(this, wordSize); - } - + } public ArithmeticUnit getALU(IntegerType type, int wordSize) { return new AddressUnit(this, wordSize); - } - + } public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 39d3690..9744fcc 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,19 @@ 2007-11-12 Teresa Thomas + * ArithmeticUnit.java (intType): New. + (ArithmeticUnit): New. + * IntegerUnit.java (IntegerUnit): Call super. + * FloatingPointUnit.java (FloatingPointUnit): Ditto. + * AddressUnit.java (AddressUnit): Ditto. + * IntegerType.java (getALU): Give wordSize to all ALUs. + * FloatingPointType.java (getALU): Ditto. + + * ArrayType.java (getALU): Comments added. + * PointerType.java (getALU): Comments added. + * Type.java (getALU): Comments added. + +2007-11-12 Teresa Thomas + * IntegerUnit.java: Use BigInteger for logical operations. diff --git a/frysk-core/frysk/value/FloatingPointType.java b/frysk-core/frysk/value/FloatingPointType.java index f20a8e8..f0456d2 100644 --- a/frysk-core/frysk/value/FloatingPointType.java +++ b/frysk-core/frysk/value/FloatingPointType.java @@ -93,18 +93,18 @@ public class FloatingPointType location.put(order(), f.toByteArray(getSize()), 0); } + /* getALUs are double dispatch functions to determine + * the ArithmeticUnit for an operation between two types. + */ public ArithmeticUnit getALU(Type type, int wordSize) { return type.getALU(this, wordSize); - } - + } public ArithmeticUnit getALU(IntegerType type, int wordSize) { - return new FloatingPointUnit(this); - } - + return new FloatingPointUnit(this, wordSize); + } public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { - return new FloatingPointUnit(this, type); - } - + return new FloatingPointUnit(this, type, wordSize); + } public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index dd71a5a..c7bee21 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -46,12 +46,14 @@ package frysk.value; public class FloatingPointUnit extends ArithmeticUnit { - public FloatingPointUnit (FloatingPointType t1, FloatingPointType t2) { + public FloatingPointUnit (FloatingPointType t1, FloatingPointType t2, int wSize) { + super (wSize); // Return type should be the larger type. retType = (t1.getSize() > t2.getSize()) ? t1 : t2; } - public FloatingPointUnit (FloatingPointType t1) { + public FloatingPointUnit (FloatingPointType t1, int wSize) { + super (wSize); retType = t1; } diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index 8cf8778..28ed015 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -78,22 +78,21 @@ public abstract class IntegerType putBigInteger(location, i); } + /* getALUs are double dispatch functions to determine + * the ArithmeticUnit for an operation between two types. + */ public ArithmeticUnit getALU(Type type, int wordSize) { return type.getALU(this, wordSize); - } - + } public ArithmeticUnit getALU(IntegerType type, int wordSize) { - return new IntegerUnit(this, type); - } - + return new IntegerUnit(this, type, wordSize); + } public ArithmeticUnit getALU(PointerType type, int wordSize) { return new AddressUnit(type, wordSize); - } - + } public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { - return new FloatingPointUnit(type); + return new FloatingPointUnit(type, wordSize); } - public ArithmeticUnit getALU(ArrayType type, int wordSize) { return new AddressUnit(type, wordSize); } diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 3c6d9e4..1f96e2c 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -40,14 +40,17 @@ package frysk.value; import java.math.BigInteger; + /** - * Arithmetic and logical Operation handling - * for integers. + * Arithmetic and logical Operation handling + * for integers. All arithmetic done using + * BigInteger. */ public class IntegerUnit extends ArithmeticUnit { - public IntegerUnit (IntegerType t1, IntegerType t2) { + public IntegerUnit (IntegerType t1, IntegerType t2, int wordSize) { + super (wordSize); // Return type should be the larger type. retType = (t1.getSize() > t2.getSize()) ? t1 : t2; diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 90a84f7..d056ec1 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -130,22 +130,21 @@ public class PointerType return dereference (offset, taskMem) ; } + /* getALUs are double dispatch functions to determine + * the ArithmeticUnit for an operation between two types. + */ public ArithmeticUnit getALU(Type type, int wordSize) { return type.getALU(this, wordSize); - } - + } public ArithmeticUnit getALU(IntegerType type, int wordSize) { return new AddressUnit(this, wordSize); - } - + } public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); - } - + } public ArithmeticUnit getALU(FloatingPointType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); - } - + } public ArithmeticUnit getALU(ArrayType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index 7f3bf17..9188070 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -128,6 +128,10 @@ public abstract class Type { return stringWriter.toString(); } + /* getALUs are double dispatch functions to determine the + * ArithmeticUnit for an arithmetic or logical operation + * between two types. + */ public ArithmeticUnit getALU(Type type, int wordSize) { throw new RuntimeException("Invalid Arithmetic Unit"); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 12 23:58:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 12 Nov 2007 23:58:00 -0000 Subject: [SCM] master: Pass both CORE&EXE to fstack; avoid path length problems. Message-ID: <20071112235838.10152.qmail@sourceware.org> The branch, master has been updated via 0631ebed24c1df74fb903d8429916768602aca43 (commit) from c105e3372fba89b087d26ed5f4e98546851714bb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0631ebed24c1df74fb903d8429916768602aca43 Author: Andrew Cagney Date: Mon Nov 12 18:56:31 2007 -0500 Pass both CORE&EXE to fstack; avoid path length problems. frysk-core/frysk/bindir/ChangeLog 2007-11-12 Andrew Cagney * TestFstack.java (fstack(String,String[])): New; use throughout. (tearDown()): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 3 + frysk-core/frysk/bindir/TestFstack.java | 128 +++++++++++++----------------- 2 files changed, 59 insertions(+), 72 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index e165a0a..036a5a8 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,5 +1,8 @@ 2007-11-12 Andrew Cagney + * TestFstack.java (fstack(String,String[])): New; use throughout. + (tearDown()): Delete. + * TestFstack.java: Update; funit-inlined renamed to funit-stack-inlined. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index 0d73771..33f7a78 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -44,6 +44,7 @@ import java.io.File; import frysk.Config; import frysk.expunit.Expect; import frysk.testbed.CoreFileAtSignal; +import frysk.testbed.TearDownExpect; import frysk.testbed.TestLib; /** @@ -54,104 +55,87 @@ import frysk.testbed.TestLib; public class TestFstack extends TestLib { - Expect e; - - public void tearDown () - { - if (e != null) - e.close (); - e = null; - super.tearDown(); + /** + * Start FSTACK with both a core file and an executable; avoids + * problems with Linux's bone-head COREFILE format storing only + * the first 50 characters of the executable. + */ + private Expect fstack(String program, String[] args) { + File coreExe = Config.getPkgLibFile(program); + File coreFile = CoreFileAtSignal.constructCore(coreExe); + String[] argv = new String[args.length + 3]; + int argc = 0; + argv[argc++] = Config.getBinFile("fstack").getAbsolutePath(); + argv[argc++] = coreFile.getAbsolutePath(); + argv[argc++] = coreExe.getAbsolutePath(); + for (int i = 0; i < args.length; i++) { + argv[argc + i] = args[i]; + } + Expect e = new Expect(argv); + TearDownExpect.add(e); + return e; } public void testBackTrace () { - - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath() - }); + Expect e = fstack("funit-stack-outlined", new String[0]); // Just look for main. e.expect ("main"); } public void testBackTraceWithParams () { - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - "--print","params" - }); - e.expect ("int param1"); + Expect e = fstack("funit-stack-outlined", + new String[] { "-print", "params" }); + e.expect("\\#0 .* third\\(int arg3 = 3\\)"); + e.expect("\\#1 .* second\\(int arg2 = 2\\)"); + e.expect("\\#2 .* first\\(int arg1 = 1\\)"); + e.expect("\\#3 .* main\\(\\)"); } public void testBackTraceWithScopes () { - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - "--print", "scopes" - }); - e.expect ("int one.*int two"); + Expect e = fstack("funit-stack-outlined", + new String[] { "--print", "scopes" }); + e.expect("\\#0 .* third\\(\\)"); + e.expect("int var3"); + e.expect("\\#1 .* second\\(\\)"); + e.expect("int var2"); + e.expect("\\#2 .* first\\(\\)"); + e.expect("int var1"); + e.expect("\\#3 .* main\\(\\)"); + e.expect("int some_int"); } public void testBackTraceWithFullpath () { - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - "--print", "fullpath" - }); + Expect e = fstack("funit-stack-outlined", + new String[] { "--print", "fullpath" }); e.expect (Config.getRootSrcDir() + ".*" - + "funit-stacks" + + "funit-stack-outlined" + ".c#"); } public void testBackTraceWithDashA () { - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - "-a" - }); - e.expect ("fourth.*int param1.*int param2.*int param3.*" - + Config.getRootSrcDir() - + ".*" - + "funit-stacks" + "\\.c#" - + ".*char var1.*" - + ""); + Expect e = fstack("funit-stack-outlined", new String[] { "-a" }); + e.expect("\\#0 .* in third\\(int arg3 = 3\\)" + + ".*" + Config.getRootSrcDir() + + ".*" + "funit-stack-outlined" + "\\.c#" + + ".*int var3.*"); + e.expect("\\#1"); } public void testBackTraceWithDashC () { - File coreFile = CoreFileAtSignal.constructCore("funit-stacks"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - "-c" - }); - - e.expect ("fourth.*int param1.*int param2.*int param3.*" - + Config.getRootSrcDir() - + ".*" - + "funit-stacks" + "\\.c#" - + ""); + Expect e = fstack("funit-stack-outlined", new String[] { "-c" }); + e.expect("\\#0 .* in third\\(int arg3 = 3\\)" + + ".*" + Config.getRootSrcDir() + + ".*" + "funit-stack-outlined" + "\\.c#"); + e.expect("\\#1"); } public void testBackTraceWithDashV () { - - File coreFile = CoreFileAtSignal.constructCore("funit-stack-inlined"); - e = new Expect (new String[] { - Config.getBinFile("fstack").getAbsolutePath (), - coreFile.getAbsolutePath(), - Config.getPkgLibFile("funit-stack-inlined").getAbsolutePath(), - "-v", - "-a" - }); - e.expect("#0 .*third[^\r\n]*\\[inline\\]" - + ".*#1 .*second[^\r\n]*\\[inline\\]" - + ".*#2 .*first[^\r\n]*\\[inline\\]" - + ".*#3 .*main"); + Expect e = fstack("funit-stack-inlined", new String[] { "-v", "-a" }); + e.expect("\\#0 .*third[^\\r\\n]*\\[inline\\]"); + e.expect("\\#1 .*second[^\\r\\n]*\\[inline\\]"); + e.expect("\\#2 .*first[^\\r\\n]*\\[inline\\]"); + e.expect("\\#3 .*main"); } } hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Nov 13 00:41:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 13 Nov 2007 00:41:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071113004151.10165.qmail@sourceware.org> The branch, master has been updated via 815b8c4c2b6a75432eddf73cb74df27e9553acb5 (commit) via 847686667e0bee61585272f989e62d68595b4188 (commit) from 0631ebed24c1df74fb903d8429916768602aca43 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 815b8c4c2b6a75432eddf73cb74df27e9553acb5 Merge: 847686667e0bee61585272f989e62d68595b4188 0631ebed24c1df74fb903d8429916768602aca43 Author: Stan Cox Date: Mon Nov 12 19:39:55 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 847686667e0bee61585272f989e62d68595b4188 Author: Stan Cox Date: Mon Nov 12 19:39:16 2007 -0500 Fix line numbers and current line position. * ListCommand.java (interpret): Initialize from function PC. Right adjust line numbers. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/ListCommand.java | 25 +++++++++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 5f65f6c..75453df 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-12 Stan Cox + + * ListCommand.java (interpret): Initialize from function PC. + Right adjust line numbers. + 2007-11-12 Andrew Cagney * TestStackCommands.java (testFrame()): New. diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index 8f76a8e..c4f3cc4 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -132,7 +132,7 @@ class ListCommand extends ParameterizedCommand { line = exec_line - 10; } - if (file== null) { + if (file == null) { if (frame.getLines().length > 0) { file = (frame.getLines()[0]).getFile(); if (file == null) { @@ -141,7 +141,8 @@ class ListCommand extends ParameterizedCommand { return; } line = (frame.getLines()[0]).getLine() - 10; - exec_line = line; + if (exec_line == 0) + exec_line = line; } else { cli.outWriter.println("No source for current frame"); @@ -158,16 +159,28 @@ class ListCommand extends ParameterizedCommand { boolean display = false; int endLine = line + StrictMath.abs(windowSize); String flag = ""; - while ((str = lr.readLine()) != null) { + while ((str = lr.readLine()) != null) { if (lr.getLineNumber() == line) display = true; else if (lr.getLineNumber() == endLine) break; if (display && lr.getLineNumber() == exec_line) flag = "*"; - - if (display) { - cli.outWriter.println(lr.getLineNumber() + flag + "\t "+ str); + else + flag = " "; + + if (display) { + int lineNumber = lr.getLineNumber(); + String rightAdjust; + if (lineNumber < 10) + rightAdjust = " "; + else if (lineNumber < 100) + rightAdjust = " "; + else if (lineNumber < 1000) + rightAdjust = " "; + else + rightAdjust = ""; + cli.outWriter.println(flag + rightAdjust + lineNumber + "\t "+ str); flag = ""; } } hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Tue Nov 13 17:17:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 13 Nov 2007 17:17:00 -0000 Subject: [SCM] master: swagiaal: Marked ltrace tests are unresolvedx8664 Message-ID: <20071113171710.15843.qmail@sourceware.org> The branch, master has been updated via b9945ac4ff2ab204f6c340a90bbaba11f8265266 (commit) via 826eaed4d19d4144b1bee0e843122735a0992b52 (commit) via 2e673124a3c0f4158f9800ecc5a719d03710c4ab (commit) from 815b8c4c2b6a75432eddf73cb74df27e9553acb5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b9945ac4ff2ab204f6c340a90bbaba11f8265266 Author: Sami Wagiaalla Date: Tue Nov 13 12:14:41 2007 -0500 swagiaal: Marked ltrace tests are unresolvedx8664 + 2007-11-13 Sami Wagiaalla + + * TestLtrace.java (testAllLibrariesGetDetected): Marked + as unresolvedx8664. + (testCallRecorded): Ditto. + (testArgumentsCorrect1): Ditto. commit 826eaed4d19d4144b1bee0e843122735a0992b52 Author: Sami Wagiaalla Date: Tue Nov 13 10:52:10 2007 -0500 swagiaal: Marked testHpdBreakMultiThreadedContinue as unresolved. +2007-11-13 Sami Wagiaalla + + * TestBreakpoints.java (testHpdBreakMultiThreadedContinue): Marked + test as unresolved. + commit 2e673124a3c0f4158f9800ecc5a719d03710c4ab Author: Sami Wagiaalla Date: Tue Nov 13 10:46:45 2007 -0500 swagiaal: Removed value asserstion from TestFstack::testBackTraceWithParams. frysk-core/frysk/bindir/ChangeLog +2007-11-13 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithParams): Removed value + asserstion. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/TestFstack.java | 6 +++--- frysk-core/frysk/ftrace/ChangeLog | 7 +++++++ frysk-core/frysk/ftrace/TestLtrace.java | 11 +++++++++++ frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/TestBreakpoints.java | 3 +++ frysk-top/.project | 2 +- 7 files changed, 35 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 036a5a8..534330e 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-13 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithParams): Removed value + asserstion. + 2007-11-12 Andrew Cagney * TestFstack.java (fstack(String,String[])): New; use throughout. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index 33f7a78..58f1323 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -85,9 +85,9 @@ public class TestFstack public void testBackTraceWithParams () { Expect e = fstack("funit-stack-outlined", new String[] { "-print", "params" }); - e.expect("\\#0 .* third\\(int arg3 = 3\\)"); - e.expect("\\#1 .* second\\(int arg2 = 2\\)"); - e.expect("\\#2 .* first\\(int arg1 = 1\\)"); + e.expect("\\#0 .* third\\(int arg3.*\\)"); + e.expect("\\#1 .* second\\(int arg2.*\\)"); + e.expect("\\#2 .* first\\(int arg1.*\\)"); e.expect("\\#3 .* main\\(\\)"); } diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index 2be067c..ce715bc 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,10 @@ +2007-11-13 Sami Wagiaalla + + * TestLtrace.java (testAllLibrariesGetDetected): Marked + as unresolvedx8664. + (testCallRecorded): Ditto. + (testArgumentsCorrect1): Ditto. + 2007-11-08 Petr Machata * MappingController.java: New file. diff --git a/frysk-core/frysk/ftrace/TestLtrace.java b/frysk-core/frysk/ftrace/TestLtrace.java index f5efc39..cdbd281 100644 --- a/frysk-core/frysk/ftrace/TestLtrace.java +++ b/frysk-core/frysk/ftrace/TestLtrace.java @@ -69,6 +69,9 @@ public class TestLtrace public void testAllLibrariesGetDetected() { + if(unresolvedOnx8664(5321)){ + return; + } class MyController1 implements LtraceController { @@ -106,6 +109,10 @@ public class TestLtrace if(unresolvedOffUtrace(5053)) return; + if(unresolvedOnx8664(5321)){ + return; + } + class MyController2 implements LtraceController { @@ -165,6 +172,10 @@ public class TestLtrace if(unresolvedOffUtrace(5053)) return; + if(unresolvedOnx8664(5321)){ + return; + } + final Set registeredSymbols = new HashSet(); final LinkedList expectedEvents = new LinkedList(); class ExpectedEvent { diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 75453df..3f07abb 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-13 Sami Wagiaalla + + * TestBreakpoints.java (testHpdBreakMultiThreadedContinue): Marked + test as unresolved. + 2007-11-12 Stan Cox * ListCommand.java (interpret): Initialize from function PC. diff --git a/frysk-core/frysk/hpd/TestBreakpoints.java b/frysk-core/frysk/hpd/TestBreakpoints.java index d0f0b02..7527abb 100644 --- a/frysk-core/frysk/hpd/TestBreakpoints.java +++ b/frysk-core/frysk/hpd/TestBreakpoints.java @@ -136,6 +136,9 @@ public class TestBreakpoints } public void testHpdBreakMultiThreadedContinue() { + if(unresolved(5280)){ + return; + } e = HpdTestbed.run("funit-fib-clone", "3"); // Break e.send("break fib\n"); diff --git a/frysk-top/.project b/frysk-top/.project index 4c12a99..2d6539c 100644 --- a/frysk-top/.project +++ b/frysk-top/.project @@ -1,6 +1,6 @@ - frysk + frysk.bugs hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Tue Nov 13 19:59:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 13 Nov 2007 19:59:00 -0000 Subject: [SCM] master: Implement logical negation (!) for float and Address Types. Message-ID: <20071113195911.17911.qmail@sourceware.org> The branch, master has been updated via fc228ee2d3554182856206ca08158e551ed5dfcb (commit) via 9fd6262cfe554b85e3333b6b46d0988729ae1a25 (commit) via c3260297538be6ea92f807cf3192dfbef1c0b8f1 (commit) from b9945ac4ff2ab204f6c340a90bbaba11f8265266 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fc228ee2d3554182856206ca08158e551ed5dfcb Author: Teresa Thomas Date: Tue Nov 13 14:49:36 2007 -0500 Implement logical negation (!) for float and Address Types. frysk-core/frysk/value/ChangeLog 2007-11-13 Teresa Thomas * ArithmeticUnit.java (logicalNegation): Add task mem to parmeter list. * IntegerUnit.java (logicalNegation): Update. * AddressUnit.java (logicalNegation): New. * FloatingPointUnit.java (logicalNegation): New. * TestValue.java (testFloatOps): Test for above. (testAddressOps): New. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-13 Teresa Thomas * funit-addresses.c (ptr): New. ase enter the commit message for your changes. commit 9fd6262cfe554b85e3333b6b46d0988729ae1a25 Merge: c3260297538be6ea92f807cf3192dfbef1c0b8f1 b9945ac4ff2ab204f6c340a90bbaba11f8265266 Author: Teresa Thomas Date: Tue Nov 13 14:43:43 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit c3260297538be6ea92f807cf3192dfbef1c0b8f1 Author: Teresa Thomas Date: Tue Nov 13 14:40:13 2007 -0500 Add new getALU with no type arguments. Use for unary operations. frysk-core/frysk/expr/ChangeLog 2007-11-13 Teresa Thomas * CExprEvaluator.g: Update. frysk-core/frysk/value/ChangeLog 2007-11-13 Teresa Thomas * ArrayType.java (getALU): New. * PointerType.java (getALU): New. * Type.java (getALU): New. * FloatingPointType.java (getALU): New. * IntegerType.java (getALU): New. * IntegerUnit.java (IntegerUnit): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 9 ++++----- frysk-core/frysk/expr/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/funit-addresses.c | 3 ++- frysk-core/frysk/value/AddressUnit.java | 6 ++++++ frysk-core/frysk/value/ArithmeticUnit.java | 3 ++- frysk-core/frysk/value/ArrayType.java | 4 ++++ frysk-core/frysk/value/ChangeLog | 17 +++++++++++++++++ frysk-core/frysk/value/FloatingPointType.java | 4 ++++ frysk-core/frysk/value/FloatingPointUnit.java | 11 ++++++++++- frysk-core/frysk/value/IntegerType.java | 4 ++++ frysk-core/frysk/value/IntegerUnit.java | 12 +++++++++++- frysk-core/frysk/value/PointerType.java | 4 ++++ frysk-core/frysk/value/TestValue.java | 21 ++++++++++++++++++++- frysk-core/frysk/value/Type.java | 4 ++++ 15 files changed, 100 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 411e134..4f06c19 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -266,13 +266,12 @@ expr returns [Value returnVar=null] .logicalOr(v1, v2); } | #(NOT v1=expr) { - returnVar = v1.getType().getALU(v1.getType(), - exprSymTab.getWordSize()) - .logicalNegation(v1); + // byte buffer needed for Pointer/Address types + returnVar = v1.getType().getALU(exprSymTab.getWordSize()) + .logicalNegation(v1, exprSymTab.taskMemory()); } | #(TILDE v1=expr) { - returnVar = v1.getType().getALU(v1.getType(), - exprSymTab.getWordSize()) + returnVar = v1.getType().getALU(exprSymTab.getWordSize()) .bitWiseComplement(v1); } | #(COND_EXPR log_expr=expr v1=expr v2=expr) { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 24693ab..4d06e8a 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Teresa Thomas + + * CExprEvaluator.g: Update. + 2007-11-09 Teresa Thomas * CExprEvaluator.g: Update evaluator to diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 891af0c..ea6107a 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Teresa Thomas + + * funit-addresses.c (ptr): New. + 2007-11-12 Andrew Cagney * funit-stack-inlined.c: Rename funit-inlined.c diff --git a/frysk-core/frysk/pkglibdir/funit-addresses.c b/frysk-core/frysk/pkglibdir/funit-addresses.c index a0422a2..e35142d 100644 --- a/frysk-core/frysk/pkglibdir/funit-addresses.c +++ b/frysk-core/frysk/pkglibdir/funit-addresses.c @@ -62,7 +62,8 @@ int twoD[2][3] = { {99, 88, 77}, {11, 12, 13}, }; int oneD[] = { 4, 3, 2, 1}; -char* string = "hello world\n"; +char* string = "hello world"; +int* ptr = NULL; int main(int argc, char* argv[]) { diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index 5f9b8f5..8917459 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -40,6 +40,7 @@ package frysk.value; import inua.eio.ByteOrder; +import inua.eio.ByteBuffer; /** * Operation handling for pointers and addresses. */ @@ -123,4 +124,9 @@ extends ArithmeticUnit Value v2Neg = new Value (v2.getType(), l); return add (v1, v2Neg); } + + public Value logicalNegation(Value v1, ByteBuffer mem) { + return intType.createValue + (v1.toPrint(Format.NATURAL, mem).equals("0x0")? 1:0); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index e68df96..acfe985 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -40,6 +40,7 @@ package frysk.value; import inua.eio.ByteOrder; +import inua.eio.ByteBuffer; /** * Arithmetic and Logical Operation handling @@ -148,7 +149,7 @@ public abstract class ArithmeticUnit throw new InvalidOperatorException (v1.getType(), v2.getType(), "||"); } - public Value logicalNegation(Value v1) { + public Value logicalNegation(Value v1, ByteBuffer mem) { throw new InvalidOperatorException (v1.getType(), "!"); } diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 12d2480..7813722 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -264,4 +264,8 @@ public class ArrayType public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } + // Use for unary operations. + public ArithmeticUnit getALU(int wordSize) { + return new AddressUnit(this, wordSize); + } } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 9744fcc..43d1291 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,20 @@ +2007-11-13 Teresa Thomas + + * ArithmeticUnit.java (logicalNegation): Add task mem to + parmeter list. + * IntegerUnit.java (logicalNegation): Update. + * AddressUnit.java (logicalNegation): New. + * FloatingPointUnit.java (logicalNegation): New. + * TestValue.java (testFloatOps): Test for above. + (testAddressOps): New. + + * ArrayType.java (getALU): New. + * PointerType.java (getALU): New. + * Type.java (getALU): New. + * FloatingPointType.java (getALU): New. + * IntegerType.java (getALU): New. + * IntegerUnit.java (IntegerUnit): New. + 2007-11-12 Teresa Thomas * ArithmeticUnit.java (intType): New. diff --git a/frysk-core/frysk/value/FloatingPointType.java b/frysk-core/frysk/value/FloatingPointType.java index f0456d2..63aa570 100644 --- a/frysk-core/frysk/value/FloatingPointType.java +++ b/frysk-core/frysk/value/FloatingPointType.java @@ -108,4 +108,8 @@ public class FloatingPointType public ArithmeticUnit getALU(PointerType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } + // Use for unary operations. + public ArithmeticUnit getALU(int wordSize) { + return new FloatingPointUnit(this, wordSize); + } } diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index c7bee21..3e1ff5e 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -38,6 +38,7 @@ // exception. package frysk.value; +import inua.eio.ByteBuffer; /** * Arithmetic and logical operation handling @@ -101,5 +102,13 @@ public class FloatingPointUnit public Value notEqual (Value v1, Value v2) { return retType.createValue (v1.doubleValue() != v2.doubleValue() ? 1:0); - } + } + + /** + * @param mem - unused here. + */ + public Value logicalNegation(Value v1, ByteBuffer mem) { + return intType.createValue + (v1.doubleValue() == 0.0? 1 : 0); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index 28ed015..db9166b 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -96,4 +96,8 @@ public abstract class IntegerType public ArithmeticUnit getALU(ArrayType type, int wordSize) { return new AddressUnit(type, wordSize); } + // Use for unary operations. + public ArithmeticUnit getALU(int wordSize) { + return new IntegerUnit(this, wordSize); + } } diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 1f96e2c..e43adbd 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -40,6 +40,7 @@ package frysk.value; import java.math.BigInteger; +import inua.eio.ByteBuffer; /** * Arithmetic and logical Operation handling @@ -55,6 +56,12 @@ public class IntegerUnit retType = (t1.getSize() > t2.getSize()) ? t1 : t2; } + + public IntegerUnit (IntegerType t1, int wordSize) { + super (wordSize); + // Return type should be the larger type. + retType = t1 ; + } public Value add(Value v1, Value v2) { return retType.createValue @@ -138,7 +145,10 @@ public class IntegerUnit ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) || (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) ? 1 : 0); } - public Value logicalNegation(Value v1) { + /** + * @ param mem - unused here. + */ + public Value logicalNegation(Value v1, ByteBuffer mem) { return retType.createValue (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? 1 : 0); } diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index d056ec1..5b238d7 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -148,4 +148,8 @@ public class PointerType public ArithmeticUnit getALU(ArrayType type, int wordSize) { throw new RuntimeException("Invalid Pointer Arithmetic"); } + // Use for unary operations. + public ArithmeticUnit getALU(int wordSize) { + return new AddressUnit(this, wordSize); + } } diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 13f6142..d8c8289 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -39,6 +39,7 @@ package frysk.value; +import inua.eio.ArrayByteBuffer; import inua.eio.ByteOrder; import frysk.junit.TestCase; @@ -140,7 +141,7 @@ public class TestValue assertEquals ("9 & 4", 1, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).logicalOr(v2, v1); assertEquals ("9 | 4", 1, v3.asLong()); - v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1); + v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1, null); assertEquals ("!4", 0, v3.asLong()); bool = v2.getType().getALU(v2.getType(), 0).getLogicalValue(v2); assertEquals ("bool(9)", true, bool); @@ -205,5 +206,23 @@ public class TestValue assertEquals ("v3 /= 4", 4, v3.doubleValue(), 0); v3 = v3.getType().getALU(v1.getType(), 0).modEqual(v3, v1); assertEquals ("v3 %= 4", 0, v3.doubleValue(), 0); + // Note: Return type of logical expression is int. + v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1, null); + assertEquals ("!4", 0, v3.asLong()); } + + public void testAddressOps() { + // Construct a buffer with a string in it. + ArrayByteBuffer memory + = new ArrayByteBuffer("0123Hello World\0>>>".getBytes()); + Type t = new PointerType("xxx", ByteOrder.BIG_ENDIAN, 1, + new CharType("char", ByteOrder.BIG_ENDIAN, + 1, true)); + // Construct the pointer to it. + Location l = new ScratchLocation(new byte[] { 4 }); + Value string = new Value (t, l); + + Value v = t.getALU(8).logicalNegation(string, memory); + assertEquals("!string", 0, v.asLong()); + } } diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index 9188070..f61d137 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -142,11 +142,15 @@ public abstract class Type { throw new RuntimeException("Invalid Arithmetic Unit"); } public ArithmeticUnit getALU(PointerType type, int wordSize) { + System.out.println ("Type:PType"); throw new RuntimeException("Invalid Arithmetic Unit"); } public ArithmeticUnit getALU(ArrayType type, int wordSize) { throw new RuntimeException("Invalid Arithmetic Unit"); } + public ArithmeticUnit getALU(int wordSize) { + throw new RuntimeException("Invalid Arithmetic Unit"); + } public Value addressOf(Value var1, ByteOrder order, int wordSize) { PointerType pType = new PointerType("AddressPtr", order, wordSize, this); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 14 00:15:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 14 Nov 2007 00:15:00 -0000 Subject: [SCM] master: Eliminate Input.getAction(); and the last command controlled by "argv[0]". Message-ID: <20071114001550.3352.qmail@sourceware.org> The branch, master has been updated via 7d8807565260d2a245e35af7ee1e06473e48588c (commit) from fc228ee2d3554182856206ca08158e551ed5dfcb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7d8807565260d2a245e35af7ee1e06473e48588c Author: Andrew Cagney Date: Tue Nov 13 19:14:25 2007 -0500 Eliminate Input.getAction(); and the last command controlled by "argv[0]". frysk-core/frysk/hpd/ChangeLog 2007-11-13 Andrew Cagney * Input.java (getAction): Delete. * TestInput.java: Update. * TestEvalCommands.java: Rename TestPrint.java. * AssignCommand.java: Delete. * PrintCommand.java: Rename to ... * EvalCommands.java: ... this. Implement "assign" as a class. * TopLevelCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AssignCommand.java | 56 ---------- frysk-core/frysk/hpd/ChangeLog | 10 ++ .../hpd/{PrintCommand.java => EvalCommands.java} | 114 +++++++++++--------- frysk-core/frysk/hpd/Input.java | 17 +--- .../hpd/{TestPrint.java => TestEvalCommands.java} | 4 +- frysk-core/frysk/hpd/TestInput.java | 4 - frysk-core/frysk/hpd/TopLevelCommand.java | 4 +- 7 files changed, 82 insertions(+), 127 deletions(-) delete mode 100644 frysk-core/frysk/hpd/AssignCommand.java rename frysk-core/frysk/hpd/{PrintCommand.java => EvalCommands.java} (61%) rename frysk-core/frysk/hpd/{TestPrint.java => TestEvalCommands.java} (98%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AssignCommand.java b/frysk-core/frysk/hpd/AssignCommand.java deleted file mode 100644 index cf2a7e4..0000000 --- a/frysk-core/frysk/hpd/AssignCommand.java +++ /dev/null @@ -1,56 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.hpd; - -public class AssignCommand extends PrintCommand { - - static String full = "The assign command evaluates a scalar expression and " - + "uses the result to\n" - + "replace the previous contents of a program variable. The target " - + "location\n" - + "may be a scalar variable, an element of an array or " - + "structure/record, or\n" + "a de-referenced pointer variable."; - - AssignCommand() { - super("assign", "Change the value of a scalar program variable.", - "assign scalar-target scalar-value [-force]", full); - } - -} diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 3f07abb..6115ec8 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,13 @@ +2007-11-13 Andrew Cagney + + * Input.java (getAction): Delete. + * TestInput.java: Update. + * TestEvalCommands.java: Rename TestPrint.java. + * AssignCommand.java: Delete. + * PrintCommand.java: Rename to ... + * EvalCommands.java: ... this. Implement "assign" as a class. + * TopLevelCommand.java: Update. + 2007-11-13 Sami Wagiaalla * TestBreakpoints.java (testHpdBreakMultiThreadedContinue): Marked diff --git a/frysk-core/frysk/hpd/PrintCommand.java b/frysk-core/frysk/hpd/EvalCommands.java similarity index 61% rename from frysk-core/frysk/hpd/PrintCommand.java rename to frysk-core/frysk/hpd/EvalCommands.java index e7b62ed..5c69032 100644 --- a/frysk-core/frysk/hpd/PrintCommand.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -47,7 +47,10 @@ import frysk.value.PointerType; import frysk.value.Type; import java.util.List; -class PrintCommand extends ParameterizedCommand { +/** + * Evaluate an expression; in various forms. + */ +abstract class EvalCommands extends ParameterizedCommand { private class Options { Format format = Format.NATURAL; boolean dumpTree = false; @@ -56,16 +59,8 @@ class PrintCommand extends ParameterizedCommand { return new Options(); } - PrintCommand() { - this("print", - "Evaluate and display the value of an expression.", - "print expression [-format d|o|x|t]", - ("The print command evaluates and displays an expression. The" - + " debugger interprets the expression by looking up the" - + " value(s) associated with each symbol and applying the" - + " operators. The result of an expression may be a scalar" - + " value or an aggregate (array, array slice, record, or" - + " structure.")); + EvalCommands(String name, String description, String syntax, String full) { + super(name, description, syntax, full); add(new CommandOption.FormatOption() { void set(Object options, Format format) { ((Options)options).format = format; @@ -77,46 +72,33 @@ class PrintCommand extends ParameterizedCommand { } }); } - - PrintCommand (String name, String description, String syntax, - String full) { - super (name, description, syntax, full); + + int complete(CLI cli, PTSet ptset, String incomplete, int base, + List candidates) { + return CompletionFactory.completeExpression(cli, ptset, incomplete, + base, candidates); } - public void interpret(CLI cli, Input input, Object o) { - if (input.size() == 0) + static private void eval(CLI cli, PTSet ptset, String expression, + Options options) { + if (expression.equals("")) throw new InvalidCommandException("missing expression"); - Options options = (Options)o; - PTSet ptset = cli.getCommandPTSet(input); - - String sInput = input.stringValue(); - if (input.getAction().compareTo("assign") == 0) { - int i = sInput.indexOf(' '); - if (i == -1) { - throw new InvalidCommandException("bad expression XXX"); - } - sInput = sInput.substring(0, i) + "=" + sInput.substring(i); - } - Value result = null; - Iterator taskDataIter = ptset.getTaskData(); + Iterator taskDataIter = ptset.getTaskData(); do { - Task task = null; - if (taskDataIter.hasNext()) { + Task task = null; + if (taskDataIter.hasNext()) { TaskData td = (TaskData)taskDataIter.next(); - task = td.getTask(); - cli.outWriter.print("["); - cli.outWriter.print(td.getParentID()); - cli.outWriter.print("."); - cli.outWriter.print(td.getID()); - cli.outWriter.println("]"); - } - try { - result = cli.parseValue(task, sInput, options.dumpTree); - } catch (RuntimeException nnfe) { + task = td.getTask(); + td.toPrint(cli.outWriter, true); + cli.outWriter.println(); + } + try { + result = cli.parseValue(task, expression, options.dumpTree); + } catch (RuntimeException nnfe) { cli.addMessage(nnfe.getMessage(), Message.TYPE_ERROR); - continue; - } + continue; + } Type t = result.getType(); if (t instanceof PointerType) { @@ -128,12 +110,46 @@ class PrintCommand extends ParameterizedCommand { task == null ? null : task.getMemory(), options.format); cli.outWriter.println(); - } while (taskDataIter.hasNext()); + } while (taskDataIter.hasNext()); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List candidates) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, candidates); + static class Print extends EvalCommands { + Print() { + super("print", + "Evaluate and display the value of an expression.", + "print expression [-format d|o|x|t]", + ("The print command evaluates and displays an expression. The" + + " debugger interprets the expression by looking up the" + + " value(s) associated with each symbol and applying the" + + " operators. The result of an expression may be a scalar" + + " value or an aggregate (array, array slice, record, or" + + " structure.")); + } + void interpret(CLI cli, Input input, Object options) { + eval(cli, cli.getCommandPTSet(input), input.stringValue(), + (Options)options); + } + } + + static class Assign extends EvalCommands { + Assign() { + super("assign", "Change the value of a scalar program variable.", + "assign scalar-target scalar-value [-force]", + ("The assign command evaluates a scalar expression and" + + " uses the result to replace the previous contents" + + " of a program variable. The target location may be a" + + " scalar variable, an element of an array or" + + " structure/record, or a de-referenced pointer" + + " variable.")); + } + void interpret(CLI cli, Input input, Object options) { + if (input.size() < 2) + throw new InvalidCommandException("missing expression"); + String lhs = input.parameter(0); + input.accept(); + eval(cli, cli.getCommandPTSet(input), + "(" + lhs + ") = (" + input.stringValue() + ")", + (Options)options); + } } } diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java index 1b025b5..e8f450f 100644 --- a/frysk-core/frysk/hpd/Input.java +++ b/frysk-core/frysk/hpd/Input.java @@ -43,8 +43,7 @@ import java.util.ArrayList; import java.util.List; /** - * Command class separates and contains different parts of a command: - * set, action, parameters. It is immutable. + * Command input broken down into a series of parameters. */ class Input { @@ -68,13 +67,11 @@ class Input { private final String fullCommand; private final String set; - private final String action; private final List tokens; - private Input(String fullCommand, String set, String action, List tokens) { + private Input(String fullCommand, String set, List tokens) { this.fullCommand = fullCommand; this.set = set; - this.action = action; this.tokens = tokens; } @@ -89,7 +86,6 @@ class Input { public Input(String cmd) { fullCommand = cmd; tokens = tokenize(fullCommand); - action = null; if (size() <= 0) { set = null; } else { @@ -109,10 +105,6 @@ class Input { return set; } - public String getAction() { - return action; - } - /** * Return the N'th parameter. */ @@ -183,17 +175,16 @@ class Input { } /** - * Accept the current action; advance to the next one. + * Accept the current parameter; advance to the next one. */ Input accept() { List newTokens; - String newAction = token(0).value; if (size() > 0) { newTokens = tokens.subList(1, tokens.size()); } else { newTokens = tokens; } - return new Input(fullCommand, set, newAction, newTokens); + return new Input(fullCommand, set, newTokens); } /** diff --git a/frysk-core/frysk/hpd/TestPrint.java b/frysk-core/frysk/hpd/TestEvalCommands.java similarity index 98% rename from frysk-core/frysk/hpd/TestPrint.java rename to frysk-core/frysk/hpd/TestEvalCommands.java index 7766681..faf1158 100644 --- a/frysk-core/frysk/hpd/TestPrint.java +++ b/frysk-core/frysk/hpd/TestEvalCommands.java @@ -55,9 +55,7 @@ import java.io.File; * tests. */ -public class TestPrint - extends TestLib -{ +public class TestEvalCommands extends TestLib { public void testUnattached() { e = new HpdTestbed(); // Add with no process; shouldn't crash. diff --git a/frysk-core/frysk/hpd/TestInput.java b/frysk-core/frysk/hpd/TestInput.java index c8af94a..1f0cc6f 100644 --- a/frysk-core/frysk/hpd/TestInput.java +++ b/frysk-core/frysk/hpd/TestInput.java @@ -85,22 +85,18 @@ public class TestInput extends TestLib { public void testAccept() { Input input = new Input("action p0 p1"); assertEquals("stringValue", "action p0 p1", input.stringValue()); - assertNull("getAction", input.getAction()); check(input, new String[] { "action", "p0", "p1" }); // input = input.accept(); assertEquals("stringValue at action", "p0 p1", input.stringValue()); - assertEquals("getAction at action", "action", input.getAction()); check(input, new String[] { "p0", "p1" }); // input = input.accept(); assertEquals("stringValue at p0", "p1", input.stringValue()); - assertEquals("getAction at p0", "p0", input.getAction()); check(input, new String[] { "p1" }); // input = input.accept(); assertEquals("stringValue at p1", "", input.stringValue()); - assertEquals("getAction at p1", "p1", input.getAction()); check(input, new String[0]); } diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index b4bddf9..e8e1e02 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -75,7 +75,8 @@ public class TopLevelCommand extends MultiLevelCommand { "a top level command"); add(new AliasCommands.Alias()); add(new AliasCommands.Unalias()); - add(new AssignCommand()); + add(new EvalCommands.Assign()); + add(new EvalCommands.Print()); add(new AttachCommand()); add(new BreakpointCommand()); add(new DebuginfoCommand()); @@ -97,7 +98,6 @@ public class TopLevelCommand extends MultiLevelCommand { add(new ListCommand()); add(new StepNextCommand()); add(new StepNextiCommand()); - add(new PrintCommand()); add(new PlocationCommand()); add(new PtypeCommand()); add(new QuitCommand("quit")); hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Nov 14 02:09:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 14 Nov 2007 02:09:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071114020913.30584.qmail@sourceware.org> The branch, master has been updated via 9198be3c3245c0e8a8ab7cd054e99306d1a51250 (commit) via c646b2fa475a95b3ed6d0ba9e877b2d4e3ead03e (commit) via e4196532f54d8a7724158b3c229d30934058721d (commit) from 7d8807565260d2a245e35af7ee1e06473e48588c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9198be3c3245c0e8a8ab7cd054e99306d1a51250 Merge: c646b2fa475a95b3ed6d0ba9e877b2d4e3ead03e 7d8807565260d2a245e35af7ee1e06473e48588c Author: Jose Flavio Aguilar Paulino Date: Tue Nov 13 22:59:31 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit c646b2fa475a95b3ed6d0ba9e877b2d4e3ead03e Author: Jose Flavio Aguilar Paulino Date: Tue Nov 13 22:58:09 2007 -0200 Fixing build system to ppc32 libunwind cni. commit e4196532f54d8a7724158b3c229d30934058721d Author: Jose Flavio Aguilar Paulino Date: Tue Nov 13 22:47:10 2007 -0200 Correcting last files to support libunwind CNI to PowerPC32/64. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/Makefile.rules | 1 + frysk-core/ChangeLog | 4 ++++ frysk-core/Makefile.am | 1 + frysk-core/frysk/stack/ChangeLog | 4 ++++ frysk-core/frysk/stack/LibunwindAddressSpace.java | 6 ++++++ frysk-gui/ChangeLog | 4 ++++ frysk-gui/Makefile.am | 1 + frysk-sys/ChangeLog | 4 ++++ frysk-sys/Makefile.am | 1 + frysk-sys/lib/unwind/ChangeLog | 3 +++ .../cni/{UnwindPPC64.cxx => UnwindPPC32.cxx} | 6 +++--- 12 files changed, 37 insertions(+), 3 deletions(-) copy frysk-sys/lib/unwind/cni/{UnwindPPC64.cxx => UnwindPPC32.cxx} (94%) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index b78e8df..a9feb80 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-11-13 Jose Flavio Aguilar Paulino + + * Makefile.rules: Add to CXX includes the directory + frysk-imports/libunwind-ppc32/include + 2007-10-31 Andrew Cagney * Makefile.gen.sh (nodist_lib_sources): Delete. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 4115b5f..bc7a68c 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -178,6 +178,7 @@ AM_CXXFLAGS = \ -I$(top_builddir)/../frysk-imports/libunwind-i386/include \ -I$(top_builddir)/../frysk-imports/libunwind-x86_64/include \ -I$(top_builddir)/../frysk-imports/libunwind-ppc64/include \ + -I$(top_builddir)/../frysk-imports/libunwind-ppc32/include \ -fPIC \ $(ZZZ) diff --git a/frysk-core/ChangeLog b/frysk-core/ChangeLog index 5b6cdf2..cd66969 100644 --- a/frysk-core/ChangeLog +++ b/frysk-core/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Jose Flavio Aguilar Paulino + + * Makefile.am: Add libunwind-ppc32 to gcj linker dependencies. + 2007-10-30 Andrew Cagney * Makefile.am (frysk/debuginfo/TestTypeEntryType.java) diff --git a/frysk-core/Makefile.am b/frysk-core/Makefile.am index c110926..59be031 100644 --- a/frysk-core/Makefile.am +++ b/frysk-core/Makefile.am @@ -65,6 +65,7 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libelf/libelf.a if USE_LIBUNWIND GEN_GCJ_LDADD_LIST += ../frysk-imports/libunwind-i386/src/.libs/libunwind-x86.a \ ../frysk-imports/libunwind-x86_64/src/.libs/libunwind-x86_64.a \ + ../frysk-imports/libunwind-ppc32/src/.libs/libunwind-ppc32.a \ ../frysk-imports/libunwind-ppc64/src/.libs/libunwind-ppc64.a endif GEN_GCJ_LDADD_LIST += -lstdc++ diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index d842a57..f5bce74 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Jose Flavio Aguilar Paulino + * LibunwindAddressSpace.java: Add PowerPC32/64 unwinder + classes to the constructors. + 2007-10-19 Andrew Cagney * StackFactory.java (printStack(PrintWriter,Frame)): Call diff --git a/frysk-core/frysk/stack/LibunwindAddressSpace.java b/frysk-core/frysk/stack/LibunwindAddressSpace.java index 44cd283..80eb3cf 100644 --- a/frysk-core/frysk/stack/LibunwindAddressSpace.java +++ b/frysk-core/frysk/stack/LibunwindAddressSpace.java @@ -43,6 +43,8 @@ import frysk.isa.Register; import lib.unwind.Unwind; import lib.unwind.UnwindX8664; import lib.unwind.UnwindX86; +import lib.unwind.UnwindPPC32; +import lib.unwind.UnwindPPC64; import frysk.dwfl.DwflCache; import frysk.dwfl.DwflFactory; import frysk.event.Event; @@ -82,6 +84,10 @@ class LibunwindAddressSpace extends AddressSpace { return new UnwindX86(); else if (isa == ISA.X8664) return new UnwindX8664(); + else if (isa == ISA.PPC32BE) + return new UnwindPPC32(); + else if (isa == ISA.PPC64BE) + return new UnwindPPC64(); else throw new RuntimeException("unhandled ISA: " + isa); } diff --git a/frysk-gui/ChangeLog b/frysk-gui/ChangeLog index 72de0c5..7fa3697 100644 --- a/frysk-gui/ChangeLog +++ b/frysk-gui/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Jose Flavio Aguilar Paulino + + * Makefile.am: Add libunwind-ppc32 to gcj linker dependencies. + 2007-10-31 Andrew Cagney * Makefile.am: Replace dist_glade_DATA with glade_DATA; ditto for diff --git a/frysk-gui/Makefile.am b/frysk-gui/Makefile.am index 734fb8d..1ba069c 100644 --- a/frysk-gui/Makefile.am +++ b/frysk-gui/Makefile.am @@ -70,6 +70,7 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libelf/libelf.a if USE_LIBUNWIND GEN_GCJ_LDADD_LIST += ../frysk-imports/libunwind-i386/src/.libs/libunwind-x86.a \ ../frysk-imports/libunwind-x86_64/src/.libs/libunwind-x86_64.a \ + ../frysk-imports/libunwind-ppc32/src/.libs/libunwind-ppc32.a \ ../frysk-imports/libunwind-ppc64/src/.libs/libunwind-ppc64.a endif GEN_GCJ_LDADD_LIST += -lstdc++ diff --git a/frysk-sys/ChangeLog b/frysk-sys/ChangeLog index 44760ed..9d768c4 100644 --- a/frysk-sys/ChangeLog +++ b/frysk-sys/ChangeLog @@ -1,3 +1,7 @@ +2007-11-13 Jose Flavio Aguilar Paulino + + * Makefile.am: Add libunwind-ppc32 to gcj linker dependencies. + 2007-08-24 Mark Wielaard * Makefile.am: Change GEN_GCJ_LDADD to GEN_GCJ_LDADD_LIST. diff --git a/frysk-sys/Makefile.am b/frysk-sys/Makefile.am index a6866b0..d7f8aca 100644 --- a/frysk-sys/Makefile.am +++ b/frysk-sys/Makefile.am @@ -62,6 +62,7 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libelf/libelf.a if USE_LIBUNWIND GEN_GCJ_LDADD_LIST += ../frysk-imports/libunwind-i386/src/.libs/libunwind-x86.a \ ../frysk-imports/libunwind-x86_64/src/.libs/libunwind-x86_64.a \ + ../frysk-imports/libunwind-ppc32/src/.libs/libunwind-ppc32.a \ ../frysk-imports/libunwind-ppc64/src/.libs/libunwind-ppc64.a endif GEN_GCJ_LDADD_LIST += -lstdc++ -laudit diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index ca06169..4ccd677 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,6 @@ +2007-11-13 Jose Flavio Aguilar Paulino + * UnwindPPC32.cxx: New. To support powerpc32. + 2007-11-09 Jose Flavio Aguilar Paulino * UnwindPPC32.java-sh: New * UnwindRegistersPPC32.shenum: New diff --git a/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx b/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx similarity index 94% copy from frysk-sys/lib/unwind/cni/UnwindPPC64.cxx copy to frysk-sys/lib/unwind/cni/UnwindPPC32.cxx index bafdc9d..3c2584a 100644 --- a/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx +++ b/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx @@ -37,8 +37,8 @@ // version and license this file solely under the GPL without // exception. -#define TARGET UnwindPPC64 -#define LIBUNWIND_TARGET_H -#define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindPPC64.h" +#define TARGET UnwindPPC32 +#define LIBUNWIND_TARGET_H +#define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindPPC32.h" #include "lib/unwind/cni/UnwindH.hxx" hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Wed Nov 14 02:38:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Wed, 14 Nov 2007 02:38:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071114023831.6109.qmail@sourceware.org> The branch, master has been updated via 7b8e7ff2a2900c7837e1fee0de204f049fa01e58 (commit) via 208d3e75e13ae1fbf8f8c24b222e34a2ef5054fb (commit) from 9198be3c3245c0e8a8ab7cd054e99306d1a51250 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7b8e7ff2a2900c7837e1fee0de204f049fa01e58 Merge: 208d3e75e13ae1fbf8f8c24b222e34a2ef5054fb 9198be3c3245c0e8a8ab7cd054e99306d1a51250 Author: Stan Cox Date: Tue Nov 13 21:36:31 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 208d3e75e13ae1fbf8f8c24b222e34a2ef5054fb Author: Stan Cox Date: Tue Nov 13 21:04:02 2007 -0500 Add tests for hpd list request. * ListCommand.java (interpret): Check that symbol is a subprogram. Fix reversing. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 + frysk-core/frysk/hpd/ListCommand.java | 22 ++++-- frysk-core/frysk/hpd/TestListCommand.java | 129 +++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+), 7 deletions(-) create mode 100644 frysk-core/frysk/hpd/TestListCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 6115ec8..3905c2e 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-13 Stan Cox + + * ListCommand.java (interpret): Check that symbol is a subprogram. + Fix reversing. + 2007-11-13 Andrew Cagney * Input.java (getAction): Delete. diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index c4f3cc4..81dbd74 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -46,6 +46,7 @@ import java.io.IOException; import java.io.LineNumberReader; import java.util.Iterator; import lib.dwfl.DwarfDie; +import lib.dwfl.DwTag; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfo; import frysk.proc.Task; @@ -80,6 +81,7 @@ class ListCommand extends ParameterizedCommand { private File file = null; private int line; private int exec_line = 0; + void interpret(CLI cli, Input cmd, Object o) { Options options = (Options)o; PTSet ptset = cli.getCommandPTSet(cmd); @@ -113,18 +115,24 @@ class ListCommand extends ParameterizedCommand { funcDie = debugInfo .getSymbolDie(cmd.parameter(0)); } - line = (int)funcDie.getDeclLine(); + if (funcDie.getTag().hashCode() == DwTag.SUBPROGRAM_) { + line = (int)funcDie.getDeclLine(); + file = new File(funcDie.getDeclFile()); + } + else { + cli.addMessage("function " + cmd.parameter(0) + " not found.", + Message.TYPE_ERROR); + return; + } } } } else if (options.length != null) { windowSize = options.length.magnitude; - if (options.length.sign < 0) - line -= windowSize; - else if (options.length.sign > 0) + if (options.length.sign < 0) { + windowSize *= -1; line += windowSize; - else - line -= windowSize / 2; + } } else if (frame.getLines()[0].getLine() != exec_line) { // list around pc. @@ -192,7 +200,7 @@ class ListCommand extends ParameterizedCommand { cli.addMessage("file " + file + " not found.", Message.TYPE_ERROR); } - } + } } diff --git a/frysk-core/frysk/hpd/TestListCommand.java b/frysk-core/frysk/hpd/TestListCommand.java new file mode 100644 index 0000000..48c6144 --- /dev/null +++ b/frysk-core/frysk/hpd/TestListCommand.java @@ -0,0 +1,129 @@ +// This file is part of the program FRYSK. +// +// Copyright 2007 Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.hpd; + + +/** + * Test the functionality of the alias and unalias commands. + */ + +public class TestListCommand extends TestLib { + public void setUp() { + super.setUp(); + e = new HpdTestbed(); + } + + public void testListPC() { + e = HpdTestbed.run("hpd-c"); + e.send("break main\n"); + e.expect("breakpoint.*" + prompt); + e.send("go\n"); + e.expect("go.*\n" + prompt + "Breakpoint"); + e.send("list\n"); + e.expect(".*208.*int.*209.*int.*210.*int_21.*211.*int_21.*215.*int.*" + + "216.*main.*\\*.*218.*if.*219.*fprintf" + + ".*221.*int.*222.*int.*.*223.*return.*224.*"); + e.send("quit\n"); + e.expect("quit.*\nQuitting..."); + e.close(); + } + + public void testListFunction() { + e = HpdTestbed.run("hpd-c"); + e.send("break main\n"); + e.expect("breakpoint.*" + prompt); + e.send("go\n"); + e.expect("go.*\n" + prompt + "Breakpoint"); + e.send("list\n"); + e.expect(prompt); + e.send("list func_2\n"); + e.expect( + ".*158.*159.*typedef.*160.*static_class_t.*161.*enum.*" + + "162.*static_class_t.*163.*struct.*164.*asm.*165.*struct.*" + + "166.*asm.*167.*struct.*168.*struct.*169.*typedef.*" + + "170.*volatile.*171.*long.*172.*int.*173.*float.*174.*char.*" + + "175.*static_class_t.*176.*volatile.*177.*sportscar.*" + + prompt); + e.send("list -length 10\n"); + e.expect( + ".*178.*char.*179.*short.*180.*int.*181.*long.*182.*float.*" + + "183.*double.*184.*assign_long_arr.*185.*assign_int_arr.*"); + e.send("quit\n"); + e.expect("quit.*\nQuitting..."); + e.close(); + } + + public void testListReverse() { + e = HpdTestbed.run("hpd-c"); + e.send("break main\n"); + e.expect("breakpoint.*" + prompt); + e.send("go\n"); + e.expect("go.*\n" + prompt + "Breakpoint"); + e.send("list\n"); + e.expect(prompt); + e.send("list -length -10\n"); + e.expect(".*198.*while.*202.*return.*205.*static.*206.*func_1.*207"); + e.send("list -length -10\n"); + e.expect(".*188.*sportscar.*190.*int_p.*191.*class_p.*192.*class_p.*" + + "193.*class_p.*194.*class_1.*196.*int_21.*197.*"); + e.send("quit\n"); + e.expect("quit.*\nQuitting..."); + e.close(); + } + + public void testListErrors() { + e = HpdTestbed.run("hpd-c"); + e.send("break main\n"); + e.expect("breakpoint.*" + prompt); + e.send("go\n"); + e.expect("go.*\n" + prompt + "Breakpoint"); + e.send("list x\n"); + e.expect(".*function x not found.*" + prompt); + e.send("list xyz\n"); + e.expect(".*symbol xyz not found.*" + prompt); + e.send("quit\n"); + e.expect("quit.*\nQuitting..."); + e.close(); + } +} + + + + hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Wed Nov 14 14:17:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 14 Nov 2007 14:17:00 -0000 Subject: [SCM] master: Add possible exception causes to Message for extra diagnostics. Message-ID: <20071114141706.9187.qmail@sourceware.org> The branch, master has been updated via 16bda633871baa0b3bcc450af73a5e7c2ed37621 (commit) from 7b8e7ff2a2900c7837e1fee0de204f049fa01e58 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 16bda633871baa0b3bcc450af73a5e7c2ed37621 Author: Mark Wielaard Date: Wed Nov 14 15:16:35 2007 +0100 Add possible exception causes to Message for extra diagnostics. 2007-11-14 Mark Wielaard * CLI.java (addMessage): New variant that takes a possible exception cause. (doAttach): Use new addMessage(). (execCommand): Likewise. (flushMessages): Add possible exception cause if present. Actually flush outWriter. * EvalCommands.java (eval): Add possible RuntimeException cause. * Message.java (Message): Add constructor that takes a possible exception cause. (getException): New method. * PlocationCommand.java (interpret): Add possible RuntimeException cause. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 30 ++++++++++++++----------- frysk-core/frysk/hpd/ChangeLog | 15 ++++++++++++ frysk-core/frysk/hpd/EvalCommands.java | 5 +++- frysk-core/frysk/hpd/Message.java | 33 +++++++++++++++++++++++++-- frysk-core/frysk/hpd/PlocationCommand.java | 5 +++- 5 files changed, 70 insertions(+), 18 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 3c14b2e..d79e557 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -123,6 +123,7 @@ public class CLI { return topLevelCommand.complete(this, new Input(buffer), cursor, candidates); } catch (RuntimeException e) { + // XXX - FIXME - What if this is something fatal? return -1; } } @@ -142,7 +143,7 @@ public class CLI { outWriter.print("Attached to process "); outWriter.println(attached); } catch (InterruptedException ie) { - addMessage("Attach interrupted.", Message.TYPE_ERROR); + addMessage("Attach interrupted.", Message.TYPE_ERROR, ie); return; } finally { synchronized (this) { @@ -253,19 +254,14 @@ public class CLI { topLevelCommand.interpret(this, command); } } - catch (NullPointerException e) { - e.printStackTrace(); - String msg = ""; - if (e.getMessage() != null) - msg = e.getMessage(); - - addMessage(msg, Message.TYPE_DBG_ERROR); - } + catch (InvalidCommandException ice) { + addMessage(ice.getMessage(), Message.TYPE_ERROR); + } catch (RuntimeException e) { - String msg = ""; - if (e.getMessage() != null) - msg = e.getMessage(); - addMessage(msg, Message.TYPE_ERROR); + String msg = e.getMessage(); + if (msg == null || msg.equals("")) + msg = e.toString(); + addMessage(msg, Message.TYPE_DBG_ERROR, e); } flushMessages(); } @@ -280,6 +276,10 @@ public class CLI { addMessage(new Message(msg, type)); } + void addMessage(String msg, int type, Throwable exc) { + addMessage(new Message(msg, type, exc)); + } + private void flushMessages() { for (Iterator iter = messages.iterator(); iter.hasNext();) { Message tempmsg = (Message) iter.next(); @@ -293,8 +293,12 @@ public class CLI { if (prefix != null) outWriter.print(prefix); outWriter.println(tempmsg.getMessage()); + Throwable exc = tempmsg.getException(); + if (exc != null) + exc.printStackTrace(outWriter); iter.remove(); } + outWriter.flush(); } PTSet createSet(String set) { diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 3905c2e..4a1a67e 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,18 @@ +2007-11-14 Mark Wielaard + + * CLI.java (addMessage): New variant that takes a possible + exception cause. + (doAttach): Use new addMessage(). + (execCommand): Likewise. + (flushMessages): Add possible exception cause if present. + Actually flush outWriter. + * EvalCommands.java (eval): Add possible RuntimeException cause. + * Message.java (Message): Add constructor that takes a possible + exception cause. + (getException): New method. + * PlocationCommand.java (interpret): Add possible RuntimeException + cause. + 2007-11-13 Stan Cox * ListCommand.java (interpret): Check that symbol is a subprogram. diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index 5c69032..d9679db 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -96,7 +96,10 @@ abstract class EvalCommands extends ParameterizedCommand { try { result = cli.parseValue(task, expression, options.dumpTree); } catch (RuntimeException nnfe) { - cli.addMessage(nnfe.getMessage(), Message.TYPE_ERROR); + String msg = nnfe.getMessage(); + if (msg == null || msg.equals("")) + msg = nnfe.toString(); + cli.addMessage(msg, Message.TYPE_ERROR, nnfe); continue; } diff --git a/frysk-core/frysk/hpd/Message.java b/frysk-core/frysk/hpd/Message.java index 933305f..aeb4ed2 100644 --- a/frysk-core/frysk/hpd/Message.java +++ b/frysk-core/frysk/hpd/Message.java @@ -49,17 +49,39 @@ class Message public static int TYPE_NORMAL = 3; public static int TYPE_VERBOSE = 4; - String msg = null; - int type = 0; + private final String msg; + private final int type; + private final Throwable exc; - public Message (String msg, int type) + /** + * Creates a new Message with the given message and type + * and no exception. + */ + public Message (String msg, int type) + { + this(msg, type, null); + } + /** + * Creates a new Message with the given message and type. + * The message cannot be null or empty. The exception is optional + * and may be null. + */ + public Message (String msg, int type, Throwable exc) { + if (msg == null) + throw new NullPointerException("null msg"); + + if (msg.equals("")) + throw new IllegalArgumentException("empty msg"); + this.msg = msg; if (type < TYPE_DBG_ERROR || type > TYPE_VERBOSE) throw new IllegalArgumentException("Debugger message created with illegal type."); else this.type = type; + + this.exc = exc; } public String getMessage() @@ -71,4 +93,9 @@ class Message { return type; } + + public Throwable getException() + { + return exc; + } } diff --git a/frysk-core/frysk/hpd/PlocationCommand.java b/frysk-core/frysk/hpd/PlocationCommand.java index 225cc09..61ced31 100644 --- a/frysk-core/frysk/hpd/PlocationCommand.java +++ b/frysk-core/frysk/hpd/PlocationCommand.java @@ -77,7 +77,10 @@ class PlocationCommand extends ParameterizedCommand { try { result = cli.parseValue(task, sInput); } catch (RuntimeException nnfe) { - cli.addMessage(nnfe.getMessage(), Message.TYPE_ERROR); + String msg = nnfe.getMessage(); + if (msg == null || msg.equals("")) + msg = nnfe.toString(); + cli.addMessage(msg, Message.TYPE_ERROR, nnfe); continue; } result.getLocation().toPrint(cli.outWriter); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 14 17:00:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 14 Nov 2007 17:00:00 -0000 Subject: [SCM] master: Fix file name completion on second arg. Message-ID: <20071114170021.3527.qmail@sourceware.org> The branch, master has been updated via fb20dde8b9c322b77e642ba0d6f360deb3e9ee13 (commit) from 16bda633871baa0b3bcc450af73a5e7c2ed37621 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fb20dde8b9c322b77e642ba0d6f360deb3e9ee13 Author: Andrew Cagney Date: Wed Nov 14 09:14:00 2007 -0500 Fix file name completion on second arg. frysk-core/frysk/hpd/ChangeLog 2007-11-14 Andrew Cagney * TestCompletionFactory.java: New. * Input.java (base(int)): New. (cursor(int,int)): New. * Command.java (complete(CLI,Input,int,List)): Make abstract. * ParameterizedCommand.java (complete(CLI,Input,int,List)): Delete. (complete(CLI,PTSet,String,int,List)): Delete. * CompletionFactory.java (completeExpression(CLI,Input,int,List)): Replace completeExpression(CLI,PTSet,String,int,List). (completeFileName(CLI,Input,int,List)): Replace completeFileName(CLI,String,int,List); handle multiple arguments. * WhichsetsCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UndefsetCommand.java: Update. * TestParameterizedCommand.java: Update. * StepNextiCommand.java: Update. * StepNextCommand.java: Update. * StepInstructionCommand.java: Update. * StepFinishCommand.java: Update. * StepCommand.java: Update. * RunCommand.java: Update. * StackCommands.java: Update. * QuitCommand.java: Update. * RegsCommand.java: Update. * PtypeCommand.java: Update. * PlocationCommand.java: Update. * PeekCommand.java: Update. * LoadCommand.java: Update. * ListCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FocusCommand.java: Update. * EvalCommands.java: Update. * ExamineCommand.java: Update. * DisplayCommand.java: Update. * DisassembleCommand.java: Update. * DetachCommand.java: Update. * CoreCommand.java: Update. * DefsetCommand.java: Update. * DebuginfoCommand.java: Update. * AttachCommand.java: Update. * ActionPointCommands.java: Update. * BreakpointCommand.java: Update. * DbgVariableCommands.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionPointCommands.java | 3 +- frysk-core/frysk/hpd/AliasCommands.java | 6 +- frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/BreakpointCommand.java | 7 +-- frysk-core/frysk/hpd/ChangeLog | 47 ++++++++++++++++++ frysk-core/frysk/hpd/Command.java | 4 +- frysk-core/frysk/hpd/CompletionFactory.java | 50 +++++++++++++++++-- frysk-core/frysk/hpd/CoreCommand.java | 5 +- frysk-core/frysk/hpd/DbgVariableCommands.java | 8 ++- frysk-core/frysk/hpd/DebuginfoCommand.java | 3 +- frysk-core/frysk/hpd/DefsetCommand.java | 3 +- frysk-core/frysk/hpd/DetachCommand.java | 3 +- frysk-core/frysk/hpd/DisassembleCommand.java | 7 +-- frysk-core/frysk/hpd/DisplayCommand.java | 7 +-- frysk-core/frysk/hpd/EvalCommands.java | 7 +-- frysk-core/frysk/hpd/ExamineCommand.java | 7 +-- frysk-core/frysk/hpd/FocusCommand.java | 3 +- frysk-core/frysk/hpd/GoCommand.java | 3 +- frysk-core/frysk/hpd/HaltCommand.java | 3 +- frysk-core/frysk/hpd/Input.java | 25 ++++++++++ frysk-core/frysk/hpd/ListCommand.java | 3 +- frysk-core/frysk/hpd/LoadCommand.java | 5 +- frysk-core/frysk/hpd/ParameterizedCommand.java | 25 ---------- frysk-core/frysk/hpd/PeekCommand.java | 7 +-- frysk-core/frysk/hpd/PlocationCommand.java | 7 +-- frysk-core/frysk/hpd/PtypeCommand.java | 7 +-- frysk-core/frysk/hpd/QuitCommand.java | 3 +- frysk-core/frysk/hpd/RegsCommand.java | 3 +- frysk-core/frysk/hpd/RunCommand.java | 6 ++ frysk-core/frysk/hpd/StackCommands.java | 8 +--- frysk-core/frysk/hpd/StepCommand.java | 3 +- frysk-core/frysk/hpd/StepFinishCommand.java | 3 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 3 +- frysk-core/frysk/hpd/StepNextCommand.java | 3 +- frysk-core/frysk/hpd/StepNextiCommand.java | 3 +- ...LoadCommand.java => TestCompletionFactory.java} | 40 +++++++++------ frysk-core/frysk/hpd/TestCoreCommand.java | 1 + frysk-core/frysk/hpd/TestParameterizedCommand.java | 4 +- frysk-core/frysk/hpd/UndefsetCommand.java | 3 +- frysk-core/frysk/hpd/ViewsetCommand.java | 3 +- frysk-core/frysk/hpd/WhatCommand.java | 7 +-- frysk-core/frysk/hpd/WhichsetsCommand.java | 3 +- 42 files changed, 209 insertions(+), 144 deletions(-) copy frysk-core/frysk/hpd/{TestLoadCommand.java => TestCompletionFactory.java} (75%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ActionPointCommands.java b/frysk-core/frysk/hpd/ActionPointCommands.java index dc45628..217970a 100644 --- a/frysk-core/frysk/hpd/ActionPointCommands.java +++ b/frysk-core/frysk/hpd/ActionPointCommands.java @@ -121,8 +121,7 @@ abstract class ActionPointCommands extends ParameterizedCommand { }); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List alternatives) { + int complete(CLI cli, Input incomplete, int base, List alternatives) { return -1; } diff --git a/frysk-core/frysk/hpd/AliasCommands.java b/frysk-core/frysk/hpd/AliasCommands.java index aba2b26..84fdb56 100644 --- a/frysk-core/frysk/hpd/AliasCommands.java +++ b/frysk-core/frysk/hpd/AliasCommands.java @@ -45,15 +45,15 @@ import java.util.Iterator; abstract class AliasCommands extends ParameterizedCommand { - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { + String incomplete = input.stringValue(); for (Iterator i = cli.aliases.keySet().iterator(); i.hasNext(); ) { String key = (String)i.next(); if (key.startsWith(incomplete)) completions.add(key); } CompletionFactory.padSingleCandidate(completions); - return 0; + return input.cursor(0, cursor); } AliasCommands(String name, String description, String syntax, diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index b87ec91..489993e 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -104,7 +104,7 @@ class AttachCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String input, int base, + int complete(CLI cli, Input input, int base, List completions) { return -1; } diff --git a/frysk-core/frysk/hpd/BreakpointCommand.java b/frysk-core/frysk/hpd/BreakpointCommand.java index c00e240..13b379d 100644 --- a/frysk-core/frysk/hpd/BreakpointCommand.java +++ b/frysk-core/frysk/hpd/BreakpointCommand.java @@ -186,9 +186,8 @@ class BreakpointCommand extends ParameterizedCommand { outWriter.println(); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, completions); + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeExpression(cli, input, cursor, + completions); } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 4a1a67e..b833658 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,50 @@ +2007-11-14 Andrew Cagney + + * TestCompletionFactory.java: New. + * Input.java (base(int)): New. + (cursor(int,int)): New. + * Command.java (complete(CLI,Input,int,List)): Make abstract. + * ParameterizedCommand.java (complete(CLI,Input,int,List)): Delete. + (complete(CLI,PTSet,String,int,List)): Delete. + * CompletionFactory.java (completeExpression(CLI,Input,int,List)): + Replace completeExpression(CLI,PTSet,String,int,List). + (completeFileName(CLI,Input,int,List)): Replace + completeFileName(CLI,String,int,List); handle multiple arguments. + * WhichsetsCommand.java: Update. + * WhatCommand.java: Update. + * ViewsetCommand.java: Update. + * UndefsetCommand.java: Update. + * TestParameterizedCommand.java: Update. + * StepNextiCommand.java: Update. + * StepNextCommand.java: Update. + * StepInstructionCommand.java: Update. + * StepFinishCommand.java: Update. + * StepCommand.java: Update. + * RunCommand.java: Update. + * StackCommands.java: Update. + * QuitCommand.java: Update. + * RegsCommand.java: Update. + * PtypeCommand.java: Update. + * PlocationCommand.java: Update. + * PeekCommand.java: Update. + * LoadCommand.java: Update. + * ListCommand.java: Update. + * HaltCommand.java: Update. + * GoCommand.java: Update. + * FocusCommand.java: Update. + * EvalCommands.java: Update. + * ExamineCommand.java: Update. + * DisplayCommand.java: Update. + * DisassembleCommand.java: Update. + * DetachCommand.java: Update. + * CoreCommand.java: Update. + * DefsetCommand.java: Update. + * DebuginfoCommand.java: Update. + * AttachCommand.java: Update. + * ActionPointCommands.java: Update. + * BreakpointCommand.java: Update. + * DbgVariableCommands.java: Update. + 2007-11-14 Mark Wielaard * CLI.java (addMessage): New variant that takes a possible diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java index 943a1a7..aa55f78 100644 --- a/frysk-core/frysk/hpd/Command.java +++ b/frysk-core/frysk/hpd/Command.java @@ -71,9 +71,7 @@ public abstract class Command { * "foobar" can be inserted. Rreturn -1 when completion isn't * supported. */ - int complete(CLI cli, Input buffer, int cursor, List candidates) { - return -1; - } + abstract int complete(CLI cli, Input buffer, int cursor, List candidates); /** * Print a full "help" message (syntax and then details) for this diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java index ccf172e..9f07922 100644 --- a/frysk-core/frysk/hpd/CompletionFactory.java +++ b/frysk-core/frysk/hpd/CompletionFactory.java @@ -90,15 +90,17 @@ class CompletionFactory { } } - static int completeExpression(CLI cli, PTSet ptset, - String incomplete, int base, + static int completeExpression(CLI cli, Input input, int cursor, List candidates) { + PTSet ptset = cli.getCommandPTSet(input); Iterator i = ptset.getTasks(); if (!i.hasNext()) { // Should still be able to complete $variables. return -1; } else { int newCursor = -1; + String incomplete = input.stringValue(); + int base = input.base(cursor); do { Task task = (Task)i.next(); DebugInfoFrame frame = cli.getTaskFrame(task); @@ -114,13 +116,49 @@ class CompletionFactory { // System.out.println("base=" + base); // System.out.println("candidates=" + candidates); // System.out.println("newCursor=" + newCursor); - return newCursor; + return input.cursor(newCursor, cursor); } } - static int completeFileName(CLI cli, String incomplete, int base, + static int completeFileName(CLI cli, Input input, int cursor, List candidates) { - return new FileNameCompletor().complete(incomplete, base, - candidates); + // System.out.println("input.stringValue()=" + input.stringValue()); + // System.out.println("cursor=" + cursor); + // System.out.println("input.size()=" + input.size()); + if (input.size() == 0) { + int newBase + = new FileNameCompletor().complete("", 0, candidates); + if (newBase < 0) + return -1; + else + return newBase + cursor; + } else { + // Need to find the parameter that contains the cursor and + // have that completed. + Input.Token token = null; + for (int i = 0; i < input.size(); i++) { + Input.Token t = input.token(i); + // System.out.println("token " + i + "=" + t); + if (cursor >= t.start && cursor <= t.end) { + token = t; + break; + } + } + if (token == null) + return -1; + Input.Token token0 = input.token(0); + String incomplete + = input.stringValue().substring(token.start - token0.start, + token.end - token0.start); + // System.out.println("incomplete=" + incomplete); + int newBase + = new FileNameCompletor().complete(incomplete, + cursor - token.start, + candidates); + if (newBase < 0) + return -1; + else + return newBase + token.start; + } } } diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 0ffefaf..e043aa1 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -169,9 +169,8 @@ public class CoreCommand extends ParameterizedCommand { exeFile = new File(cli.parameter(1)); } - int complete(CLI cli, PTSet set, String incomplete, int base, - List completions) { - return CompletionFactory.completeFileName(cli, incomplete, base, + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeFileName(cli, input, cursor, completions); } } diff --git a/frysk-core/frysk/hpd/DbgVariableCommands.java b/frysk-core/frysk/hpd/DbgVariableCommands.java index e8c90d2..bfee9a2 100644 --- a/frysk-core/frysk/hpd/DbgVariableCommands.java +++ b/frysk-core/frysk/hpd/DbgVariableCommands.java @@ -48,9 +48,11 @@ abstract class DbgVariableCommands extends ParameterizedCommand { super(name, description, syntax, full); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { - return cli.dbgvars.complete(incomplete, base, completions); + int complete(CLI cli, Input input, int cursor, List completions) { + int base = input.base(cursor); + String incomplete = input.stringValue(); + int newBase = cli.dbgvars.complete(incomplete, base, completions); + return input.cursor(newBase, cursor); } static class Set extends DbgVariableCommands { diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java index bab4d3d..9d6b27d 100644 --- a/frysk-core/frysk/hpd/DebuginfoCommand.java +++ b/frysk-core/frysk/hpd/DebuginfoCommand.java @@ -53,8 +53,7 @@ class DebuginfoCommand extends ParameterizedCommand { + "for a process and its shared modules."); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java index e3759d3..24764ac 100644 --- a/frysk-core/frysk/hpd/DefsetCommand.java +++ b/frysk-core/frysk/hpd/DefsetCommand.java @@ -78,8 +78,7 @@ class DefsetCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/DetachCommand.java b/frysk-core/frysk/hpd/DetachCommand.java index acf26f0..3fa0092 100644 --- a/frysk-core/frysk/hpd/DetachCommand.java +++ b/frysk-core/frysk/hpd/DetachCommand.java @@ -85,8 +85,7 @@ class DetachCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index 4c303e4..0740d09 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -294,10 +294,9 @@ public class DisassembleCommand extends ParameterizedCommand { } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, completions); + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeExpression(cli, input, cursor, + completions); } } diff --git a/frysk-core/frysk/hpd/DisplayCommand.java b/frysk-core/frysk/hpd/DisplayCommand.java index 391385a..ae84429 100644 --- a/frysk-core/frysk/hpd/DisplayCommand.java +++ b/frysk-core/frysk/hpd/DisplayCommand.java @@ -144,9 +144,8 @@ public class DisplayCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, completions); + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeExpression(cli, input, cursor, + completions); } } diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index d9679db..ff1d46c 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -73,10 +73,9 @@ abstract class EvalCommands extends ParameterizedCommand { }); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List candidates) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, candidates); + int complete(CLI cli, Input input, int cursor, List candidates) { + return CompletionFactory.completeExpression(cli, input, cursor, + candidates); } static private void eval(CLI cli, PTSet ptset, String expression, diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java index 348f6ab..8372bb0 100644 --- a/frysk-core/frysk/hpd/ExamineCommand.java +++ b/frysk-core/frysk/hpd/ExamineCommand.java @@ -78,9 +78,8 @@ public class ExamineCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { - return CompletionFactory.completeExpression(cli, ptset, incomplete, - base, completions); + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeExpression(cli, input, cursor, + completions); } } diff --git a/frysk-core/frysk/hpd/FocusCommand.java b/frysk-core/frysk/hpd/FocusCommand.java index 8d2bbe9..e265c23 100644 --- a/frysk-core/frysk/hpd/FocusCommand.java +++ b/frysk-core/frysk/hpd/FocusCommand.java @@ -77,8 +77,7 @@ class FocusCommand extends ParameterizedCommand { } } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/GoCommand.java b/frysk-core/frysk/hpd/GoCommand.java index 4bbcdbe..effc63d 100644 --- a/frysk-core/frysk/hpd/GoCommand.java +++ b/frysk-core/frysk/hpd/GoCommand.java @@ -70,8 +70,7 @@ class GoCommand extends ParameterizedCommand { cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/HaltCommand.java b/frysk-core/frysk/hpd/HaltCommand.java index 72cc051..7ac37e6 100644 --- a/frysk-core/frysk/hpd/HaltCommand.java +++ b/frysk-core/frysk/hpd/HaltCommand.java @@ -71,8 +71,7 @@ class HaltCommand extends ParameterizedCommand { cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List completions) { + int complete(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java index e8f450f..3e98244 100644 --- a/frysk-core/frysk/hpd/Input.java +++ b/frysk-core/frysk/hpd/Input.java @@ -257,4 +257,29 @@ class Input { } return tokens; } + + /** + * Given the input "cursor", return the offset or base into + * stringValue() - the remaining parameters. + */ + int base(int cursor) { + if (size() == 0) + return 0; + else + return cursor - token(0).start; + } + + /** + * The reverse of base; given a base, return a corresponding + * cursor. + */ + int cursor(int base, int cursor) { + if (base < 0) { + return -1; + } else if (size() == 0) { + return cursor + base; + } else { + return base + token(0).start; + } + } } diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index 81dbd74..e059b65 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -204,8 +204,7 @@ class ListCommand extends ParameterizedCommand { } - int complete(CLI cli, PTSet ptset, String incomplete, int base, - List candidates) { + int complete(CLI cli, Input input, int cursor, List candidates) { return -1; } } diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index 7117833..c24d815 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -100,9 +100,8 @@ public class LoadCommand extends ParameterizedCommand { } - int complete(CLI cli, PTSet set, String incomplete, int base, - List completions) { - return CompletionFactory.completeFileName(cli, incomplete, base, + int complete(CLI cli, Input input, int cursor, List completions) { + return CompletionFactory.completeFileName(cli, input, cursor, completions); } } diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index 12fe094..91329ea 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -42,7 +42,6 @@ package frysk.hpd; import java.util.TreeMap; import java.util.Iterator; import java.util.SortedMap; -import java.util.List; abstract class ParameterizedCommand extends Command { private final SortedMap longOptions = new TreeMap(); @@ -166,28 +165,4 @@ abstract class ParameterizedCommand extends Command { * Interpret command, using options. */ abstract void interpret(CLI cli, Input input, Object options); - - /** - * Complete the input. - */ - final int complete(CLI cli, Input input, int cursor, List candidates) { - int start; - if (input.size() == 0) - start = cursor; - else - start = input.token(0).start; - int pos = complete(cli, cli.getCommandPTSet(input), - input.stringValue(), cursor - start, candidates); - if (pos >= 0) { - return pos + start; - } else { - return -1; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 14 18:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 14 Nov 2007 18:04:00 -0000 Subject: [SCM] master: Allow abbreviated long options. Message-ID: <20071114180448.9614.qmail@sourceware.org> The branch, master has been updated via 7f9bb90dbeec8a3db40e22541347fdd9730e304f (commit) from fb20dde8b9c322b77e642ba0d6f360deb3e9ee13 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7f9bb90dbeec8a3db40e22541347fdd9730e304f Author: Andrew Cagney Date: Wed Nov 14 13:03:05 2007 -0500 Allow abbreviated long options. frysk-core/frysk/hpd/ChangeLog 2007-11-14 Andrew Cagney * TestParameterizedCommand.java (testShortAmbigiousOption()): New. (testShortUnambigiousOption()): New. * ParameterizedCommand.java: Allow shortened form of options. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/ParameterizedCommand.java | 14 +++++++++++--- frysk-core/frysk/hpd/TestParameterizedCommand.java | 16 ++++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index b833658..da41ea0 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,9 @@ 2007-11-14 Andrew Cagney + * TestParameterizedCommand.java (testShortAmbigiousOption()): New. + (testShortUnambigiousOption()): New. + * ParameterizedCommand.java: Allow shortened form of options. + * TestCompletionFactory.java: New. * Input.java (base(int)): New. (cursor(int,int)): New. diff --git a/frysk-core/frysk/hpd/ParameterizedCommand.java b/frysk-core/frysk/hpd/ParameterizedCommand.java index 91329ea..e7289b2 100644 --- a/frysk-core/frysk/hpd/ParameterizedCommand.java +++ b/frysk-core/frysk/hpd/ParameterizedCommand.java @@ -67,9 +67,17 @@ abstract class ParameterizedCommand extends Command { } private CommandOption lookupOption(String name) { - CommandOption commandOption = (CommandOption)longOptions.get(name); - if (commandOption == null) - commandOption = (CommandOption)shortOptions.get(name); + CommandOption commandOption = (CommandOption)shortOptions.get(name); + if (commandOption != null) + return commandOption; + for (Iterator i = longOptions.values().iterator(); i.hasNext(); ) { + CommandOption option = (CommandOption)i.next(); + if (option.longName.startsWith(name)) { + if (commandOption != null) + return null; // ambigious + commandOption = option; + } + } return commandOption; } diff --git a/frysk-core/frysk/hpd/TestParameterizedCommand.java b/frysk-core/frysk/hpd/TestParameterizedCommand.java index 186a175..fa26903 100644 --- a/frysk-core/frysk/hpd/TestParameterizedCommand.java +++ b/frysk-core/frysk/hpd/TestParameterizedCommand.java @@ -77,6 +77,13 @@ public class TestParameterizedCommand extends TestLib { assertNotNull("-arg's argument", argument); } }); + // make -a ambigious + command.add(new CommandOption("aRG", "long parameterized option", + "ARG") { + void parse(String arg, Object options) { + fail("should never specify -aRG"); + } + }); command.add(new CommandOption("opt", "long option") { void parse(String arg, Object options) { parsedOption = true; @@ -176,6 +183,15 @@ public class TestParameterizedCommand extends TestLib { checkInvalid("parser -unknown"); } + public void testShortAmbigiousOption() { + checkInvalid("parser -a"); + } + public void testShortUnambigiousOption() { + check("parser arg -o", "arg", + new String[] { "arg" }, + true, null); + } + public void testHelp() { parse("parser -help"); assertFalse("interpreted", interpreted); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 14 19:20:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 14 Nov 2007 19:20:00 -0000 Subject: [SCM] master: Complete options. Message-ID: <20071114192013.27905.qmail@sourceware.org> The branch, master has been updated via c51aa91611f6b182762c6e81f5684650ac0082ef (commit) from 7f9bb90dbeec8a3db40e22541347fdd9730e304f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c51aa91611f6b182762c6e81f5684650ac0082ef Author: Andrew Cagney Date: Wed Nov 14 14:18:07 2007 -0500 Complete options. frysk-core/frysk/hpd/ChangeLog 2007-11-14 Andrew Cagney * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. (completer(CLI,Input,int,List)): New. * Input.java (incompleteToken(int)): New. (base(int)): Delete. (Token.absolute(int)): New. (start(int,int)): Delete. * CompletionFactory.java: Use Input.incompleteToken(int). (completeFocusedExpression): Delete. * WhichsetsCommand.java: Ditto. * AliasCommands.java: Update. * ActionPointCommands.java: Update. * AttachCommand.java: Update. * CoreCommand.java: Update. * DbgVariableCommands.java: Update. * DebuginfoCommand.java: Update. * DefsetCommand.java: Update. * DetachCommand.java: Update. * DisassembleCommand.java: Update. * DisplayCommand.java: Update. * TestParameterizedCommand.java: Ditto. * StepNextiCommand.java: Ditto. * StepNextCommand.java: Ditto. * StepInstructionCommand.java: Ditto. * StepFinishCommand.java: Ditto. * StepCommand.java: Ditto. * RegsCommand.java: Ditto. * StackCommands.java: Ditto. * QuitCommand.java: Ditto. * PtypeCommand.java: Ditto. * PlocationCommand.java: Ditto. * PeekCommand.java: Ditto. * LoadCommand.java: Ditto. * ListCommand.java: Ditto. * HaltCommand.java: Ditto. * GoCommand.java: Update. * FocusCommand.java: Update. * ExamineCommand.java: Update. * EvalCommands.java: Update. * WhatCommand.java: Ditto. * ViewsetCommand.java: Ditto. * UndefsetCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ActionPointCommands.java | 2 +- frysk-core/frysk/hpd/AliasCommands.java | 8 +- frysk-core/frysk/hpd/AttachCommand.java | 3 +- frysk-core/frysk/hpd/BreakpointCommand.java | 2 +- frysk-core/frysk/hpd/ChangeLog | 42 +++++++++ frysk-core/frysk/hpd/CompletionFactory.java | 89 +++++--------------- frysk-core/frysk/hpd/CoreCommand.java | 2 +- frysk-core/frysk/hpd/DbgVariableCommands.java | 11 ++- frysk-core/frysk/hpd/DebuginfoCommand.java | 2 +- frysk-core/frysk/hpd/DefsetCommand.java | 2 +- frysk-core/frysk/hpd/DetachCommand.java | 2 +- frysk-core/frysk/hpd/DisassembleCommand.java | 2 +- frysk-core/frysk/hpd/DisplayCommand.java | 2 +- frysk-core/frysk/hpd/EvalCommands.java | 2 +- frysk-core/frysk/hpd/ExamineCommand.java | 2 +- frysk-core/frysk/hpd/FocusCommand.java | 2 +- frysk-core/frysk/hpd/GoCommand.java | 2 +- frysk-core/frysk/hpd/HaltCommand.java | 2 +- frysk-core/frysk/hpd/Input.java | 52 +++++++----- frysk-core/frysk/hpd/ListCommand.java | 2 +- frysk-core/frysk/hpd/LoadCommand.java | 2 +- frysk-core/frysk/hpd/ParameterizedCommand.java | 32 +++++++ frysk-core/frysk/hpd/PeekCommand.java | 2 +- frysk-core/frysk/hpd/PlocationCommand.java | 2 +- frysk-core/frysk/hpd/PtypeCommand.java | 2 +- frysk-core/frysk/hpd/QuitCommand.java | 2 +- frysk-core/frysk/hpd/RegsCommand.java | 2 +- frysk-core/frysk/hpd/StackCommands.java | 2 +- frysk-core/frysk/hpd/StepCommand.java | 2 +- frysk-core/frysk/hpd/StepFinishCommand.java | 2 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 2 +- frysk-core/frysk/hpd/StepNextCommand.java | 2 +- frysk-core/frysk/hpd/StepNextiCommand.java | 2 +- frysk-core/frysk/hpd/TestParameterizedCommand.java | 4 +- frysk-core/frysk/hpd/UndefsetCommand.java | 2 +- frysk-core/frysk/hpd/ViewsetCommand.java | 2 +- frysk-core/frysk/hpd/WhatCommand.java | 2 +- frysk-core/frysk/hpd/WhichsetsCommand.java | 2 +- 38 files changed, 170 insertions(+), 131 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ActionPointCommands.java b/frysk-core/frysk/hpd/ActionPointCommands.java index 217970a..7c954c6 100644 --- a/frysk-core/frysk/hpd/ActionPointCommands.java +++ b/frysk-core/frysk/hpd/ActionPointCommands.java @@ -121,7 +121,7 @@ abstract class ActionPointCommands extends ParameterizedCommand { }); } - int complete(CLI cli, Input incomplete, int base, List alternatives) { + int completer(CLI cli, Input incomplete, int base, List alternatives) { return -1; } diff --git a/frysk-core/frysk/hpd/AliasCommands.java b/frysk-core/frysk/hpd/AliasCommands.java index 84fdb56..d099c85 100644 --- a/frysk-core/frysk/hpd/AliasCommands.java +++ b/frysk-core/frysk/hpd/AliasCommands.java @@ -45,15 +45,15 @@ import java.util.Iterator; abstract class AliasCommands extends ParameterizedCommand { - int complete(CLI cli, Input input, int cursor, List completions) { - String incomplete = input.stringValue(); + int completer(CLI cli, Input input, int cursor, List completions) { + Input.Token incomplete = input.incompleteToken(cursor); for (Iterator i = cli.aliases.keySet().iterator(); i.hasNext(); ) { String key = (String)i.next(); - if (key.startsWith(incomplete)) + if (key.startsWith(incomplete.value)) completions.add(key); } CompletionFactory.padSingleCandidate(completions); - return input.cursor(0, cursor); + return incomplete.absolute(0); } AliasCommands(String name, String description, String syntax, diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index 489993e..69c2ba2 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -104,8 +104,7 @@ class AttachCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int base, - List completions) { + int completer(CLI cli, Input input, int base, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/BreakpointCommand.java b/frysk-core/frysk/hpd/BreakpointCommand.java index 13b379d..fcc95b8 100644 --- a/frysk-core/frysk/hpd/BreakpointCommand.java +++ b/frysk-core/frysk/hpd/BreakpointCommand.java @@ -186,7 +186,7 @@ class BreakpointCommand extends ParameterizedCommand { outWriter.println(); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeExpression(cli, input, cursor, completions); } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index da41ea0..5b8d78f 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,47 @@ 2007-11-14 Andrew Cagney + * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. + (completer(CLI,Input,int,List)): New. + * Input.java (incompleteToken(int)): New. + (base(int)): Delete. + (Token.absolute(int)): New. + (start(int,int)): Delete. + * CompletionFactory.java: Use Input.incompleteToken(int). + (completeFocusedExpression): Delete. + * WhichsetsCommand.java: Ditto. + * AliasCommands.java: Update. + * ActionPointCommands.java: Update. + * AttachCommand.java: Update. + * CoreCommand.java: Update. + * DbgVariableCommands.java: Update. + * DebuginfoCommand.java: Update. + * DefsetCommand.java: Update. + * DetachCommand.java: Update. + * DisassembleCommand.java: Update. + * DisplayCommand.java: Update. + * TestParameterizedCommand.java: Ditto. + * StepNextiCommand.java: Ditto. + * StepNextCommand.java: Ditto. + * StepInstructionCommand.java: Ditto. + * StepFinishCommand.java: Ditto. + * StepCommand.java: Ditto. + * RegsCommand.java: Ditto. + * StackCommands.java: Ditto. + * QuitCommand.java: Ditto. + * PtypeCommand.java: Ditto. + * PlocationCommand.java: Ditto. + * PeekCommand.java: Ditto. + * LoadCommand.java: Ditto. + * ListCommand.java: Ditto. + * HaltCommand.java: Ditto. + * GoCommand.java: Update. + * FocusCommand.java: Update. + * ExamineCommand.java: Update. + * EvalCommands.java: Update. + * WhatCommand.java: Ditto. + * ViewsetCommand.java: Ditto. + * UndefsetCommand.java: Ditto. + * TestParameterizedCommand.java (testShortAmbigiousOption()): New. (testShortUnambigiousOption()): New. * ParameterizedCommand.java: Allow shortened form of options. diff --git a/frysk-core/frysk/hpd/CompletionFactory.java b/frysk-core/frysk/hpd/CompletionFactory.java index 9f07922..9a5e5f7 100644 --- a/frysk-core/frysk/hpd/CompletionFactory.java +++ b/frysk-core/frysk/hpd/CompletionFactory.java @@ -57,39 +57,6 @@ class CompletionFactory { } } - static int completeFocusedExpression(CLI cli, Input input, int cursor, - List candidates) { - PTSet ptset = cli.getCommandPTSet(input); - String incomplete = input.stringValue(); - int start = input.token(0).start; - Iterator i = ptset.getTasks(); - if (!i.hasNext()) { - // Should still be able to complete $variables. - return -1; - } else { - int newCursor = -1; - do { - Task task = (Task)i.next(); - DebugInfoFrame frame = cli.getTaskFrame(task); - DebugInfo debugInfo = cli.getTaskDebugInfo(task); - int tmp = debugInfo.complete(frame, incomplete, - cursor - start, candidates); - if (tmp >= 0) - newCursor = tmp; - } while (i.hasNext()); - // If only one candidate, pad out with a space. - padSingleCandidate(candidates); - // System.out.println("start=" + start); - // System.out.println("cursor=" + cursor); - // System.out.println("candidates=" + candidates); - // System.out.println("newCursor=" + newCursor); - if (newCursor >= 0) - return newCursor + start; - else - return -1; - } - } - static int completeExpression(CLI cli, Input input, int cursor, List candidates) { PTSet ptset = cli.getCommandPTSet(input); @@ -98,25 +65,32 @@ class CompletionFactory { // Should still be able to complete $variables. return -1; } else { - int newCursor = -1; + int newOffset = -1; String incomplete = input.stringValue(); - int base = input.base(cursor); + int start; + if (input.size() == 0) + start = cursor; + else + start = input.token(0).start; do { Task task = (Task)i.next(); DebugInfoFrame frame = cli.getTaskFrame(task); DebugInfo debugInfo = cli.getTaskDebugInfo(task); int tmp = debugInfo.complete(frame, incomplete, - base, candidates); + cursor - start, candidates); if (tmp >= 0) - newCursor = tmp; + newOffset = tmp; } while (i.hasNext()); // If only one candidate, pad out with a space. padSingleCandidate(candidates); // System.out.println("start=" + start); - // System.out.println("base=" + base); + // System.out.println("offset=" + offset); // System.out.println("candidates=" + candidates); // System.out.println("newCursor=" + newCursor); - return input.cursor(newCursor, cursor); + if (newOffset < 0) + return -1; + else + return newOffset + start; } } @@ -126,39 +100,18 @@ class CompletionFactory { // System.out.println("cursor=" + cursor); // System.out.println("input.size()=" + input.size()); if (input.size() == 0) { - int newBase + int newOffset = new FileNameCompletor().complete("", 0, candidates); - if (newBase < 0) + if (newOffset < 0) return -1; else - return newBase + cursor; + return newOffset + cursor; } else { - // Need to find the parameter that contains the cursor and - // have that completed. - Input.Token token = null; - for (int i = 0; i < input.size(); i++) { - Input.Token t = input.token(i); - // System.out.println("token " + i + "=" + t); - if (cursor >= t.start && cursor <= t.end) { - token = t; - break; - } - } - if (token == null) - return -1; - Input.Token token0 = input.token(0); - String incomplete - = input.stringValue().substring(token.start - token0.start, - token.end - token0.start); - // System.out.println("incomplete=" + incomplete); - int newBase - = new FileNameCompletor().complete(incomplete, - cursor - token.start, - candidates); - if (newBase < 0) - return -1; - else - return newBase + token.start; + Input.Token incomplete = input.incompleteToken(cursor); + int newOffset = new FileNameCompletor() + .complete(incomplete.value, incomplete.end - incomplete.start, + candidates); + return incomplete.absolute(newOffset); } } } diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index e043aa1..31d75b6 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -169,7 +169,7 @@ public class CoreCommand extends ParameterizedCommand { exeFile = new File(cli.parameter(1)); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeFileName(cli, input, cursor, completions); } diff --git a/frysk-core/frysk/hpd/DbgVariableCommands.java b/frysk-core/frysk/hpd/DbgVariableCommands.java index bfee9a2..0145d5c 100644 --- a/frysk-core/frysk/hpd/DbgVariableCommands.java +++ b/frysk-core/frysk/hpd/DbgVariableCommands.java @@ -48,11 +48,12 @@ abstract class DbgVariableCommands extends ParameterizedCommand { super(name, description, syntax, full); } - int complete(CLI cli, Input input, int cursor, List completions) { - int base = input.base(cursor); - String incomplete = input.stringValue(); - int newBase = cli.dbgvars.complete(incomplete, base, completions); - return input.cursor(newBase, cursor); + int completer(CLI cli, Input input, int cursor, List completions) { + Input.Token incomplete = input.incompleteToken(cursor); + int newOffset = cli.dbgvars.complete(incomplete.value, + incomplete.end - incomplete.start, + completions); + return incomplete.absolute(newOffset); } static class Set extends DbgVariableCommands { diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java index 9d6b27d..687ec7c 100644 --- a/frysk-core/frysk/hpd/DebuginfoCommand.java +++ b/frysk-core/frysk/hpd/DebuginfoCommand.java @@ -53,7 +53,7 @@ class DebuginfoCommand extends ParameterizedCommand { + "for a process and its shared modules."); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java index 24764ac..de21d8d 100644 --- a/frysk-core/frysk/hpd/DefsetCommand.java +++ b/frysk-core/frysk/hpd/DefsetCommand.java @@ -78,7 +78,7 @@ class DefsetCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/DetachCommand.java b/frysk-core/frysk/hpd/DetachCommand.java index 3fa0092..32e5140 100644 --- a/frysk-core/frysk/hpd/DetachCommand.java +++ b/frysk-core/frysk/hpd/DetachCommand.java @@ -85,7 +85,7 @@ class DetachCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index 0740d09..8cc0eef 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -294,7 +294,7 @@ public class DisassembleCommand extends ParameterizedCommand { } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeExpression(cli, input, cursor, completions); } diff --git a/frysk-core/frysk/hpd/DisplayCommand.java b/frysk-core/frysk/hpd/DisplayCommand.java index ae84429..5932d4e 100644 --- a/frysk-core/frysk/hpd/DisplayCommand.java +++ b/frysk-core/frysk/hpd/DisplayCommand.java @@ -144,7 +144,7 @@ public class DisplayCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeExpression(cli, input, cursor, completions); } diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index ff1d46c..3514cdc 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -73,7 +73,7 @@ abstract class EvalCommands extends ParameterizedCommand { }); } - int complete(CLI cli, Input input, int cursor, List candidates) { + int completer(CLI cli, Input input, int cursor, List candidates) { return CompletionFactory.completeExpression(cli, input, cursor, candidates); } diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java index 8372bb0..0bdb7ca 100644 --- a/frysk-core/frysk/hpd/ExamineCommand.java +++ b/frysk-core/frysk/hpd/ExamineCommand.java @@ -78,7 +78,7 @@ public class ExamineCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeExpression(cli, input, cursor, completions); } diff --git a/frysk-core/frysk/hpd/FocusCommand.java b/frysk-core/frysk/hpd/FocusCommand.java index e265c23..633c03f 100644 --- a/frysk-core/frysk/hpd/FocusCommand.java +++ b/frysk-core/frysk/hpd/FocusCommand.java @@ -77,7 +77,7 @@ class FocusCommand extends ParameterizedCommand { } } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/GoCommand.java b/frysk-core/frysk/hpd/GoCommand.java index effc63d..5c1cd82 100644 --- a/frysk-core/frysk/hpd/GoCommand.java +++ b/frysk-core/frysk/hpd/GoCommand.java @@ -70,7 +70,7 @@ class GoCommand extends ParameterizedCommand { cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/HaltCommand.java b/frysk-core/frysk/hpd/HaltCommand.java index 7ac37e6..2f8dafa 100644 --- a/frysk-core/frysk/hpd/HaltCommand.java +++ b/frysk-core/frysk/hpd/HaltCommand.java @@ -71,7 +71,7 @@ class HaltCommand extends ParameterizedCommand { cli.addMessage("Not attached to any process", Message.TYPE_ERROR); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return -1; } } diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java index 3e98244..80317c7 100644 --- a/frysk-core/frysk/hpd/Input.java +++ b/frysk-core/frysk/hpd/Input.java @@ -56,6 +56,17 @@ class Input { this.start = start; this.end = end; } + /** + * Given the OFFSET into this TOKEN, return the absolute + * offset from the start of the command. + */ + int absolute(int offset) { + if (offset < 0) { + return -1; + } else { + return offset + start; + } + } public String toString() { return ("{" + super.toString() + ",value=" + value @@ -259,27 +270,28 @@ class Input { } /** - * Given the input "cursor", return the offset or base into - * stringValue() - the remaining parameters. + * Return the 'incomplete' token that should be completed; note + * that an "incomplete" token has "end" set to the cursor position + * and not the end of the string. */ - int base(int cursor) { - if (size() == 0) - return 0; - else - return cursor - token(0).start; - } - - /** - * The reverse of base; given a base, return a corresponding - * cursor. - */ - int cursor(int base, int cursor) { - if (base < 0) { - return -1; - } else if (size() == 0) { - return cursor + base; - } else { - return base + token(0).start; + Token incompleteToken(int cursor) { + // Need to find the parameter that contains the cursor and + // have that completed. + Token token = null; + for (int i = 0; i < size(); i++) { + Token t = token(i); + // System.out.println("token " + i + "=" + t); + if (cursor >= t.start && cursor <= t.end) { + token = t; + break; + } + } + // Cursor doesn't fall within any of the arguments, assume it + // is in a blank area and complete blank space. + if (token == null) { + return new Token("", cursor, cursor); } + return new Token(fullCommand.substring(token.start, token.end), + token.start, cursor); } } diff --git a/frysk-core/frysk/hpd/ListCommand.java b/frysk-core/frysk/hpd/ListCommand.java index e059b65..c0dec55 100644 --- a/frysk-core/frysk/hpd/ListCommand.java +++ b/frysk-core/frysk/hpd/ListCommand.java @@ -204,7 +204,7 @@ class ListCommand extends ParameterizedCommand { } - int complete(CLI cli, Input input, int cursor, List candidates) { + int completer(CLI cli, Input input, int cursor, List candidates) { return -1; } } diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index c24d815..cbad88d 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 14 19:33:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 14 Nov 2007 19:33:00 -0000 Subject: [SCM] master: Implement logical expressions for non-integer types; Simplify. Message-ID: <20071114193323.2234.qmail@sourceware.org> The branch, master has been updated via b8552bc35614296282376192e1057d0c4f2bd065 (commit) from c51aa91611f6b182762c6e81f5684650ac0082ef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b8552bc35614296282376192e1057d0c4f2bd065 Author: Teresa Thomas Date: Wed Nov 14 14:23:42 2007 -0500 Implement logical expressions for non-integer types; Simplify. frysk-core/frysk/value/ChangeLog 2007-11-14 Teresa Thomas * ArithmeticUnit.java (logicalAnd): Implement here, use getLogicalValue. (logicalOr): Ditto. (logicalNegation): Ditto. (wordSize): New. * AddressUnit.java: Update. (getLogicalValue): New. (wordSize): Delete. * IntegerUnit.java: Update. (getLogicalValue): New. * FloatingPointUnit.java: Update. (getLogicalValue): New. * TestValue.java: Add tests for above. frysk-core/frysk/expr/ChangeLog 2007-11-14 Teresa Thomas * CExprEvaluator.g: Give task memory to all logical operators. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 13 +++---- frysk-core/frysk/expr/ChangeLog | 7 +++- frysk-core/frysk/value/AddressUnit.java | 14 +++----- frysk-core/frysk/value/ArithmeticUnit.java | 22 ++++++++++-- frysk-core/frysk/value/ChangeLog | 16 +++++++++ frysk-core/frysk/value/FloatingPointUnit.java | 13 +++----- frysk-core/frysk/value/IntegerUnit.java | 26 +++------------ frysk-core/frysk/value/TestValue.java | 42 ++++++++++++++++-------- 8 files changed, 89 insertions(+), 64 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 4f06c19..2fb26a7 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -256,14 +256,12 @@ expr returns [Value returnVar=null] .bitWiseOr(v1, v2); } | #(AND v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), - exprSymTab.getWordSize()) - .logicalAnd(v1, v2); + returnVar = v1.getType().getALU(exprSymTab.getWordSize()) + .logicalAnd(v1, v2, exprSymTab.taskMemory()); } | #(OR v1=expr v2=expr) { - returnVar = v1.getType().getALU(v2.getType(), - exprSymTab.getWordSize()) - .logicalOr(v1, v2); + returnVar = v1.getType().getALU(exprSymTab.getWordSize()) + .logicalOr(v1, v2,exprSymTab.taskMemory()); } | #(NOT v1=expr) { // byte buffer needed for Pointer/Address types @@ -277,7 +275,8 @@ expr returns [Value returnVar=null] | #(COND_EXPR log_expr=expr v1=expr v2=expr) { returnVar = ((log_expr.getType().getALU(log_expr.getType(), exprSymTab.getWordSize()) - .getLogicalValue(log_expr)) ? v1 : v2); + .getLogicalValue(log_expr, exprSymTab.taskMemory())) + ? v1 : v2); } | o:OCTALINT { char c = o.getText().charAt(o.getText().length() - 1); diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 4d06e8a..f4519d1 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,5 +1,10 @@ +2007-11-14 Teresa Thomas + + * CExprEvaluator.g: Give task memory to + all logical operators. + 2007-11-13 Teresa Thomas - + * CExprEvaluator.g: Update. 2007-11-09 Teresa Thomas diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index 8917459..32b7503 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -41,25 +41,22 @@ package frysk.value; import inua.eio.ByteOrder; import inua.eio.ByteBuffer; + /** * Operation handling for pointers and addresses. */ public class AddressUnit extends ArithmeticUnit -{ - private final int wordSize; - +{ public AddressUnit (ArrayType t, int wordSize) { super (wordSize); retType = new PointerType(t.getName(), ByteOrder.BIG_ENDIAN, wordSize, t.getType()); - this.wordSize = wordSize; } public AddressUnit (PointerType t, int wordSize) { super (wordSize); retType = t; - this.wordSize = wordSize; } /** @@ -124,9 +121,8 @@ extends ArithmeticUnit Value v2Neg = new Value (v2.getType(), l); return add (v1, v2Neg); } - - public Value logicalNegation(Value v1, ByteBuffer mem) { - return intType.createValue - (v1.toPrint(Format.NATURAL, mem).equals("0x0")? 1:0); + + public boolean getLogicalValue (Value v1, ByteBuffer mem) { + return (v1.toPrint(Format.NATURAL, mem).equals("0x0")? false:true); } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index acfe985..5bfaea7 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -55,6 +55,8 @@ public abstract class ArithmeticUnit // Integer return type for relational, equality // and logical operations. protected IntegerType intType; + + protected int wordSize; protected ArithmeticUnit(int wordSize) { // XXX: Is endianness okay? @@ -62,6 +64,7 @@ public abstract class ArithmeticUnit // size of machine. intType = new UnsignedType ("int", ByteOrder.LITTLE_ENDIAN, wordSize); + this.wordSize = wordSize; } // Multiplicative and Additive expressions @@ -145,17 +148,28 @@ public abstract class ArithmeticUnit throw new InvalidOperatorException (v1.getType(), v2.getType(), "&&"); } + // Logical expressions - valid for any scalar types. + public Value logicalAnd (Value v1, Value v2, ByteBuffer mem) { + boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); + boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); + return intType.createValue( (op1 && op2) ? 1:0); + } public Value logicalOr (Value v1, Value v2) { throw new InvalidOperatorException (v1.getType(), v2.getType(), "||"); } + public Value logicalOr (Value v1, Value v2, ByteBuffer mem) { + boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); + boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); + return intType.createValue( op1 || op2 ? 1:0); + } public Value logicalNegation(Value v1, ByteBuffer mem) { - throw new InvalidOperatorException - (v1.getType(), "!"); + boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); + return intType.createValue( op1 ? 0:1); } - public boolean getLogicalValue (Value v1) { + public boolean getLogicalValue (Value v1, ByteBuffer mem) { throw new InvalidOperatorException - (v1.getType(), "bool"); + (v1.getType(), "getLogicalValue"); } // Assigment expressions. diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 43d1291..037936f 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,19 @@ +2007-11-14 Teresa Thomas + + * ArithmeticUnit.java (logicalAnd): Implement here, + use getLogicalValue. + (logicalOr): Ditto. + (logicalNegation): Ditto. + (wordSize): New. + * AddressUnit.java: Update. + (getLogicalValue): New. + (wordSize): Delete. + * IntegerUnit.java: Update. + (getLogicalValue): New. + * FloatingPointUnit.java: Update. + (getLogicalValue): New. + * TestValue.java: Add tests for above. + 2007-11-13 Teresa Thomas * ArithmeticUnit.java (logicalNegation): Add task mem to diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index 3e1ff5e..6b57434 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -38,6 +38,7 @@ // exception. package frysk.value; + import inua.eio.ByteBuffer; /** @@ -102,13 +103,9 @@ public class FloatingPointUnit public Value notEqual (Value v1, Value v2) { return retType.createValue (v1.doubleValue() != v2.doubleValue() ? 1:0); - } + } - /** - * @param mem - unused here. - */ - public Value logicalNegation(Value v1, ByteBuffer mem) { - return intType.createValue - (v1.doubleValue() == 0.0? 1 : 0); - } + public boolean getLogicalValue (Value v1, ByteBuffer mem) { + return ((v1.doubleValue() == 0.0) ? false : true); + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index e43adbd..ce3f505 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -133,26 +133,10 @@ public class IntegerUnit public Value bitWiseComplement(Value v1) { return retType.createValue (v1.asBigInteger().not()); - } - - public Value logicalAnd(Value v1, Value v2) { - return retType.createValue - ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) - && (v2.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) ? 1 : 0); - } - public Value logicalOr(Value v1, Value v2) { - return retType.createValue - ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) - || (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? false : true) ? 1 : 0); - } - /** - * @ param mem - unused here. - */ - public Value logicalNegation(Value v1, ByteBuffer mem) { - return retType.createValue - (v1.asBigInteger().compareTo(BigInteger.ZERO) == 0 ? 1 : 0); - } - public boolean getLogicalValue (Value v1) { - return ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0) ? false : true); + } + + public boolean getLogicalValue (Value v1, ByteBuffer mem) { + return ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0) + ? false : true); } } \ No newline at end of file diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index d8c8289..30507f5 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -41,6 +41,7 @@ package frysk.value; import inua.eio.ArrayByteBuffer; import inua.eio.ByteOrder; +import frysk.Config; import frysk.junit.TestCase; public class TestValue @@ -57,6 +58,9 @@ public class TestValue private ArithmeticType byteType = new SignedType("byte", ByteOrder.LITTLE_ENDIAN, 1); private ArithmeticType floatType = new FloatingPointType("float", ByteOrder.LITTLE_ENDIAN, 4); private ArithmeticType doubleType = new FloatingPointType("double", ByteOrder.LITTLE_ENDIAN, 8); + + private int wordSize = Config.getWordSize(); + public void testNumber () { Value v1 = byteType.createValue(1); @@ -137,13 +141,13 @@ public class TestValue assertEquals ("9 ^ 4", 9 ^ 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseComplement(v1); assertEquals ("~4", ~4, v3.asLong()); - v3 = v1.getType().getALU(v2.getType(), 0).logicalAnd(v2, v1); - assertEquals ("9 & 4", 1, v3.asLong()); - v3 = v1.getType().getALU(v2.getType(), 0).logicalOr(v2, v1); - assertEquals ("9 | 4", 1, v3.asLong()); - v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1, null); + v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); + assertEquals ("9 && 4", 1, v3.asLong()); + v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); + assertEquals ("9 || 4", 1, v3.asLong()); + v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null); assertEquals ("!4", 0, v3.asLong()); - bool = v2.getType().getALU(v2.getType(), 0).getLogicalValue(v2); + bool = v2.getType().getALU(wordSize).getLogicalValue(v2, null); assertEquals ("bool(9)", true, bool); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.asLong()); @@ -162,11 +166,11 @@ public class TestValue v3 = v1.getType().getALU(v2.getType(), 0).shiftRightEqual(v3, v1); assertEquals ("v3 >>= 4", 0, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseOrEqual(v3, v1); - assertEquals ("v3 ||= 4", 4, v3.asLong()); + assertEquals ("v3 |= 4", 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseXorEqual(v3, v1); assertEquals ("v3 ^= 4", 0, v3.asLong()); v3 =v1.getType().getALU(v2.getType(), 0).bitWiseAndEqual(v3, v1); - assertEquals ("v3 &&= 4", 0, v3.asLong()); + assertEquals ("v3 &= 4", 0, v3.asLong()); } public void testFloatOps () @@ -207,11 +211,16 @@ public class TestValue v3 = v3.getType().getALU(v1.getType(), 0).modEqual(v3, v1); assertEquals ("v3 %= 4", 0, v3.doubleValue(), 0); // Note: Return type of logical expression is int. - v3 = v1.getType().getALU(v1.getType(), 0).logicalNegation(v1, null); + v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); + assertEquals ("9 && 4", 1, v3.asLong()); + v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); + assertEquals ("9 || 4", 1, v3.asLong()); + v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null); assertEquals ("!4", 0, v3.asLong()); } - public void testAddressOps() { + public void testAddressOps() + { // Construct a buffer with a string in it. ArrayByteBuffer memory = new ArrayByteBuffer("0123Hello World\0>>>".getBytes()); @@ -220,9 +229,14 @@ public class TestValue 1, true)); // Construct the pointer to it. Location l = new ScratchLocation(new byte[] { 4 }); - Value string = new Value (t, l); - - Value v = t.getALU(8).logicalNegation(string, memory); - assertEquals("!string", 0, v.asLong()); + Value ptr = new Value (t, l); + Value v1 = intType.createValue(4); + + Value v = v1.getType().getALU(wordSize).logicalAnd(v1, ptr, memory); + assertEquals ("ptr && 4", 1, v.asLong()); + v = v1.getType().getALU(wordSize).logicalOr(v1, ptr, memory); + assertEquals ("ptr || 4", 1, v.asLong()); + v = t.getALU(8).logicalNegation(ptr, memory); + assertEquals("!ptr", 0, v.asLong()); } } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 14 19:39:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 14 Nov 2007 19:39:00 -0000 Subject: [SCM] master: Remove stray call to System.out.println. Message-ID: <20071114193919.5009.qmail@sourceware.org> The branch, master has been updated via b5bb4c4272e619dd93ffc08bd9c7168e8b70a095 (commit) from b8552bc35614296282376192e1057d0c4f2bd065 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b5bb4c4272e619dd93ffc08bd9c7168e8b70a095 Author: Teresa Thomas Date: Wed Nov 14 14:38:57 2007 -0500 Remove stray call to System.out.println. 2007-11-14 Teresa Thomas * Type.java (getALU): Remove stray println. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 2 ++ frysk-core/frysk/value/Type.java | 1 - 2 files changed, 2 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 037936f..296f17f 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,7 @@ 2007-11-14 Teresa Thomas + * Type.java (getALU): Remove stray println. + * ArithmeticUnit.java (logicalAnd): Implement here, use getLogicalValue. (logicalOr): Ditto. diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index f61d137..9bea6cb 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -142,7 +142,6 @@ public abstract class Type { throw new RuntimeException("Invalid Arithmetic Unit"); } public ArithmeticUnit getALU(PointerType type, int wordSize) { - System.out.println ("Type:PType"); throw new RuntimeException("Invalid Arithmetic Unit"); } public ArithmeticUnit getALU(ArrayType type, int wordSize) { hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 14 20:31:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 14 Nov 2007 20:31:00 -0000 Subject: [SCM] master: Delete older implementation of logical*. Message-ID: <20071114203108.2608.qmail@sourceware.org> The branch, master has been updated via 5d772e1456994a832874051dd9eb307af3e4dd53 (commit) from b5bb4c4272e619dd93ffc08bd9c7168e8b70a095 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5d772e1456994a832874051dd9eb307af3e4dd53 Author: Teresa Thomas Date: Wed Nov 14 14:56:33 2007 -0500 Delete older implementation of logical*. frysk-core/frysk/value/ChangeLog 2007-11-14 Teresa Thomas * ArithmeticUnit.java (logicalAnd(Value,Value)): Delete. * ArithmeticUnit.java (logicalOr(Value,Value)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ArithmeticUnit.java | 9 --------- frysk-core/frysk/value/ChangeLog | 3 +++ 2 files changed, 3 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index 5bfaea7..5280224 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -143,21 +143,12 @@ public abstract class ArithmeticUnit (v1.getType(), "~"); } - // Logical expressions - valid for scalar types. - public Value logicalAnd (Value v1, Value v2) { - throw new InvalidOperatorException - (v1.getType(), v2.getType(), "&&"); - } // Logical expressions - valid for any scalar types. public Value logicalAnd (Value v1, Value v2, ByteBuffer mem) { boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); return intType.createValue( (op1 && op2) ? 1:0); } - public Value logicalOr (Value v1, Value v2) { - throw new InvalidOperatorException - (v1.getType(), v2.getType(), "||"); - } public Value logicalOr (Value v1, Value v2, ByteBuffer mem) { boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 296f17f..7ae7fae 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,4 +1,7 @@ 2007-11-14 Teresa Thomas + + * ArithmeticUnit.java (logicalAnd(Value,Value)): Delete. + * ArithmeticUnit.java (logicalOr(Value,Value)): Delete. * Type.java (getALU): Remove stray println. hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Wed Nov 14 21:21:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Wed, 14 Nov 2007 21:21:00 -0000 Subject: [SCM] master: Forgotten changelogs, no longer unresolved x8664 testcases. Message-ID: <20071114212127.1626.qmail@sourceware.org> The branch, master has been updated via e60eaf6b29b3ca49957843adc7e69f898f0f1a43 (commit) via 3c64e31d42bfb708ca142a559a4014d362eb0fc3 (commit) via d66f674eb1d4f67e0f6f92a7ba39edc89cb74a39 (commit) from 5d772e1456994a832874051dd9eb307af3e4dd53 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e60eaf6b29b3ca49957843adc7e69f898f0f1a43 Author: Petr Machata Date: Wed Nov 14 21:38:00 2007 +0100 Forgotten changelogs, no longer unresolved x8664 testcases. commit 3c64e31d42bfb708ca142a559a4014d362eb0fc3 Author: Petr Machata Date: Wed Nov 14 21:27:52 2007 +0100 Revamp mapping system. * Instead of trying to merge several maps into one, ltrace now carries each mapping separately. As soon as the file gets mapped (the file, or part thereof), the controller is asked to provide working set. This working set is then applied or removed depending on which parts are mapped or unmapped. The reason for this is that it turned out that x8664 maps libraries uncontinuously, and dl_debug_state observer choked on that, because it saw the wrong mapping. Problem is that with uncontinuous mapping, you can't merge several mappings into one logical mapping anymore, because some files can be doubly-mapped. So we track each mapping separately. * Resolves: #5321 * As usual, the coding style of the code that I touched was java-ized. commit d66f674eb1d4f67e0f6f92a7ba39edc89cb74a39 Author: Petr Machata Date: Sat Nov 10 17:37:18 2007 +0100 Mapping guard refactorings It's now more similar to traditional frysk observer pattern (with requestAdd et. al.). The two guards are reimplemented as subclasses of more general Guard abstract class. Each task has guard of its own, it's not created one guard per observer anymore. Of course having a guard per proc would be yet better... ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 27 ++ frysk-core/frysk/ftrace/Ltrace.java | 379 +++++++++++++------- frysk-core/frysk/ftrace/MappingGuard.java | 245 ++++++++++---- ...MappingController.java => MappingObserver.java} | 12 +- frysk-core/frysk/ftrace/MemoryMapping.java | 169 +++++---- frysk-core/frysk/ftrace/ObjectFile.java | 76 ++--- frysk-core/frysk/ftrace/Symbol.java | 4 +- frysk-core/frysk/ftrace/TestLtrace.java | 11 - frysk-core/frysk/ftrace/TracePoint.java | 30 +- 9 files changed, 610 insertions(+), 343 deletions(-) rename frysk-core/frysk/ftrace/{MappingController.java => MappingObserver.java} (85%) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index ce715bc..f369a79 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,19 @@ +2007-11-14 Petr Machata + + * TestLtrace.java (testAllLibrariesGetDetected): No longer + unresolvedx8664. + (testCallRecorded): Ditto. + (testArgumentsCorrect1): Ditto. + +2007-11-14 Petr Machata + + * frysk-core/frysk/ftrace/Symbol.java (offset): New field. + * frysk-core/frysk/ftrace/TracePoint.java (offset): New field. + * frysk-core/frysk/ftrace/ObjectFile.java: Support `offset'. + * frysk-core/frysk/ftrace/MemoryMapping.java: Rewritten. + * frysk-core/frysk/ftrace/MappingGuard.java: Adapted to above. + * frysk-core/frysk/ftrace/Ltrace.java: Adapted to above. + 2007-11-13 Sami Wagiaalla * TestLtrace.java (testAllLibrariesGetDetected): Marked @@ -5,6 +21,17 @@ (testCallRecorded): Ditto. (testArgumentsCorrect1): Ditto. +2007-11-10 Petr Machata + + * MappingController.java: Renamed to MappingObserver.java. + * MappingGuard.java: Turned into more frysk task observer like pattern. + (MappingGuard.MappingGuardB) new abstract base class + (MappingGuard.SyscallMappingGuard) concrete guard implementation + (MappingGuard.DebugStateMappingGuard) another concrete guard impl. + (MappingGuard.requestAddMappingObserver, + MappingGuard.requestDeleteMappingObserver) new static methods + * Ltrace.java: accomodate for the changes above + 2007-11-08 Petr Machata * MappingController.java: New file. diff --git a/frysk-core/frysk/ftrace/Ltrace.java b/frysk-core/frysk/ftrace/Ltrace.java index 97979c9..e3e4bfc 100644 --- a/frysk-core/frysk/ftrace/Ltrace.java +++ b/frysk-core/frysk/ftrace/Ltrace.java @@ -158,10 +158,8 @@ public class Ltrace * @param blocker An observer that blocks current process until * the tasks are processed. Unblock is requested here. */ - private void addProc(Proc proc, TaskObserver blocker) + private void addProc(Proc proc) { - Task mainTask = proc.getMainTask(); - // If a task appears after the getTasks() list is generated, but // before ProcTasks iteration below, it will be reported as // existing at ProcTasks iteration. This set exists to @@ -197,9 +195,6 @@ public class Ltrace public void addedTo(Object arg0) {} public void deletedFrom(Object arg0) {} }); - - if (blocker != null) - mainTask.requestUnblock(blocker); } private Map taskArchHandlers = new HashMap(); @@ -259,7 +254,7 @@ public class Ltrace ProcId id = proc.getId(); if (pidsToTrace.contains(id)) { - addProc(proc, null); + addProc(proc); pidsToTrace.remove(id); if (pidsToTrace.isEmpty()) Manager.host.observableProcAddedXXX.deleteObserver(this); @@ -295,8 +290,9 @@ public class Ltrace Manager.host.requestCreateAttachedProc(command, new TaskObserver.Attached() { public Action updateAttached (Task task) { - addProc(task.getProc(), this); - ltraceTaskObserver.updateAttached(task); + addProc(task.getProc()); + ltraceTaskObserver.updateAttached(task, null); + task.requestUnblock(this); return Action.BLOCK; } public void addFailed (Object arg0, Throwable w) {} @@ -315,7 +311,7 @@ public class Ltrace TaskObserver.Signaled, TaskObserver.Terminated, TaskObserver.Terminating, - MappingController + MappingObserver { /** Remembers which files are currently mapped in which task. */ private HashMap mapsForTask = new HashMap(); @@ -329,50 +325,9 @@ public class Ltrace Map<task, Map<address, List<TracePoint>>> */ private HashMap retBreakpointsForTask = new HashMap(); - /** Keeps track of map/unmap events. */ - private MappingGuard mappingGuard = new MappingGuard(this); - - // --------------------- - // --- ltrace driver --- - // --------------------- - - private class DriverImpl - implements Ltrace.Driver - { - final long relocation; - - public DriverImpl(long relocation) - { - this.relocation = relocation; - } - - public void tracePoint(Task task, TracePoint tp) - { - long addr = tp.address + this.relocation; - Long laddr = new Long(addr); - logger.log(Level.CONFIG, "Will trace `" + tp.symbol.name - + "' at 0x" + Long.toHexString(addr), this); - - // FIXME: probably handle aliases at a lower - // lever. Each tracepoint should point to a list - // of symbols that alias it, and should be present - // only once in an ObjectFile. - synchronized (LtraceTaskObserver.this) { - HashMap breakpoints = (HashMap)breakpointsForTask.get(task); - if (breakpoints.containsKey(laddr)) { - // We got an alias. Put the symbol with the - // shorter name into the map. - TracePoint original = (TracePoint)breakpoints.get(laddr); - if (tp.symbol.name.length() < original.symbol.name.length()) - breakpoints.put(laddr, tp); - } - else { - task.requestAddCodeObserver(ltraceTaskObserver, laddr.longValue()); - breakpoints.put(laddr, tp); - } - } - } - } + /** Remembers working set preferences for each task. + Map<Task, Map<File, TracePointWorkingSet>> */ + private HashMap driversForTask = new HashMap(); // ------------------------ // --- syscall observer --- @@ -621,7 +576,7 @@ public class Ltrace // --- attached/terminated/terminating observers --- // ------------------------------------------------- - public Action updateAttached (Task task) + public void updateAttached(Task task, TaskObserver blocker) { // Per-task initialization. long pc = task.getIsa().pc(task); @@ -629,14 +584,17 @@ public class Ltrace "new task attached at 0x" + Long.toHexString(pc) + ", pid=" + task.getTaskId().intValue()); - this.mapsForTask.put(task, java.util.Collections.EMPTY_SET); + this.mapsForTask.put(task, java.util.Collections.EMPTY_MAP); this.breakpointsForTask.put(task, new HashMap()); this.retBreakpointsForTask.put(task, new HashMap()); this.checkMapUnmapUpdates(task, false); - mappingGuard.attachTo(task); + MappingGuard.requestAddMappingObserver(task, this); + } - task.requestUnblock(this); + public Action updateAttached (Task task) + { + updateAttached(task, this); return Action.BLOCK; } @@ -671,7 +629,7 @@ public class Ltrace { if(traceChildren) { - addProc(offspring.getProc(), null); + addProc(offspring.getProc()); offspring.requestUnblock(this); return Action.BLOCK; } @@ -696,84 +654,250 @@ public class Ltrace - // ---------------------------- - // --- mmap/munmap handling --- - // ---------------------------- + // ---------------------------- + // --- mmap/munmap handling --- + // ---------------------------- - /** Implementation of MappingController interface... */ - public void checkMapUnmapUpdates(Task task) - { - checkMapUnmapUpdates(task, false); - } + private class TracePointWorkingSet + implements Ltrace.Driver + { + private Set tracePoints = new HashSet(); - private void checkMapUnmapUpdates(Task task, boolean terminating) - { - Set mappedFiles = (Set)this.mapsForTask.get(task); - Set newMappedFiles = terminating ? - java.util.Collections.EMPTY_SET : MemoryMapping.buildForPid(task.getTid()); - - // Assume that files get EITHER mapped, OR unmapped. Because - // under normal conditions, each map/unmap will get spotted, - // this is a reasonable assumption. - if (newMappedFiles.size() > mappedFiles.size()) { - Set diff = new HashSet(newMappedFiles); - diff.removeAll(mappedFiles); - for (Iterator it = diff.iterator(); it.hasNext(); ) { - MemoryMapping info = (MemoryMapping)it.next(); - this.updateMappedFile(task, info); + public void tracePoint(Task task, TracePoint tp) + { + logger.log(Level.CONFIG, "Request for tracing `{0}'", tp.symbol.name); + tracePoints.add(tp); + } + + public void populateBreakpoints(Task task, MemoryMapping.Part part) + { + for (Iterator it = tracePoints.iterator(); it.hasNext(); ) { + TracePoint tp = (TracePoint)it.next(); + if (tp.offset >= part.offset + && tp.offset < part.offset + part.addressHigh - part.addressLow) { + logger.log(Level.FINER, + "Will trace `" + tp.symbol.name + "', " + + "address=0x" + Long.toHexString(tp.address) + "; " + + "offset=0x" + Long.toHexString(tp.offset) + "; " + + "part at=0x" + Long.toHexString(part.addressLow) + + ".." + Long.toHexString(part.addressHigh) + "; " + + "part off=0x" + Long.toHexString(part.offset) + ";"); + + long actualAddress = tp.offset - part.offset + part.addressLow; + Long laddr = new Long(actualAddress); + logger.log(Level.CONFIG, + "Will trace `" + tp.symbol.name + + "' at 0x" + Long.toHexString(actualAddress)); + + // FIXME: probably handle aliases at a lower + // lever. Each tracepoint should point to a list + // of symbols that alias it, and should be present + // only once in an ObjectFile. + synchronized (LtraceTaskObserver.this) { + HashMap breakpoints = (HashMap)breakpointsForTask.get(task); + if (breakpoints.containsKey(laddr)) { + // We got an alias. Put the symbol with the + // shorter name into the map. + TracePoint original = (TracePoint)breakpoints.get(laddr); + if (tp.symbol.name.length() < original.symbol.name.length()) + breakpoints.put(laddr, tp); + } + else { + task.requestAddCodeObserver(ltraceTaskObserver, laddr.longValue()); + breakpoints.put(laddr, tp); + } + } + } + } + } + + public void evacuateBreakpoints(Task task, MemoryMapping.Part part) + { + for (Iterator it = tracePoints.iterator(); it.hasNext(); ) { + TracePoint tp = (TracePoint)it.next(); + if (tp.offset >= part.offset + && tp.offset < part.offset + part.addressHigh - part.addressLow) { + + long actualAddress = tp.offset - part.offset + part.addressLow; + Long laddr = new Long(actualAddress); + logger.log(Level.CONFIG, + "Stopping tracing of `" + tp.symbol.name + + "' at 0x" + Long.toHexString(actualAddress)); + + // FIXME: Handle aliases. + synchronized (LtraceTaskObserver.this) { + HashMap breakpoints = (HashMap)breakpointsForTask.get(task); + TracePoint original = (TracePoint)breakpoints.remove(laddr); + if (original == null) + throw new AssertionError("Couldn't find breakpoint to remove!"); + task.requestDeleteCodeObserver(ltraceTaskObserver, laddr.longValue()); + } + } + } } } - else if (newMappedFiles.size() < mappedFiles.size()) { - // We can avoid artificial `diff' set here, to gain a - // little performance. - mappedFiles.removeAll(newMappedFiles); - for (Iterator it = mappedFiles.iterator(); it.hasNext(); ) { - MemoryMapping info = (MemoryMapping)it.next(); - this.updateUnmappedFile(task, info); + + /** Implementation of MappingObserver interface... */ + public Action updateMapping(Task task) { + checkMapUnmapUpdates(task, false); + task.requestUnblock(this); + return Action.BLOCK; + } + + private void checkMapUnmapUpdates(Task task, boolean terminating) + { + Map oldMappings = (Map)this.mapsForTask.get(task); + final Map newMappings; + if (terminating) + newMappings = java.util.Collections.EMPTY_MAP; + else + newMappings = MemoryMapping.buildForPid(task.getTid()); + + // Resolve full mmaps, and partial mmaps and unmaps. + for (Iterator it = newMappings.entrySet().iterator(); it.hasNext(); ) { + Map.Entry entry = (Map.Entry)it.next(); + Object oKey = entry.getKey(); // actually File + MemoryMapping newMapping = (MemoryMapping)entry.getValue(); + if (!oldMappings.containsKey(oKey)) { + this.updateMappedFile(task, newMapping); + } + else { + // Remove the key from old set, so that at the end, only + // unmapped values are left. + MemoryMapping oldMapping = (MemoryMapping)oldMappings.remove(oKey); + int oldSize = oldMapping.parts.size(); + int newSize = newMapping.parts.size(); + if (oldSize < newSize) { + // newMapping.parts[oldSize:] is VERY likely the new stuff + for (int i = oldMapping.parts.size(); i < newMapping.parts.size(); ++i) { + MemoryMapping.Part part = (MemoryMapping.Part)newMapping.parts.get(i); + this.updateMappedPart(task, newMapping, part); + } + } + else if (oldSize > newSize) { + // Find first non-matching Part. + int i = 0; + int j = 0; + while (i < oldSize && j < newSize + && oldMapping.parts.get(i).equals(newMapping.parts.get(j))) { + ++i; + ++j; + } + + // If `j' is at the end, the remaining old parts + // are unmapped. Otherwise only the portion + // until the first matching part is unmapped. + while (i < oldSize + && (j >= newSize + || !oldMapping.parts.get(i).equals(newMapping.parts.get(j)))) { + MemoryMapping.Part part = (MemoryMapping.Part)oldMapping.parts.get(i); + this.updateUnmappedPart(task, oldMapping, part); + ++i; + } + } + } + } + + // Resolve full unmaps. + for (Iterator it = oldMappings.entrySet().iterator(); it.hasNext(); ) { + Map.Entry entry = (Map.Entry)it.next(); + MemoryMapping removedMapping = (MemoryMapping)entry.getValue(); + this.updateUnmappedFile(task, removedMapping); } + + this.mapsForTask.put(task, newMappings); } - this.mapsForTask.put(task, newMappedFiles); - } + private void updateMappedPart(Task task, MemoryMapping mapping, + MemoryMapping.Part part, + TracePointWorkingSet driver) + { + driver.populateBreakpoints(task, part); + } - private void updateMappedFile(final Task task, MemoryMapping mapping) - { - synchronized(observers) - { - for (Iterator it = observers.iterator(); it.hasNext(); ) - { - LtraceObserver o = (LtraceObserver)it.next(); - o.fileMapped(task, mapping.path); - } - } + private void updateUnmappedPart(Task task, MemoryMapping mapping, + MemoryMapping.Part part, + TracePointWorkingSet driver) + { + driver.evacuateBreakpoints(task, part); + } - // Try to load the mappped file as ELF. Assume all - // executable-mmapped ELF files are libraries. - if (!mapping.permExecute) - return; - ObjectFile objf = ObjectFile.buildFromFile(mapping.path); - if (objf == null) - return; - - // It's actually cheaper to create one driver per task and file - // loaded, than to look up relocation for each TracePoint - // processed by the driver. - long relocation = mapping.addressLow - objf.getBaseAddress(); - DriverImpl driver = new DriverImpl(relocation); - ltraceController.fileMapped(task, objf, driver); - } + private void updateMappedPart(Task task, MemoryMapping mapping, MemoryMapping.Part part) + { + // At this point we already know client preferences + // regarding which tracepoints should be in working set. + // Just apply this knowledge on new mapped part: all working + // set elements that fall into this part should be observed. + + // This has to be non-null, we already called + // updateMappedFile when the file was mapped: + Map drivers = (Map)driversForTask.get(task); + TracePointWorkingSet driver = (TracePointWorkingSet)drivers.get(mapping.path); + updateMappedPart(task, mapping, part, driver); + } - private void updateUnmappedFile (Task task, MemoryMapping mapping) - { - synchronized(observers) - { - for (Iterator it = observers.iterator(); it.hasNext(); ) - { - LtraceObserver o = (LtraceObserver)it.next(); - o.fileUnmapped(task, mapping.path); - } - } - } + private void updateUnmappedPart(Task task, MemoryMapping mapping, MemoryMapping.Part part) + { + // This has to be non-null. + Map drivers = (Map)driversForTask.get(task); + TracePointWorkingSet driver = (TracePointWorkingSet)drivers.get(mapping.path); + updateUnmappedPart(task, mapping, part, driver); + } + + private void updateMappedFile(Task task, MemoryMapping mapping) + { + // New file has been mapped. Notify all observers (TODO: this + // should go away once ltrace becomes true observer), and let + // client define working set of this file. Then implement the + // working set via updateMappedPart of each part in mapping. + synchronized(observers) { + for (Iterator it = observers.iterator(); it.hasNext(); ) { + LtraceObserver o = (LtraceObserver)it.next(); + o.fileMapped(task, mapping.path); + } + } + + ObjectFile objf = ObjectFile.buildFromFile(mapping.path); + if (objf == null) + return; + + TracePointWorkingSet driver = new TracePointWorkingSet(); + Map drivers = (Map)driversForTask.get(task); + if (drivers == null) { + drivers = new HashMap(); + driversForTask.put(task, drivers); + } + drivers.put(mapping.path, driver); + ltraceController.fileMapped(task, objf, driver); + + for (Iterator it = mapping.parts.iterator(); it.hasNext(); ) { + MemoryMapping.Part part = (MemoryMapping.Part)it.next(); + if (part.permExecute) + updateMappedPart(task, mapping, part, driver); + } + } + + private void updateUnmappedFile (Task task, MemoryMapping mapping) + { + // TODO: this should go away once ltrace becomes true + // observer. + synchronized(observers) { + for (Iterator it = observers.iterator(); it.hasNext(); ) { + LtraceObserver o = (LtraceObserver)it.next(); + o.fileUnmapped(task, mapping.path); + } + } + + // This has to be non-null. + Map drivers = (Map)driversForTask.get(task); + TracePointWorkingSet driver = (TracePointWorkingSet)drivers.get(mapping.path); hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 14 21:54:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 14 Nov 2007 21:54:00 -0000 Subject: [SCM] master: Use integer return type for existing relational operations. Message-ID: <20071114215431.17295.qmail@sourceware.org> The branch, master has been updated via d3ba8c41604b2cf30372d8bb00758b3d4e4596d0 (commit) from e60eaf6b29b3ca49957843adc7e69f898f0f1a43 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d3ba8c41604b2cf30372d8bb00758b3d4e4596d0 Author: Teresa Thomas Date: Wed Nov 14 16:50:48 2007 -0500 Use integer return type for existing relational operations. frysk-core/frysk/value/ChangeLog 2007-11-14 Teresa Thomas * FloatingPointUnit.java: Use intType for relational operations. * IntegerUnit.java: Ditto. * TestValue.java (testFloatOps): Update. (testIntOps): Update. (isTrue (double)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 9 +++- frysk-core/frysk/value/FloatingPointUnit.java | 12 ++-- frysk-core/frysk/value/IntegerUnit.java | 12 ++-- frysk-core/frysk/value/TestValue.java | 64 +++++++++++------------- 4 files changed, 49 insertions(+), 48 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 7ae7fae..9e7aed0 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,12 @@ 2007-11-14 Teresa Thomas + * FloatingPointUnit.java: Use intType for relational + operations. + * IntegerUnit.java: Ditto. + * TestValue.java (testFloatOps): Update. + (testIntOps): Update. + (isTrue (double)): Delete. + * ArithmeticUnit.java (logicalAnd(Value,Value)): Delete. * ArithmeticUnit.java (logicalOr(Value,Value)): Delete. @@ -17,7 +24,7 @@ (getLogicalValue): New. * FloatingPointUnit.java: Update. (getLogicalValue): New. - * TestValue.java: Add tests for above. + * TestValue.java: Add tests for above. 2007-11-13 Teresa Thomas diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index 6b57434..fcaee8f 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -81,27 +81,27 @@ public class FloatingPointUnit } public Value lessThan (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() < v2.doubleValue() ? 1:0); } public Value greaterThan (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() > v2.doubleValue() ? 1:0); } public Value greaterThanOrEqualTo (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() >= v2.doubleValue() ? 1:0); } public Value lessThanOrEqualTo (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() <= v2.doubleValue() ? 1:0); } public Value equal (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() == v2.doubleValue() ? 1:0); } public Value notEqual (Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.doubleValue() != v2.doubleValue() ? 1:0); } diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index ce3f505..01e5636 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -94,27 +94,27 @@ public class IntegerUnit } public Value lessThan(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) < 0 ? 1 : 0); } public Value greaterThan(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) > 0 ? 1 : 0); } public Value lessThanOrEqualTo(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) <= 0 ? 1 : 0); } public Value greaterThanOrEqualTo(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) >= 0 ? 1 : 0); } public Value equal(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) == 0 ? 1 : 0); } public Value notEqual(Value v1, Value v2) { - return retType.createValue + return intType.createValue (v1.asBigInteger().compareTo(v2.asBigInteger()) != 0 ? 1 : 0); } diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 30507f5..76b8d04 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -94,14 +94,6 @@ public class TestValue else return false; } - - private boolean isTrue (double d) - { - if (d != 0) - return true; - else - return false; - } public void testIntOps () { @@ -121,18 +113,6 @@ public class TestValue assertEquals ("9 << 4", 9 << 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).shiftRight(v2, v1); assertEquals ("9 >> 4", 9 >> 4, v3.asLong()); - v3 = v1.getType().getALU(v2.getType(), 0).lessThan(v2, v1); - assertEquals ("9 < 4", 9 < 4, isTrue(v3.asLong())); - v3 = v1.getType().getALU(v2.getType(), 0).greaterThan(v2, v1); - assertEquals ("9 > 4", 9 > 4, isTrue(v3.asLong())); - v3 = v1.getType().getALU(v2.getType(), 0).lessThanOrEqualTo(v2, v1); - assertEquals ("9 <= 4", 9 <= 4, isTrue(v3.asLong())); - v3 = v1.getType().getALU(v2.getType(), 0).greaterThanOrEqualTo(v2, v1); - assertEquals ("9 >= 4", 9 >= 4, isTrue(v3.asLong())); - v3 = v1.getType().getALU(v2.getType(), 0).equal(v2, v1); - assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong())); - v3 =v1.getType().getALU(v2.getType(), 0).notEqual(v2, v1); - assertEquals ("9 != 4", 9 != 4, isTrue(v3.asLong())); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseAnd(v2, v1); assertEquals ("9 && 4", 9 & 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseOr(v2, v1); @@ -140,7 +120,20 @@ public class TestValue v3 = v1.getType().getALU(v2.getType(), 0).bitWiseXor(v2, v1); assertEquals ("9 ^ 4", 9 ^ 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseComplement(v1); - assertEquals ("~4", ~4, v3.asLong()); + assertEquals ("~4", ~4, v3.asLong()); + // wordSize required for constructing integer return type. + v3 = v1.getType().getALU(v2.getType(), wordSize).lessThan(v2, v1); + assertEquals ("9 < 4", 9 < 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).greaterThan(v2, v1); + assertEquals ("9 > 4", 9 > 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).lessThanOrEqualTo(v2, v1); + assertEquals ("9 <= 4", 9 <= 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).greaterThanOrEqualTo(v2, v1); + assertEquals ("9 >= 4", 9 >= 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).equal(v2, v1); + assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong())); + v3 =v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1); + assertEquals ("9 != 4", 9 != 4, isTrue(v3.asLong())); v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); assertEquals ("9 && 4", 1, v3.asLong()); v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); @@ -164,7 +157,7 @@ public class TestValue v3 = v1.getType().getALU(v2.getType(), 0).shiftLeftEqual(v3, v1); assertEquals ("v3 <<= 4", 0, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).shiftRightEqual(v3, v1); - assertEquals ("v3 >>= 4", 0, v3.asLong()); + assertEquals ("v3 >>= 4", 0, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseOrEqual(v3, v1); assertEquals ("v3 |= 4", 4, v3.asLong()); v3 = v1.getType().getALU(v2.getType(), 0).bitWiseXorEqual(v3, v1); @@ -186,18 +179,6 @@ public class TestValue assertEquals ("9 * 4", 9 * 4, v3.doubleValue(), 0); v3 = v1.getType().getALU(v2.getType(), 0).mod(v2, v1); assertEquals ("9 % 4", 9 % 4, v3.doubleValue(), 0); - v3 = v1.getType().getALU(v2.getType(), 0).lessThan(v2, v1); - assertEquals ("9 < 4", 9 < 4, isTrue(v3.doubleValue())); - v3 = v1.getType().getALU(v2.getType(), 0).greaterThan(v2, v1); - assertEquals ("9 > 4", 9 > 4, isTrue(v3.doubleValue())); - v3 = v1.getType().getALU(v2.getType(), 0).lessThanOrEqualTo(v2, v1); - assertEquals ("9 <= 4", 9 <= 4, isTrue(v3.doubleValue())); - v3 = v1.getType().getALU(v2.getType(), 0).greaterThanOrEqualTo(v2, v1); - assertEquals ("9 >= 4", 9 >= 4, isTrue(v3.doubleValue())); - v3 = v1.getType().getALU(v2.getType(), 0).equal(v2, v1); - assertEquals ("9 == 4", 9 == 4, isTrue(v3.doubleValue())); - v3 = v1.getType().getALU(v2.getType(), 0).notEqual(v2, v1); - assertEquals ("9 != 4", v2 != v1, isTrue(v3.doubleValue())); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.doubleValue(), 0); v3 = v3.getType().getALU(v1.getType(), 0).plusEqual(v3, v1); @@ -210,7 +191,20 @@ public class TestValue assertEquals ("v3 /= 4", 4, v3.doubleValue(), 0); v3 = v3.getType().getALU(v1.getType(), 0).modEqual(v3, v1); assertEquals ("v3 %= 4", 0, v3.doubleValue(), 0); - // Note: Return type of logical expression is int. + // Note: Return type of relational, logical expression is int. + // wordSize required for constructing integer return type. + v3 = v1.getType().getALU(v2.getType(), wordSize).lessThan(v2, v1); + assertEquals ("9 < 4", 9 < 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).greaterThan(v2, v1); + assertEquals ("9 > 4", 9 > 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).lessThanOrEqualTo(v2, v1); + assertEquals ("9 <= 4", 9 <= 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).greaterThanOrEqualTo(v2, v1); + assertEquals ("9 >= 4", 9 >= 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).equal(v2, v1); + assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong())); + v3 = v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1); + assertEquals ("9 != 4", v2 != v1, isTrue(v3.asLong())); v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); assertEquals ("9 && 4", 1, v3.asLong()); v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 14 22:16:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 14 Nov 2007 22:16:00 -0000 Subject: [SCM] master: Make generated .h files order-only dependent on generated .java files. Message-ID: <20071114221626.1914.qmail@sourceware.org> The branch, master has been updated via 29571987fd50faeb9acb929da80887508c2b3dd3 (commit) from d3ba8c41604b2cf30372d8bb00758b3d4e4596d0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 29571987fd50faeb9acb929da80887508c2b3dd3 Author: Andrew Cagney Date: Wed Nov 14 16:56:02 2007 -0500 Make generated .h files order-only dependent on generated .java files. frysk-common/ChangeLog 2007-11-14 Andrew Cagney * Makefile.rules (built-sources): New. ($(SCRIPT_BUILT)): New. ($(JAVAH_BUILT)): New. ($(ANTLR_BUILT)): New. * Makefile.gen.sh (SCRIPT_BUILT): New. (JAVAH_BUILT): New. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 9 +++++++++ frysk-common/Makefile.gen.sh | 10 ++++++++-- frysk-common/Makefile.rules | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index a9feb80..fe2df45 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,12 @@ +2007-11-14 Andrew Cagney + + * Makefile.rules (built-sources): New. + ($(SCRIPT_BUILT)): New. + ($(JAVAH_BUILT)): New. + ($(ANTLR_BUILT)): New. + * Makefile.gen.sh (SCRIPT_BUILT): New. + (JAVAH_BUILT): New. + 2007-11-13 Jose Flavio Aguilar Paulino * Makefile.rules: Add to CXX includes the directory diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index e8c0d8a..11f71da 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -440,6 +440,7 @@ TestRunner_SOURCES = TestRunner.java CLEANFILES += TestRunner.java ${sources} += ${GEN_SOURCENAME}/JUnitTests.java BUILT_SOURCES += ${GEN_SOURCENAME}/JUnitTests.java +SCRIPT_BUILT += ${GEN_SOURCENAME}/JUnitTests.java TestRunner_LDADD = \${LIBJUNIT} \${GEN_GCJ_LDADD_LIST} TESTS += TestRunner noinst_PROGRAMS += TestRunner @@ -497,6 +498,7 @@ for suffix in .java-in .java-sh .mkenum .shenum ; do name="${d}/${b}${s}" echo "${sources} += ${file}" echo "BUILT_SOURCES += ${name}" + echo "SCRIPT_BUILT += ${name}" case "${suffix}" in .mkenum ) echo "${name}: \$(MKENUM)" ;; esac @@ -529,6 +531,7 @@ for suffix in .cxx .c .hxx .s .S .c-sh .c-in .cxx-sh .cxx-in; do case "${suffix}" in *-in | *-sh) echo "BUILT_SOURCES += ${name}${s}" + echo "SCRIPT_BUILT += ${name}${s}" ;; esac case "${suffix}" in @@ -574,7 +577,10 @@ do ; then case "$c" in # Do not know what includes the header; just build early - h) echo "BUILT_SOURCES += ${h}.h" ;; + h) + echo "BUILT_SOURCES += ${h}.h" + echo "JAVAH_BUILT += ${h}.h" + ;; c) echo "${o}.o: ${h}.h" ;; esac echo "CLEANFILES += ${h}.h" @@ -664,8 +670,8 @@ do do echo "# Dummy dependency, see implicit .g.antlered for generation" echo "$d/$c.java: $d/$b.antlered" - echo "ANTLR_BUILT += $d/$c.java" echo "BUILT_SOURCES += $d/$c.java" + echo "ANTLR_BUILT += $d/$c.java" echo "${sources} += $d/$c.java" done done diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index bc7a68c..949bd0c 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -80,6 +80,8 @@ noinst_LIBRARIES = man_MANS = LDADD = ANTLR_BUILT = +SCRIPT_BUILT = +JAVAH_BUILT = check_SCRIPTS = check_PROGRAMS = @@ -195,6 +197,25 @@ AM_CCASFLAGS = \ $(ZZZ) +# Within the BUILT_SOURCES, need to force some dependencies. For +# instance: JAVAH isn't run until all script-generated files it may +# need to import have been generated. + +# Use GMAKE's order-only prerequisite feature. + +.PHONY: built-sources +built-sources: $(BUILT_SOURCES) +$(ANTLR_BUILT): | $(SCRIPT_BUILT) +$(JAVAH_BUILT): | $(SCRIPT_BUILT) $(ANTLR_BUILT) + +# Ensure all imported .java files have been generated before +# attempting to run JAVAH/GCJH. + +.PHONY: javah-built +BUILT_SOURCES += javah-built +javah-built: script-built antlr-built $(JAVAH_BUILT) + + # Rules for building a .java file from any of a .mkclass file, a # .mkenum file, or a .shenum script. This lets us specify CLASS.java # directly in the BUILT_SOURCES list. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 15 02:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 15 Nov 2007 02:07:00 -0000 Subject: [SCM] master: Run each antlr in a separate directory (fix a parallel make problem). Message-ID: <20071115020727.1211.qmail@sourceware.org> The branch, master has been updated via adb971cd44b8398b4f64cecb699ff2c3be8620aa (commit) from 29571987fd50faeb9acb929da80887508c2b3dd3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit adb971cd44b8398b4f64cecb699ff2c3be8620aa Author: Andrew Cagney Date: Wed Nov 14 21:03:56 2007 -0500 Run each antlr in a separate directory (fix a parallel make problem). frysk-common/ChangeLog 2007-11-14 Andrew Cagney * Makefile.rules (.g.antlred): Rename .g.antlered; use a tmp directory named according to the target. (javah-built): Delete. (ANTLR): Define. * Makefile.gen.sh: Rename .antlered to .antlred. Include *TokenTypes.txt in list of generated files. frysk-core/ChangeLog 2007-11-14 Andrew Cagney * Makefile.am (ANTLR): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 7 + frysk-common/Makefile.gen.sh | 29 +++-- frysk-common/Makefile.rules | 39 +++--- frysk-core/ChangeLog | 4 + frysk-core/Makefile.am | 2 - frysk-core/frysk/expr/CExprAnnotator.g | 238 -------------------------------- frysk-core/frysk/expr/ChangeLog | 4 + 7 files changed, 51 insertions(+), 272 deletions(-) delete mode 100644 frysk-core/frysk/expr/CExprAnnotator.g First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index fe2df45..df27d16 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,12 @@ 2007-11-14 Andrew Cagney + * Makefile.rules (.g.antlred): Rename .g.antlered; use a tmp + directory named according to the target. + (javah-built): Delete. + (ANTLR): Define. + * Makefile.gen.sh: Rename .antlered to .antlred. Include + *TokenTypes.txt in list of generated files. + * Makefile.rules (built-sources): New. ($(SCRIPT_BUILT)): New. ($(JAVAH_BUILT)): New. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index 11f71da..da6b5fc 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -659,20 +659,25 @@ grep -e '\.g$' files.list | while read g do d=`dirname $g` b=`basename $g .g` - echo "CLEANFILES += $d/$b.antlered" + echo "CLEANFILES += $d/$b.antlred" echo "CLEANDIRS += $d/$b.tmp" - IMPORTVOCAB=$(awk -v DIR=$d -F = '/importVocab/ {gsub("Parser;",".antlered",$2);printf "%s/%s ",DIR,$2}' $g) - echo "$d/$b.antlered: $g ${IMPORTVOCAB}" - ( - awk '/class/ { print $2 }' $g - awk '/class .* extends .*Parser/ { print $2"TokenTypes" }' $g - ) | while read c + awk ' +BEGIN { FS = "=" } +/importVocab/ { + gsub(";","",$2) + print "'$d/$b'.antlred: '$d'/" $2 "TokenTypes.txt" +}' $g + awk ' +/class/ { print $2 ".java" } +/class .* extends .*Parser/ { print $2 "TokenTypes.java" } +/class .* extends .*Parser/ { print $2 "TokenTypes.txt" } +' $g | while read c do - echo "# Dummy dependency, see implicit .g.antlered for generation" - echo "$d/$c.java: $d/$b.antlered" - echo "BUILT_SOURCES += $d/$c.java" - echo "ANTLR_BUILT += $d/$c.java" - echo "${sources} += $d/$c.java" + echo "# Dummy dependency, see implicit .g.antlred for generation" + echo "$d/$c: $d/$b.antlred" + echo "BUILT_SOURCES += $d/$c" + echo "ANTLR_BUILT += $d/$c" + echo "${sources} += $d/$c" done done diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 949bd0c..bae9e3d 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -208,13 +208,6 @@ built-sources: $(BUILT_SOURCES) $(ANTLR_BUILT): | $(SCRIPT_BUILT) $(JAVAH_BUILT): | $(SCRIPT_BUILT) $(ANTLR_BUILT) -# Ensure all imported .java files have been generated before -# attempting to run JAVAH/GCJH. - -.PHONY: javah-built -BUILT_SOURCES += javah-built -javah-built: script-built antlr-built $(JAVAH_BUILT) - # Rules for building a .java file from any of a .mkclass file, a # .mkenum file, or a .shenum script. This lets us specify CLASS.java @@ -490,12 +483,19 @@ endif # running the generated files through the compiler and then "fix" the # warnings. Reuse the tmp directory for successive runs on related .g files. -SUFFIXES += .antlered .g -.g.antlered: - mkdir -p $(@D)/antlr.tmp - $(ANTLR) -o $(@D)/antlr.tmp \$(srcdir)/$*.g +ANTLR = $(JAVA) \ + -classpath @abs_builddir@/../frysk-imports/antlr.jar \ + antlr.Tool + +SUFFIXES += .antlred .g +.g.antlred: + mkdir -p $*.tmp + b=`basename $*` ; \ + d=`dirname $*` ; \ + cd $$d ; \ + $(ANTLR) -o $$b.tmp @abs_srcdir@/$*.g @echo "Setting up generated files ..." ; \ - d=$(@D)/antlr.tmp ; for gen in $$d/*.java ; do \ + d=$*.tmp ; for gen in $$d/*.java ; do \ b=`basename $$gen .java` ; \ ( set -x ; mv $$gen $$d/$$b.gen ) ; \ ( set -x ; rm -f $$d/../$$b.java ) ; \ @@ -506,7 +506,7 @@ SUFFIXES += .antlered .g fi ; \ done ; \ done - @edits=true ; d=$(@D)/antlr.tmp ; \ + @edits=true ; d=$*.tmp ; \ while $$edits ; do \ edits=false ; \ echo "Applying fixes ..." ; \ @@ -551,13 +551,12 @@ SUFFIXES += .antlered .g edits=true ; \ done ; \ done || true - @echo Installing .java files ... ; \ - d=$(@D)/antlr.tmp ; for java in $$d/*.java ; do \ - b=`basename $$java` ; \ - ( set -x ; cp $$java $$d/../$$b ) ; \ - done - rm -rf $*.antlered - touch $*.antlered + @echo Installing generated files files ... ; \ + ( cd $*.tmp ; for f in *.java *.txt ; do \ + ( set -x ; cp $$f ../$$f ) ; \ + done ) + rm -rf $*.antlred + touch $*.antlred # Get things building on 64-bit-X-32-bit environment. Mainly need to # remove any attempt to force the compile to 64-bit. diff --git a/frysk-core/ChangeLog b/frysk-core/ChangeLog index cd66969..efddbdf 100644 --- a/frysk-core/ChangeLog +++ b/frysk-core/ChangeLog @@ -1,3 +1,7 @@ +2007-11-14 Andrew Cagney + + * Makefile.am (ANTLR): Delete. + 2007-11-13 Jose Flavio Aguilar Paulino * Makefile.am: Add libunwind-ppc32 to gcj linker dependencies. diff --git a/frysk-core/Makefile.am b/frysk-core/Makefile.am index 59be031..0a68867 100644 --- a/frysk-core/Makefile.am +++ b/frysk-core/Makefile.am @@ -41,8 +41,6 @@ include common/Makefile.rules include Makefile.gen -ANTLR = $(JAVA) -classpath ../frysk-imports/antlr.jar antlr.Tool - GEN_SOURCEPATH += ../frysk-sys/ GEN_SOURCEPATH += $(top_srcdir)/../frysk-sys/ GEN_CLASSPATH += ../frysk-imports/jline.jar diff --git a/frysk-core/frysk/expr/CExprAnnotator.g b/frysk-core/frysk/expr/CExprAnnotator.g deleted file mode 100644 index d217b77..0000000 --- a/frysk-core/frysk/expr/CExprAnnotator.g +++ /dev/null @@ -1,238 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - - -header -{ -// This file is part of the program FRYSK. -// -// Copyright 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - package frysk.expr; - - import java.util.ArrayList; - import frysk.value.ArithmeticType; - import frysk.value.SignedType; - import frysk.value.UnsignedType; - import frysk.value.FloatingPointType; - import frysk.value.Value; - import frysk.value.Variable; - import frysk.expr.ExprSymTab; - import frysk.expr.ExprAST; - import inua.eio.ByteOrder; - import lib.dwfl.BaseTypes; -} - -class CExprAnnotator extends TreeParser; - -options { -// make will convert the import vocab lines into dependencies - importVocab=CExprParser; -// importVocab=CExprEvaluatorParser; - buildAST=true; - ASTLabelType = "ExprAST"; -} - -{ - ArrayList refList; - private ExprSymTab exprSymTab; - public CExprAnnotator(ExprSymTab symTab) { - exprSymTab = symTab; - } -} - - -primitiveType - : "boolean" - | "char" - | "byte" - | "short" - | "int" - | "long" - | "float" - | "double" - ; - -identifier - : ident:IDENT {ident.getText();} ; - -expr - : #(PLUS expr expr) { - } - | ( #(MINUS expr expr) )=> #(MINUS expr expr) { - } - | #(MINUS expr ) { - } - | ( #(STAR expr expr) )=> #(STAR expr expr) { - } - | #(MEMORY expr) { - } - | #(DIVIDE expr expr) { - } - | #(MOD expr expr) { - } - | #(SHIFTLEFT expr expr) { - } - | #(SHIFTRIGHT expr expr) { - } - | #(LESSTHAN expr expr) { - } - | #(GREATERTHAN expr expr) { - } - | #(LESSTHANOREQUALTO expr expr) { - } - | #(GREATERTHANOREQUALTO expr expr) { - } - | #(NOTEQUAL expr expr) { - } - | #(EQUAL expr expr) { - } - | ( #(AMPERSAND expr expr) )=>#(AMPERSAND expr expr) { - } - | #(ADDRESS_OF expr ) { - } - | #(BITWISEXOR expr expr) { - } - | #(BITWISEOR expr expr) { - } - | #(AND expr expr) { - } - | #(OR expr expr) { - } - | #(NOT expr) { - } - | #(TILDE expr) { - } - | #(COND_EXPR expr expr expr) { - } - | o:OCTALINT { - } - | i:DECIMALINT { - } - | h:HEXADECIMALINT { - } - | f:FLOAT { - } - | d:DOUBLE { - } - | #(ASSIGNEQUAL expr expr) { - } - | #(TIMESEQUAL expr expr) { - } - | #(DIVIDEEQUAL expr expr) { - } - | #(MINUSEQUAL expr expr) { - } - | #(PLUSEQUAL expr expr) { - } - | #(MODEQUAL expr expr) { - } - | #(SHIFTLEFTEQUAL expr expr) { - } - | #(SHIFTRIGHTEQUAL expr expr) { - } - | #(BITWISEANDEQUAL expr expr) { - } - | #(BITWISEXOREQUAL expr expr) { - } - | #(BITWISEOREQUAL expr expr) { - } - | #(CAST pt:primitiveType expr) { - if(pt.getText().compareTo("long") == 0) { - } - else if(pt.getText().compareTo("int") == 0) { - } - else if(pt.getText().compareTo("short") == 0) { - } - else if(pt.getText().compareTo("double") == 0) { - } - else if(pt.getText().compareTo("float") == 0) { - } - } - | #(EXPR_LIST expr) { - } - | #(FUNC_CALL expr expr) { - } - | #(MEMBER expr identifier) { - } - | ident:IDENT { - Variable var; - var = (Variable)exprSymTab.getVariable(ident.getText()); - ident.exprType = exprSymTab.getType(var); - } - | tident:TAB_IDENT { - Variable var; - var = (Variable)exprSymTab.getVariable(tident.getText()); - tident.exprType = exprSymTab.getType(var); - } - ; diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index f4519d1..2e0f515 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,7 @@ +2007-11-14 Andrew Cagney + + * CExprAnnotator.g: Delete. + 2007-11-14 Teresa Thomas * CExprEvaluator.g: Give task memory to hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 15 15:30:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 15 Nov 2007 15:30:00 -0000 Subject: [SCM] master: Use DaemonBlockedAtSignal in test. Message-ID: <20071115153008.6223.qmail@sourceware.org> The branch, master has been updated via efc98011cc2d005c62da7050c720e037a9c22944 (commit) from adb971cd44b8398b4f64cecb699ff2c3be8620aa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit efc98011cc2d005c62da7050c720e037a9c22944 Author: Phil Muldoon Date: Thu Nov 15 15:29:59 2007 +0000 Use DaemonBlockedAtSignal in test. 2007-11-15 pmuldoon * TestLinuxCore.java (testLinuxCoreFileStackTrace): Use DaemonBlockedAtSignal. Create live map first, then core. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 5 +++++ frysk-core/frysk/proc/dead/TestLinuxCore.java | 22 ++++++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 620bb64..617b310 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-15 pmuldoon + + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Use DaemonBlockedAtSignal. + Create live map first, then core. + 2007-11-08 Phil Muldoon * LinuxHost.java (LinuxHost): Check for null Elf Header diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index c099f00..ec376cf 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -51,6 +51,7 @@ import frysk.proc.Task; import frysk.proc.Proc; import frysk.proc.Host; import frysk.proc.Auxv; +import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.TestLib; import frysk.proc.ProcId; import frysk.proc.Manager; @@ -136,14 +137,11 @@ public class TestLinuxCore public void testLinuxCoreFileStackTrace () { - Proc ackProc = giveMeAProc(); - String coreFileName = constructCore(ackProc); - File xtestCore = new File(coreFileName); - - Host lcoreHost = new LinuxHost(Manager.eventLoop, - xtestCore); - - Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); + + final Proc ackProc; // = giveMeAProc(); + + File exeFile = Config.getPkgLibFile("funit-stacks"); + ackProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); StacktraceAction stacker; @@ -162,6 +160,14 @@ public class TestLinuxCore new ProcBlockAction (ackProc, stacker); assertRunUntilStop("perform backtrace"); + String coreFileName = constructCore(ackProc); + File xtestCore = new File(coreFileName); + + Host lcoreHost = new LinuxHost(Manager.eventLoop, + xtestCore); + + Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); + StringWriter stringWriter2 = new StringWriter(); coreStack = new StacktraceAction(new PrintWriter(stringWriter2),coreProc, new PrintEvent(),true,false,false,false,false, false) { hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Thu Nov 15 16:18:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Thu, 15 Nov 2007 16:18:00 -0000 Subject: [SCM] master: Test case for 5331. Message-ID: <20071115161844.1974.qmail@sourceware.org> The branch, master has been updated via 5f6f1885590d461c102fe24fee06a4917398a21c (commit) from efc98011cc2d005c62da7050c720e037a9c22944 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5f6f1885590d461c102fe24fee06a4917398a21c Author: Petr Machata Date: Thu Nov 15 16:45:18 2007 +0100 Test case for 5331. * When the task observed by a codeObserver forks, its child dies due to a SIGTRAP. * funit-fib-fork.c: if the child dies with a signal, it now kills itself with the same signal. * funit-fib-fork.c: added dummy breakpoint_me function to place a breakpoint to. (Main wouldn't work (probably), thread of execution has to hit the breakpoint.) * Fix of my later ftrace changelog. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 16 ++++++---- frysk-core/frysk/pkglibdir/ChangeLog | 6 ++++ frysk-core/frysk/pkglibdir/funit-fib-fork.c | 12 +++++++ frysk-core/frysk/proc/ChangeLog | 4 ++ frysk-core/frysk/proc/TestTaskObserverCode.java | 37 +++++++++++++++++++++++ 5 files changed, 69 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index f369a79..def9b9b 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,5 +1,9 @@ 2007-11-14 Petr Machata + * ChangeLog: remove paths from my previous entry + +2007-11-14 Petr Machata + * TestLtrace.java (testAllLibrariesGetDetected): No longer unresolvedx8664. (testCallRecorded): Ditto. @@ -7,12 +11,12 @@ 2007-11-14 Petr Machata - * frysk-core/frysk/ftrace/Symbol.java (offset): New field. - * frysk-core/frysk/ftrace/TracePoint.java (offset): New field. - * frysk-core/frysk/ftrace/ObjectFile.java: Support `offset'. - * frysk-core/frysk/ftrace/MemoryMapping.java: Rewritten. - * frysk-core/frysk/ftrace/MappingGuard.java: Adapted to above. - * frysk-core/frysk/ftrace/Ltrace.java: Adapted to above. + * Symbol.java (offset): New field. + * TracePoint.java (offset): New field. + * ObjectFile.java: Support `offset'. + * MemoryMapping.java: Rewritten. + * MappingGuard.java: Adapted to above. + * Ltrace.java: Adapted to above. 2007-11-13 Sami Wagiaalla diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index ea6107a..4371841 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,9 @@ +2007-11-15 Petr Machata + + * funit-fib-fork.c: When a child dies on signal, kills itself with + that same signal. + (breakpoint_me) New dummy function. + 2007-11-13 Teresa Thomas * funit-addresses.c (ptr): New. diff --git a/frysk-core/frysk/pkglibdir/funit-fib-fork.c b/frysk-core/frysk/pkglibdir/funit-fib-fork.c index 4fbfd53..d64138e 100644 --- a/frysk-core/frysk/pkglibdir/funit-fib-fork.c +++ b/frysk-core/frysk/pkglibdir/funit-fib-fork.c @@ -45,6 +45,11 @@ #include #include +void +breakpoint_me(void) +{ +} + int main (int argc, char *argv[], char *envp[]) { @@ -66,6 +71,7 @@ main (int argc, char *argv[], char *envp[]) n = want; compute_fib_n: /* Children jump back here with an updated N. */ + breakpoint_me(); switch (n) { case 0: @@ -113,6 +119,12 @@ main (int argc, char *argv[], char *envp[]) { printf ("waitpid (%ld) got non exit staus 0x%x\n", (long) child[i], status); + if (WIFSIGNALED(status)) + { + printf("waitpid (%ld) got signal %d\n", + (long) child[i], WTERMSIG(status)); + kill(getpid(), WTERMSIG(status)); + } exit (1); } result += WEXITSTATUS (status); diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 8d9b128..b0238b2 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2007-11-15 Petr Machata + + * TestTaskObserverCode.java (testCodeOverFork): New test. + 2007-11-09 Andrew Cagney * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Don't add "nip", diff --git a/frysk-core/frysk/proc/TestTaskObserverCode.java b/frysk-core/frysk/proc/TestTaskObserverCode.java index 92141b1..3f887cf 100644 --- a/frysk-core/frysk/proc/TestTaskObserverCode.java +++ b/frysk-core/frysk/proc/TestTaskObserverCode.java @@ -47,6 +47,7 @@ import lib.dwfl.*; import java.util.*; import frysk.testbed.TestLib; +import frysk.testbed.DaemonBlockedAtEntry; public class TestTaskObserverCode extends TestLib { @@ -861,6 +862,42 @@ public class TestTaskObserverCode extends TestLib assertFalse("unblocked unhit 2", code2.hit); } + // Tests whether a task with breakpoint gets killed by a SIGTRAP + // after the fork. + public void testCodeOverFork() throws Exception + { + if (unresolved(5331)) + return; + + String[] argv = {getExecPath ("funit-fib-fork"), "2"}; + child = null; + DaemonBlockedAtEntry child = new DaemonBlockedAtEntry(argv); + task = child.getMainTask(); + proc = task.getProc(); + int pid = proc.getPid(); + + long address1 = getFunctionEntryAddress("breakpoint_me"); + CodeObserver code1 = new CodeObserver(task, address1); + code1.block = false; + TerminatingObserver terminatingObserver = new TerminatingObserver(); + task.requestAddCodeObserver(code1, address1); + assertRunUntilStop("add breakpoint observer"); + task.requestAddTerminatingObserver(terminatingObserver); + assertRunUntilStop("add terminating observer"); + + new StopEventLoopWhenProcRemoved(pid); + child.requestRemoveBlock(); + assertRunUntilStop("run \"fork\" until exit"); + assertTrue("breakpoint hit", code1.hit); + assertTrue("termination was noticed", terminatingObserver.task != null); + + // The logic here is that when one of the forked processes dies + // due to a signal, parent task notices that and kills itself with + // that same signal. + assertTrue("task didn't die on signal", !terminatingObserver.signal); + assertEquals("task exit status", 0, terminatingObserver.value); + } + // Tells the child to run the dummy () function // which calls bp1_func () and bp2_func (). static final Sig dummySig = Sig.PROF; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 15 17:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 15 Nov 2007 17:06:00 -0000 Subject: [SCM] master: Delete frysk.expr.ExprAST. Message-ID: <20071115170644.22672.qmail@sourceware.org> The branch, master has been updated via baac24889bed4fb5c319c5f3db25d0ebf5f5f47f (commit) from 5f6f1885590d461c102fe24fee06a4917398a21c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit baac24889bed4fb5c319c5f3db25d0ebf5f5f47f Author: Andrew Cagney Date: Thu Nov 15 11:50:13 2007 -0500 Delete frysk.expr.ExprAST. frysk-core/frysk/debuginfo/ChangeLog 2007-11-15 Andrew Cagney * DebugInfo.java: Use AST not ExprAST. frysk-core/frysk/expr/ChangeLog 2007-11-15 Andrew Cagney * CExpr.g (options): Delete ASTLabelType. * CExprEvaluator.g (options): Ditto. * ExprAST.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ frysk-core/frysk/debuginfo/DebugInfo.java | 10 +++------- frysk-core/frysk/expr/CExpr.g | 3 +-- frysk-core/frysk/expr/CExprEvaluator.g | 2 -- frysk-core/frysk/expr/ChangeLog | 6 ++++++ frysk-core/frysk/expr/ExprAST.java | 21 --------------------- 6 files changed, 14 insertions(+), 32 deletions(-) delete mode 100644 frysk-core/frysk/expr/ExprAST.java First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 9f1cd01..425f352 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-15 Andrew Cagney + + * DebugInfo.java: Use AST not ExprAST. + 2007-11-12 Andrew Cagney * DebugInfoStackFactory.java (printStackTrace): Handle -ve diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index 6768379..34304af 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -38,11 +38,10 @@ // exception. package frysk.debuginfo; -import antlr.CommonAST; +import antlr.collections.AST; import frysk.dwfl.DwflCache; import frysk.expr.CExprLexer; import frysk.expr.CExprParser; -import frysk.expr.ExprAST; import frysk.expr.ExprSymTab; import frysk.expr.CExprEvaluator; import frysk.proc.Proc; @@ -104,7 +103,6 @@ public class DebugInfo { sInput += (char)3; CExprLexer lexer = new CExprLexer(new StringReader(sInput)); CExprParser parser = new CExprParser(lexer); - parser.setASTNodeClass("frysk.expr.ExprAST"); try { parser.start(); } catch (antlr.RecognitionException ignore) { @@ -218,7 +216,6 @@ public class DebugInfo { CExprLexer lexer = new CExprLexer(new StringReader(sInput)); CExprParser parser = new CExprParser(lexer); - parser.setASTNodeClass("frysk.expr.ExprAST"); try { parser.start(); } catch (antlr.RecognitionException r) { @@ -229,7 +226,7 @@ public class DebugInfo { throw new RuntimeException(t); } - ExprAST exprAST = (ExprAST) parser.getAST(); + AST exprAST = parser.getAST(); if (dumpTree) System.out.println("parse tree: " + exprAST.toStringTree()); CExprEvaluator cExprEvaluator; @@ -264,7 +261,6 @@ public class DebugInfo { CExprLexer lexer = new CExprLexer(new StringReader(sInput)); CExprParser parser = new CExprParser(lexer); - parser.setASTNodeClass("frysk.expr.ExprAST"); try { parser.start(); } catch (antlr.RecognitionException r) { @@ -273,7 +269,7 @@ public class DebugInfo { throw new RuntimeException(t); } - CommonAST t = (CommonAST) parser.getAST(); + AST t = parser.getAST(); if (dump_tree) // Print the resulting tree out in LISP notation System.out.println("parse tree: " + t.toStringTree()); diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index cad2c4f..8d7b373 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -86,7 +86,6 @@ class CExprParser extends Parser; options { defaultErrorHandler=false; buildAST=true; - ASTLabelType = "ExprAST"; k=2; } @@ -314,7 +313,7 @@ cast_expression! ; postfix_expression! - { ExprAST astPostExpr = null; + { AST astPostExpr = null; } :( sc_expr: scope_expression { astPostExpr = #sc_expr; diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 2fb26a7..a4f9403 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -87,7 +87,6 @@ header import frysk.value.FloatingPointType; import frysk.value.Value; import frysk.expr.ExprSymTab; - import frysk.expr.ExprAST; import inua.eio.ByteOrder; import lib.dwfl.BaseTypes; } @@ -96,7 +95,6 @@ class CExprEvaluator extends TreeParser; options { importVocab=CExprParser; - ASTLabelType = "ExprAST"; } { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 2e0f515..c877379 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,9 @@ +2007-11-15 Andrew Cagney + + * CExpr.g (options): Delete ASTLabelType. + * CExprEvaluator.g (options): Ditto. + * ExprAST.java: Delete. + 2007-11-14 Andrew Cagney * CExprAnnotator.g: Delete. diff --git a/frysk-core/frysk/expr/ExprAST.java b/frysk-core/frysk/expr/ExprAST.java deleted file mode 100644 index 034654d..0000000 --- a/frysk-core/frysk/expr/ExprAST.java +++ /dev/null @@ -1,21 +0,0 @@ -package frysk.expr; - -import antlr.CommonAST; - -import frysk.value.Type; - -public class ExprAST extends CommonAST { - Type exprType; - static final long serialVersionUID = 0; - - public ExprAST() { - } - -public Type getExprType() { - return exprType; -} - -public void setExprType(Type exprType) { - this.exprType = exprType; -} -} hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 15 17:15:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 15 Nov 2007 17:15:00 -0000 Subject: [SCM] master: Mark testListPC and testListFunction as unresolved. Message-ID: <20071115171541.939.qmail@sourceware.org> The branch, master has been updated via 8dfc3ba44a89e553cb877c46f8c0552fc9ec171b (commit) from baac24889bed4fb5c319c5f3db25d0ebf5f5f47f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8dfc3ba44a89e553cb877c46f8c0552fc9ec171b Author: Andrew Cagney Date: Thu Nov 15 12:13:59 2007 -0500 Mark testListPC and testListFunction as unresolved. frysk-core/frysk/hpd/ChangeLog 2007-11-15 Andrew Cagney * TestListCommand.java (testListPC()): Mark as unresolved, 5332. (testListFunction()): Mark as unresolved, 5333. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/TestListCommand.java | 4 ++++ 2 files changed, 9 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 5b8d78f..1e83b85 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-15 Andrew Cagney + + * TestListCommand.java (testListPC()): Mark as unresolved, 5332. + (testListFunction()): Mark as unresolved, 5333. + 2007-11-14 Andrew Cagney * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. diff --git a/frysk-core/frysk/hpd/TestListCommand.java b/frysk-core/frysk/hpd/TestListCommand.java index 48c6144..1c67c53 100644 --- a/frysk-core/frysk/hpd/TestListCommand.java +++ b/frysk-core/frysk/hpd/TestListCommand.java @@ -51,6 +51,8 @@ public class TestListCommand extends TestLib { } public void testListPC() { + if (unresolved(5332)) + return; e = HpdTestbed.run("hpd-c"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); @@ -66,6 +68,8 @@ public class TestListCommand extends TestLib { } public void testListFunction() { + if (unresolved(5333)) + return; e = HpdTestbed.run("hpd-c"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 15 18:56:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 15 Nov 2007 18:56:00 -0000 Subject: [SCM] master: swagiaal: Created and used DwAttributeNotFoundException Message-ID: <20071115185647.24561.qmail@sourceware.org> The branch, master has been updated via 690290c4dde512010e498ddc45360a12f78324e7 (commit) from 8dfc3ba44a89e553cb877c46f8c0552fc9ec171b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 690290c4dde512010e498ddc45360a12f78324e7 Author: Sami Wagiaalla Date: Thu Nov 15 12:47:05 2007 -0500 swagiaal: Created and used DwAttributeNotFoundException frysk-core/frysk/debuginfo/ChangeLog +2007-11-15 Sami Wagiaalla + + DwarfDie::getDataMemberLocation now throws DwAttributeNotFoundException + instead of DwException. + * TypeEntry.java (getUnionType): Updated. + frysk-sys/lib/dwfl/ChangeLog +2007-11-15 Sami Wagiaalla + + * DwAttributeNotFoundException.java: New file. + * cni/DwAttributeNotFoundException.cxx: New file. + * cni/DwarfDie.cxx: Now throws DwAttributeNotFoundException + instead of DwException. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 +++++ frysk-core/frysk/debuginfo/TypeEntry.java | 24 ++++++++++--------- frysk-sys/lib/dwfl/ChangeLog | 7 +++++ .../lib/dwfl/DwAttributeNotFoundException.java | 15 ++++++++++-- .../DwAttributeNotFoundException.cxx} | 9 ++----- frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 3 +- 6 files changed, 43 insertions(+), 21 deletions(-) copy frysk-core/frysk/debuginfo/ValueUavailableException.java => frysk-sys/lib/dwfl/DwAttributeNotFoundException.java (87%) copy frysk-sys/lib/dwfl/{DwflDieBias.java => cni/DwAttributeNotFoundException.cxx} (96%) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 425f352..92762d1 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +007-11-15 Sami Wagiaalla + + DwarfDie::getDataMemberLocation now throws DwAttributeNotFoundException + instead of DwException. + * TypeEntry.java (getUnionType): Updated. + 2007-11-15 Andrew Cagney * DebugInfo.java: Use AST not ExprAST. diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 0d636bd..5ba8c9a 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -39,20 +39,14 @@ package frysk.debuginfo; -import java.util.ArrayList; -import java.util.HashMap; -import lib.dwfl.BaseTypes; -import lib.dwfl.DwException; -import lib.dwfl.DwarfDie; -import lib.dwfl.DwTag; -import lib.dwfl.DwAt; import frysk.isa.ISA; +import frysk.value.Access; import frysk.value.ArrayType; import frysk.value.CharType; -import frysk.value.GccStructOrClassType; import frysk.value.ConstType; import frysk.value.EnumType; import frysk.value.FunctionType; +import frysk.value.GccStructOrClassType; import frysk.value.PointerType; import frysk.value.SignedType; import frysk.value.StandardTypes; @@ -65,8 +59,16 @@ import frysk.value.Value; import frysk.value.VoidType; import frysk.value.VolatileType; import inua.eio.ByteOrder; -import frysk.value.Access; + +import java.util.ArrayList; +import java.util.HashMap; + +import lib.dwfl.BaseTypes; import lib.dwfl.DwAccess; +import lib.dwfl.DwAt; +import lib.dwfl.DwAttributeNotFoundException; +import lib.dwfl.DwTag; +import lib.dwfl.DwarfDie; public class TypeEntry { @@ -132,7 +134,7 @@ public class TypeEntry long offset; try { offset = member.getDataMemberLocation(); - } catch (DwException de) { + } catch (DwAttributeNotFoundException de) { offset = 0; // union } @@ -189,7 +191,7 @@ public class TypeEntry long offset; try { offset = member.getDataMemberLocation(); - } catch (DwException de) { + } catch (DwAttributeNotFoundException de) { offset = 0; // union } diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 6f5a4d9..010d55b 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,10 @@ +2007-11-15 Sami Wagiaalla + + * DwAttributeNotFoundException.java: New file. + * cni/DwAttributeNotFoundException.cxx: New file. + * cni/DwarfDie.cxx: Now throws DwAttributeNotFoundException + instead of DwException. + 2007-11-06 Sami Wagiaalla * Dwfl.java: Renamed getDie to getCompilationUnit. diff --git a/frysk-core/frysk/debuginfo/ValueUavailableException.java b/frysk-sys/lib/dwfl/DwAttributeNotFoundException.java similarity index 87% copy from frysk-core/frysk/debuginfo/ValueUavailableException.java copy to frysk-sys/lib/dwfl/DwAttributeNotFoundException.java index 3b73bee..86d03e5 100644 --- a/frysk-core/frysk/debuginfo/ValueUavailableException.java +++ b/frysk-sys/lib/dwfl/DwAttributeNotFoundException.java @@ -37,13 +37,22 @@ // version and license this file solely under the GPL without // exception. -package frysk.debuginfo; +package lib.dwfl; -public class ValueUavailableException extends RuntimeException { +public class DwAttributeNotFoundException extends DwarfException{ + + public DwAttributeNotFoundException(DwAt attribute) { + super("Attribute " + attribute + " not found"); + } + + public static void throwDwException(int attribute) + { + throw new DwAttributeNotFoundException(DwAt.valueOf(attribute)); + } /** * */ private static final long serialVersionUID = 1L; - + } diff --git a/frysk-sys/lib/dwfl/DwflDieBias.java b/frysk-sys/lib/dwfl/cni/DwAttributeNotFoundException.cxx similarity index 96% copy from frysk-sys/lib/dwfl/DwflDieBias.java copy to frysk-sys/lib/dwfl/cni/DwAttributeNotFoundException.cxx index fb3bcda..8fee74b 100644 --- a/frysk-sys/lib/dwfl/DwflDieBias.java +++ b/frysk-sys/lib/dwfl/cni/DwAttributeNotFoundException.cxx @@ -37,11 +37,8 @@ // version and license this file solely under the GPL without // exception. -package lib.dwfl; +#include -public class DwflDieBias -{ - public DwarfDie die; +#include - public long bias; -} +#include "lib/dwfl/DwAttributeNotFoundException.h" diff --git a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx index 49f7574..af9ab88 100644 --- a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx +++ b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx @@ -50,6 +50,7 @@ #include "lib/dwfl/BaseTypes.h" #include "lib/dwfl/DwarfDieFactory.h" #include "lib/dwfl/DwarfException.h" +#include "lib/dwfl/DwAttributeNotFoundException.h" #include "lib/dwfl/DwException.h" @@ -547,7 +548,7 @@ lib::dwfl::DwarfDie::get_data_member_location (jlong var_die) if (fb_len > 0 && fb_expr[0].atom == DW_OP_plus_uconst) return fb_expr[0].number; } - lib::dwfl::DwException::throwDwException(); + lib::dwfl::DwAttributeNotFoundException::throwDwException((jint)DW_AT_data_member_location); return 0; } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 15 21:54:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 15 Nov 2007 21:54:00 -0000 Subject: [SCM] master: Simplify logical expressions. Message-ID: <20071115215446.6743.qmail@sourceware.org> The branch, master has been updated via b88be9142254b4b1c5d5cd094137f52861ad9432 (commit) from 690290c4dde512010e498ddc45360a12f78324e7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b88be9142254b4b1c5d5cd094137f52861ad9432 Author: Teresa Thomas Date: Thu Nov 15 16:50:28 2007 -0500 Simplify logical expressions. frysk-core/frysk/value/ChangeLog 2007-11-15 Teresa Thomas * ArithmeticUnit.java (getLogicalValue): Delete argument mem, define here. (logicalNegation): Update. (logicalOr): Update. (logicalAnd): Update. * AddressUnit.java (getLogicalValue): Delete. * FloatingPointUnit.java (getLogicalValue): Delete. * IntegerUnit.java (getLogicalValue): Delete. * TestValue.java: Update. frysk-core/frysk/expr/ChangeLog 2007-11-15 Teresa Thomas * CExprEvaluator.g: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 8 +++--- frysk-core/frysk/expr/ChangeLog | 6 ++++- frysk-core/frysk/value/AddressUnit.java | 7 +---- frysk-core/frysk/value/ArithmeticUnit.java | 33 +++++++++++------------- frysk-core/frysk/value/ChangeLog | 12 +++++++++ frysk-core/frysk/value/FloatingPointUnit.java | 8 +----- frysk-core/frysk/value/IntegerUnit.java | 8 ------ frysk-core/frysk/value/TestValue.java | 24 +++++++---------- 8 files changed, 48 insertions(+), 58 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index a4f9403..5de32c6 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -255,16 +255,16 @@ expr returns [Value returnVar=null] } | #(AND v1=expr v2=expr) { returnVar = v1.getType().getALU(exprSymTab.getWordSize()) - .logicalAnd(v1, v2, exprSymTab.taskMemory()); + .logicalAnd(v1, v2); } | #(OR v1=expr v2=expr) { returnVar = v1.getType().getALU(exprSymTab.getWordSize()) - .logicalOr(v1, v2,exprSymTab.taskMemory()); + .logicalOr(v1, v2); } | #(NOT v1=expr) { // byte buffer needed for Pointer/Address types returnVar = v1.getType().getALU(exprSymTab.getWordSize()) - .logicalNegation(v1, exprSymTab.taskMemory()); + .logicalNegation(v1); } | #(TILDE v1=expr) { returnVar = v1.getType().getALU(exprSymTab.getWordSize()) @@ -273,7 +273,7 @@ expr returns [Value returnVar=null] | #(COND_EXPR log_expr=expr v1=expr v2=expr) { returnVar = ((log_expr.getType().getALU(log_expr.getType(), exprSymTab.getWordSize()) - .getLogicalValue(log_expr, exprSymTab.taskMemory())) + .getLogicalValue(log_expr)) ? v1 : v2); } | o:OCTALINT { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index c877379..8dc8423 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,9 +1,13 @@ +2007-11-15 Teresa Thomas + + * CExprEvaluator.g: Update. + 2007-11-15 Andrew Cagney * CExpr.g (options): Delete ASTLabelType. * CExprEvaluator.g (options): Ditto. * ExprAST.java: Delete. - + 2007-11-14 Andrew Cagney * CExprAnnotator.g: Delete. diff --git a/frysk-core/frysk/value/AddressUnit.java b/frysk-core/frysk/value/AddressUnit.java index 32b7503..094b589 100644 --- a/frysk-core/frysk/value/AddressUnit.java +++ b/frysk-core/frysk/value/AddressUnit.java @@ -40,7 +40,6 @@ package frysk.value; import inua.eio.ByteOrder; -import inua.eio.ByteBuffer; /** * Operation handling for pointers and addresses. @@ -120,9 +119,5 @@ extends ArithmeticUnit Location l = new ScratchLocation (v2.asBigInteger().negate().toByteArray()); Value v2Neg = new Value (v2.getType(), l); return add (v1, v2Neg); - } - - public boolean getLogicalValue (Value v1, ByteBuffer mem) { - return (v1.toPrint(Format.NATURAL, mem).equals("0x0")? false:true); - } + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/ArithmeticUnit.java b/frysk-core/frysk/value/ArithmeticUnit.java index 5280224..897fd9a 100644 --- a/frysk-core/frysk/value/ArithmeticUnit.java +++ b/frysk-core/frysk/value/ArithmeticUnit.java @@ -39,8 +39,9 @@ package frysk.value; +import java.math.BigInteger; + import inua.eio.ByteOrder; -import inua.eio.ByteBuffer; /** * Arithmetic and Logical Operation handling @@ -144,24 +145,20 @@ public abstract class ArithmeticUnit } // Logical expressions - valid for any scalar types. - public Value logicalAnd (Value v1, Value v2, ByteBuffer mem) { - boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); - boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); - return intType.createValue( (op1 && op2) ? 1:0); - } - public Value logicalOr (Value v1, Value v2, ByteBuffer mem) { - boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); - boolean op2 = v2.getType().getALU(wordSize).getLogicalValue(v2, mem); - return intType.createValue( op1 || op2 ? 1:0); - } - public Value logicalNegation(Value v1, ByteBuffer mem) { - boolean op1 = v1.getType().getALU(wordSize).getLogicalValue(v1, mem); - return intType.createValue( op1 ? 0:1); + public Value logicalAnd (Value v1, Value v2) { + return intType.createValue( + (getLogicalValue(v1) && getLogicalValue(v2)) ? 1:0); + } + public Value logicalOr (Value v1, Value v2) { + return intType.createValue( + (getLogicalValue(v1) || getLogicalValue(v2)) ? 1:0); + } + public Value logicalNegation(Value v1) { + return intType.createValue( getLogicalValue(v1) ? 0:1); } - public boolean getLogicalValue (Value v1, ByteBuffer mem) { - throw new InvalidOperatorException - (v1.getType(), "getLogicalValue"); - } + public boolean getLogicalValue (Value v1) { + return (!(v1.asBigInteger().compareTo(BigInteger.ZERO) == 0)); + } // Assigment expressions. public Value plusEqual(Value v1, Value v2) { diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 9e7aed0..9265646 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,15 @@ +2007-11-15 Teresa Thomas + + * ArithmeticUnit.java (getLogicalValue): Delete + argument mem, define here. + (logicalNegation): Update. + (logicalOr): Update. + (logicalAnd): Update. + * AddressUnit.java (getLogicalValue): Delete. + * FloatingPointUnit.java (getLogicalValue): Delete. + * IntegerUnit.java (getLogicalValue): Delete. + * TestValue.java: Update. + 2007-11-14 Teresa Thomas * FloatingPointUnit.java: Use intType for relational diff --git a/frysk-core/frysk/value/FloatingPointUnit.java b/frysk-core/frysk/value/FloatingPointUnit.java index fcaee8f..01cfb41 100644 --- a/frysk-core/frysk/value/FloatingPointUnit.java +++ b/frysk-core/frysk/value/FloatingPointUnit.java @@ -39,8 +39,6 @@ package frysk.value; -import inua.eio.ByteBuffer; - /** * Arithmetic and logical operation handling * for floating points. @@ -103,9 +101,5 @@ public class FloatingPointUnit public Value notEqual (Value v1, Value v2) { return intType.createValue (v1.doubleValue() != v2.doubleValue() ? 1:0); - } - - public boolean getLogicalValue (Value v1, ByteBuffer mem) { - return ((v1.doubleValue() == 0.0) ? false : true); - } + } } \ No newline at end of file diff --git a/frysk-core/frysk/value/IntegerUnit.java b/frysk-core/frysk/value/IntegerUnit.java index 01e5636..73f2d2d 100644 --- a/frysk-core/frysk/value/IntegerUnit.java +++ b/frysk-core/frysk/value/IntegerUnit.java @@ -39,9 +39,6 @@ package frysk.value; -import java.math.BigInteger; -import inua.eio.ByteBuffer; - /** * Arithmetic and logical Operation handling * for integers. All arithmetic done using @@ -134,9 +131,4 @@ public class IntegerUnit return retType.createValue (v1.asBigInteger().not()); } - - public boolean getLogicalValue (Value v1, ByteBuffer mem) { - return ((v1.asBigInteger().compareTo(BigInteger.ZERO) == 0) - ? false : true); - } } \ No newline at end of file diff --git a/frysk-core/frysk/value/TestValue.java b/frysk-core/frysk/value/TestValue.java index 76b8d04..b7391af 100644 --- a/frysk-core/frysk/value/TestValue.java +++ b/frysk-core/frysk/value/TestValue.java @@ -39,7 +39,6 @@ package frysk.value; -import inua.eio.ArrayByteBuffer; import inua.eio.ByteOrder; import frysk.Config; import frysk.junit.TestCase; @@ -134,13 +133,13 @@ public class TestValue assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong())); v3 =v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1); assertEquals ("9 != 4", 9 != 4, isTrue(v3.asLong())); - v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); + v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1); assertEquals ("9 && 4", 1, v3.asLong()); - v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); + v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1); assertEquals ("9 || 4", 1, v3.asLong()); - v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null); + v3 = v1.getType().getALU(wordSize).logicalNegation(v1); assertEquals ("!4", 0, v3.asLong()); - bool = v2.getType().getALU(wordSize).getLogicalValue(v2, null); + bool = v2.getType().getALU(wordSize).getLogicalValue(v2); assertEquals ("bool(9)", true, bool); v3 = v3.assign(v1); assertEquals ("v3 = 4", 4, v3.asLong()); @@ -205,19 +204,16 @@ public class TestValue assertEquals ("9 == 4", 9 == 4, isTrue(v3.asLong())); v3 = v1.getType().getALU(v2.getType(), wordSize).notEqual(v2, v1); assertEquals ("9 != 4", v2 != v1, isTrue(v3.asLong())); - v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1, null); + v3 = v1.getType().getALU(wordSize).logicalAnd(v2, v1); assertEquals ("9 && 4", 1, v3.asLong()); - v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1, null); + v3 = v1.getType().getALU(wordSize).logicalOr(v2, v1); assertEquals ("9 || 4", 1, v3.asLong()); - v3 = v1.getType().getALU(wordSize).logicalNegation(v1, null); + v3 = v1.getType().getALU(wordSize).logicalNegation(v1); assertEquals ("!4", 0, v3.asLong()); } public void testAddressOps() { - // Construct a buffer with a string in it. - ArrayByteBuffer memory - = new ArrayByteBuffer("0123Hello World\0>>>".getBytes()); Type t = new PointerType("xxx", ByteOrder.BIG_ENDIAN, 1, new CharType("char", ByteOrder.BIG_ENDIAN, 1, true)); @@ -226,11 +222,11 @@ public class TestValue Value ptr = new Value (t, l); Value v1 = intType.createValue(4); - Value v = v1.getType().getALU(wordSize).logicalAnd(v1, ptr, memory); + Value v = v1.getType().getALU(wordSize).logicalAnd(v1, ptr); assertEquals ("ptr && 4", 1, v.asLong()); - v = v1.getType().getALU(wordSize).logicalOr(v1, ptr, memory); + v = v1.getType().getALU(wordSize).logicalOr(v1, ptr); assertEquals ("ptr || 4", 1, v.asLong()); - v = t.getALU(8).logicalNegation(ptr, memory); + v = t.getALU(8).logicalNegation(ptr); assertEquals("!ptr", 0, v.asLong()); } } hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 15 22:59:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 15 Nov 2007 22:59:00 -0000 Subject: [SCM] master: Remove a random conflict message. Message-ID: <20071115225922.17083.qmail@sourceware.org> The branch, master has been updated via ccaef1c5b11c27ff856ce48f943b69fee0340e55 (commit) via 7f3584d2eee7bc0dce00f03a8417af1c21de54f6 (commit) via cfedd37029c197405be175a3ce24a53731995681 (commit) from b88be9142254b4b1c5d5cd094137f52861ad9432 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ccaef1c5b11c27ff856ce48f943b69fee0340e55 Author: Stan Cox Date: Thu Nov 15 17:56:47 2007 -0500 Remove a random conflict message. commit 7f3584d2eee7bc0dce00f03a8417af1c21de54f6 Merge: cfedd37029c197405be175a3ce24a53731995681 b88be9142254b4b1c5d5cd094137f52861ad9432 Author: Stan Cox Date: Thu Nov 15 17:51:56 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/hpd/ChangeLog frysk-core/frysk/hpd/TestListCommand.java frysk-core/frysk/pkglibdir/ChangeLog commit cfedd37029c197405be175a3ce24a53731995681 Author: Stan Cox Date: Thu Nov 15 17:45:19 2007 -0500 Change TestListCommand to use an easier to verify test program. * TestListCommand.java (testListPC): Change to use funit-quicksort. * funit-quicksort.c: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 8 ++- frysk-core/frysk/hpd/TestListCommand.java | 100 +++++++++++++++------ frysk-core/frysk/pkglibdir/ChangeLog | 4 + frysk-core/frysk/pkglibdir/funit-quicksort.c | 125 ++++++++++++++++++++++++++ 4 files changed, 207 insertions(+), 30 deletions(-) create mode 100644 frysk-core/frysk/pkglibdir/funit-quicksort.c First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 1e83b85..766529a 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,8 +1,14 @@ +2007-11-15 Stan Cox + * TestListCommand.java (testListPC): Change to use funit-quicksort. + (testListFunction): Likewise. + (testListReverse): Likewise. + (testListErrors): Likewise. + 2007-11-15 Andrew Cagney * TestListCommand.java (testListPC()): Mark as unresolved, 5332. (testListFunction()): Mark as unresolved, 5333. - + 2007-11-14 Andrew Cagney * ParameterizedCommand.java (complete(CLI,Input,int,List)): New. diff --git a/frysk-core/frysk/hpd/TestListCommand.java b/frysk-core/frysk/hpd/TestListCommand.java index 1c67c53..ae3fb49 100644 --- a/frysk-core/frysk/hpd/TestListCommand.java +++ b/frysk-core/frysk/hpd/TestListCommand.java @@ -51,51 +51,80 @@ public class TestListCommand extends TestLib { } public void testListPC() { - if (unresolved(5332)) - return; - e = HpdTestbed.run("hpd-c"); + e = HpdTestbed.run("funit-quicksort"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); + // Matching the list expected output is a trial and error process + // as the matching tends to be greedy. e.send("list\n"); - e.expect(".*208.*int.*209.*int.*210.*int_21.*211.*int_21.*215.*int.*" + - "216.*main.*\\*.*218.*if.*219.*fprintf" + - ".*221.*int.*222.*int.*.*223.*return.*224.*"); + e.expect("114.*114"); + e.expect("115.*115.*printf"); + e.expect("116.*116.*return 1"); + e.expect("117.*117"); + e.expect("118.*118.*return 0"); + e.expect("119.*119"); + e.expect("120.*120"); + e.expect("121.*121"); + e.expect("122.*122.*main"); + e.expect("123.*123"); + e.expect("\\* 124.*124"); + e.expect("125.*125"); e.send("quit\n"); e.expect("quit.*\nQuitting..."); e.close(); } + + public void testListFunction() { - if (unresolved(5333)) - return; - e = HpdTestbed.run("hpd-c"); + e = HpdTestbed.run("funit-quicksort"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); e.send("list\n"); e.expect(prompt); - e.send("list func_2\n"); - e.expect( - ".*158.*159.*typedef.*160.*static_class_t.*161.*enum.*" + - "162.*static_class_t.*163.*struct.*164.*asm.*165.*struct.*" + - "166.*asm.*167.*struct.*168.*struct.*169.*typedef.*" + - "170.*volatile.*171.*long.*172.*int.*173.*float.*174.*char.*" + - "175.*static_class_t.*176.*volatile.*177.*sportscar.*" + - prompt); + e.send("list quicksort\n"); + e.expect("81.*81"); + e.expect("82.*82.*int"); + e.expect("83.*83"); + e.expect("84.*84"); + e.expect("85.*85.*j ="); + e.expect("86.*86.*x ="); + e.expect("87.*87.*do"); + e.expect("88.*88"); + e.expect("89.*89"); + e.expect("90.*90.*while"); + e.expect("91.*91.*if"); + e.expect("92.*92"); + e.expect("93.*93.*w ="); + e.expect("94.*94"); + e.expect("95.*95.*a.j."); + e.expect("96.*96.*i ="); + e.expect("97.*97.*j ="); + e.expect("98.*98"); + e.expect("99.*99.*while"); + e.expect("100.*100.*if"); e.send("list -length 10\n"); - e.expect( - ".*178.*char.*179.*short.*180.*int.*181.*long.*182.*float.*" + - "183.*double.*184.*assign_long_arr.*185.*assign_int_arr.*"); + e.expect("101.*101.*quicksort..a,l,j"); + e.expect("102.*102.*if"); + e.expect("103.*103.*quicksort..a,i,r"); + e.expect("104.*104"); + e.expect("105.*105"); + e.expect("106.*106"); + e.expect("107.*107"); + e.expect("108.*108.*int"); + e.expect("109.*109"); + e.expect("110.*110"); e.send("quit\n"); e.expect("quit.*\nQuitting..."); e.close(); } public void testListReverse() { - e = HpdTestbed.run("hpd-c"); + e = HpdTestbed.run("funit-quicksort"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); e.send("go\n"); @@ -103,17 +132,34 @@ public class TestListCommand extends TestLib { e.send("list\n"); e.expect(prompt); e.send("list -length -10\n"); - e.expect(".*198.*while.*202.*return.*205.*static.*206.*func_1.*207"); + e.expect("104.*104"); + e.expect("105.*105"); + e.expect("106.*106"); + e.expect("107.*107"); + e.expect("108.*108.*int"); + e.expect("109.*109.*quick "); + e.expect("110.*110"); + e.expect("111.*111.*init_array"); + e.expect("112.*112.*quicksort "); + e.expect("113.*113.*if"); e.send("list -length -10\n"); - e.expect(".*188.*sportscar.*190.*int_p.*191.*class_p.*192.*class_p.*" + - "193.*class_p.*194.*class_1.*196.*int_21.*197.*"); + e.expect("94.*94.*a.i. ="); + e.expect("95.*95.*a.j. ="); + e.expect("96.*96.*i ="); + e.expect("97.*97.*j ="); + e.expect("98.*98"); + e.expect("99.*99.*while"); + e.expect("100.*100.*if .l"); + e.expect("101.*101.*quicksort .a,l,j"); + e.expect("102.*102.*if .i"); + e.expect("103.*103.*quicksort .a,i,r"); e.send("quit\n"); e.expect("quit.*\nQuitting..."); e.close(); } public void testListErrors() { - e = HpdTestbed.run("hpd-c"); + e = HpdTestbed.run("funit-quicksort"); e.send("break main\n"); e.expect("breakpoint.*" + prompt); e.send("go\n"); @@ -127,7 +173,3 @@ public class TestListCommand extends TestLib { e.close(); } } - - - - diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 4371841..607b5fb 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-15 Stan Cox + + * funit-quicksort.c: New. + 2007-11-15 Petr Machata * funit-fib-fork.c: When a child dies on signal, kills itself with diff --git a/frysk-core/frysk/pkglibdir/funit-quicksort.c b/frysk-core/frysk/pkglibdir/funit-quicksort.c new file mode 100644 index 0000000..287ee9f --- /dev/null +++ b/frysk-core/frysk/pkglibdir/funit-quicksort.c @@ -0,0 +1,125 @@ +/* 1 */ // This file is part of the program FRYSK. +/* 2 */ // +/* 3 */ // Copyright 2007 Red Hat Inc. +/* 4 */ // +/* 5 */ // FRYSK is free software; you can redistribute it and/or modify it +/* 6 */ // under the terms of the GNU General Public License as published by +/* 7 */ // the Free Software Foundation; version 2 of the License. +/* 8 */ // +/* 9 */ // FRYSK is distributed in the hope that it will be useful, but +/* 10 */ // WITHOUT ANY WARRANTY; without even the implied warranty of +/* 11 */ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +/* 12 */ // General Public License for more details. +/* 13 */ // +/* 14 */ // You should have received a copy of the GNU General Public License +/* 15 */ // along with FRYSK; if not, write to the Free Software Foundation, +/* 16 */ // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +/* 17 */ // +/* 18 */ // In addition, as a special exception, Red Hat, Inc. gives You the +/* 19 */ // additional right to link the code of FRYSK with code not covered +/* 20 */ // under the GNU General Public License ("Non-GPL Code") and to +/* 21 */ // distribute linked combinations including the two, subject to the +/* 22 */ // limitations in this paragraph. Non-GPL Code permitted under this +/* 23 */ // exception must only link to the code of FRYSK through those well +/* 24 */ // defined interfaces identified in the file named EXCEPTION found in +/* 25 */ // the source code files (the "Approved Interfaces"). The files of +/* 26 */ // Non-GPL Code may instantiate templates or use macros or inline +/* 27 */ // functions from the Approved Interfaces without causing the +/* 28 */ // resulting work to be covered by the GNU General Public +/* 29 */ // License. Only Red Hat, Inc. may make changes or additions to the +/* 30 */ // list of Approved Interfaces. You must obey the GNU General Public +/* 31 */ // License in all respects for all of the FRYSK code and other code +/* 32 */ // used in conjunction with FRYSK except the Non-GPL Code covered by +/* 33 */ // this exception. If you modify this file, you may extend this +/* 34 */ // exception to your version of the file, but you are not obligated to +/* 35 */ // do so. If you do not wish to provide this exception without +/* 36 */ // modification, you must delete this exception statement from your +/* 37 */ // version and license this file solely under the GPL without +/* 38 */ // exception. +/* 39 */ +# /* 40 */ include +# /* 41 */ include +# /* 42 */ define element_count 256 +/* 43 */ +/* 44 */ int sortlist[element_count+1]; +/* 45 */ int seed; +/* 46 */ int biggest, littlest; +/* 47 */ int top; +/* 48 */ +/* 49 */ void +/* 50 */ init_rand () +/* 51 */ { +/* 52 */ seed = 74755; +/* 53 */ } +/* 54 */ +/* 55 */ int +/* 56 */ rand () +/* 57 */ { +/* 58 */ seed = (seed * 1309 + 13849) & 65535; +/* 59 */ return (seed); +/* 60 */ } +/* 61 */ +/* 62 */ void +/* 63 */ init_array () +/* 64 */ { +/* 65 */ int i, temp; +/* 66 */ init_rand (); +/* 67 */ biggest = 0; littlest = 0; +/* 68 */ for (i = 1; i <= element_count; i++) +/* 69 */ { +/* 70 */ temp = rand (); +/* 71 */ sortlist[i] = temp - (temp/100000)*100000 - 50000; +/* 72 */ if (sortlist[i] > biggest) biggest = sortlist[i]; +/* 73 */ else if (sortlist[i] < littlest) littlest = sortlist[i]; +/* 74 */ } +/* 75 */ } +/* 76 */ +/* 77 */ /* quicksort the array A from start to finish */ +/* 78 */ +/* 79 */ void +/* 80 */ quicksort (a,l,r) int a[], l, r; +/* 81 */ { +/* 82 */ int i,j,x,w; +/* 83 */ +/* 84 */ i = l; +/* 85 */ j = r; +/* 86 */ x = a[(l+r) / 2]; +/* 87 */ do +/* 88 */ { +/* 89 */ while (a[i] < x) i = i+1; +/* 90 */ while (x < a[j]) j = j-1; +/* 91 */ if (i <= j) +/* 92 */ { +/* 93 */ w = a[i]; +/* 94 */ a[i] = a[j]; +/* 95 */ a[j] = w; +/* 96 */ i = i+1; +/* 97 */ j = j-1; +/* 98 */ } +/* 99 */ } while (i <= j); +/* 100 */ if (l < j) +/* 101 */ quicksort (a,l,j); +/* 102 */ if (i < r) +/* 103 */ quicksort (a,i,r); +/* 104 */ } +/* 105 */ +/* 106 */ /* setup an array, quicksort the array, validate the quicksort */ +/* 107 */ +/* 108 */ int +/* 109 */ quick () +/* 110 */ { +/* 111 */ init_array (); +/* 112 */ quicksort (sortlist, 1, element_count); +/* 113 */ if ((sortlist[1] != littlest) || (sortlist[element_count] != biggest)) +/* 114 */ { +/* 115 */ printf (" Error in quicksort.\n"); +/* 116 */ return 1; +/* 117 */ } +/* 118 */ return 0; +/* 119 */ } +/* 120 */ +/* 121 */ int +/* 122 */ main() +/* 123 */ { +/* 124 */ return quick(); +/* 125 */ } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 15 23:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 15 Nov 2007 23:49:00 -0000 Subject: [SCM] master: cni/Errno.cxx (vajprintf): Throw a runtime exception when things fail. Message-ID: <20071115234924.9841.qmail@sourceware.org> The branch, master has been updated via d446c71317b65455e9baf4f4b321680170e6b847 (commit) via e9575e7376838347fec56e7551cc2560f93073f8 (commit) via 26b9fd263f24c4998cabc52dbab8c3cd58ad7633 (commit) from ccaef1c5b11c27ff856ce48f943b69fee0340e55 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d446c71317b65455e9baf4f4b321680170e6b847 Author: Andrew Cagney Date: Thu Nov 15 18:41:44 2007 -0500 cni/Errno.cxx (vajprintf): Throw a runtime exception when things fail. commit e9575e7376838347fec56e7551cc2560f93073f8 Author: Andrew Cagney Date: Thu Nov 15 18:24:46 2007 -0500 Have Errno set the parent's message; so getMessage() works. frysk-sys/frysk/sys/ChangeLog 2007-11-15 Andrew Cagney * Errno.java (Errno()): Delete. (Eio): New. (toString()): Delete. (message): Delete. (Errno(String)): Pass reason to super-class. * cni/Errno.cxx (throwErrno): Update. commit 26b9fd263f24c4998cabc52dbab8c3cd58ad7633 Author: Andrew Cagney Date: Thu Nov 15 17:54:59 2007 -0500 Use [new] CLI.printError to report runtime exceptions. frysk-core/frysk/hpd/ChangeLog 2007-11-15 Andrew Cagney * PlocationCommand.java: Use CLI.printError(Exception). * EvalCommands.java: Ditto. * CLI.java (printError(Exception)): New. (nasty(Exception)): New. (doAttach()): Throw a RuntimeException when there (execCommand(String)): Pass RuntimeExceptions to printError. (commplete(String,int,List)): Print "nasty" exceptions. * Message.java (Message): Remove constructor that takes a possible exception cause. (getException): Delete. * CLI.java (addMessage): Delete variant that takes a possible exception cause. (flushMessages): Do not print exception cause if present. * TestPlocationCommand.java (testPlocationFails()): Mark as unresolved, 5345. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 51 +++++++++++++++--------- frysk-core/frysk/hpd/ChangeLog | 18 ++++++++ frysk-core/frysk/hpd/EvalCommands.java | 8 +-- frysk-core/frysk/hpd/Message.java | 33 +-------------- frysk-core/frysk/hpd/PlocationCommand.java | 11 +---- frysk-core/frysk/hpd/TestPlocationCommand.java | 2 + frysk-sys/frysk/sys/ChangeLog | 10 +++++ frysk-sys/frysk/sys/Errno.java | 25 +++++------- frysk-sys/frysk/sys/cni/Errno.cxx | 11 ++++- 9 files changed, 88 insertions(+), 81 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index d79e557..d7fcf07 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -123,8 +123,9 @@ public class CLI { return topLevelCommand.complete(this, new Input(buffer), cursor, candidates); } catch (RuntimeException e) { - // XXX - FIXME - What if this is something fatal? - return -1; + if (nasty(e)) + e.printStackTrace(outWriter); + return -1; } } @@ -143,8 +144,7 @@ public class CLI { outWriter.print("Attached to process "); outWriter.println(attached); } catch (InterruptedException ie) { - addMessage("Attach interrupted.", Message.TYPE_ERROR, ie); - return; + throw new RuntimeException("attachLatch interrupted"); } finally { synchronized (this) { attached = -1; @@ -254,20 +254,41 @@ public class CLI { topLevelCommand.interpret(this, command); } } - catch (InvalidCommandException ice) { - addMessage(ice.getMessage(), Message.TYPE_ERROR); - } catch (RuntimeException e) { - String msg = e.getMessage(); - if (msg == null || msg.equals("")) - msg = e.toString(); - addMessage(msg, Message.TYPE_DBG_ERROR, e); + printError(e); } flushMessages(); } return null; } + /** + * Identify "nasty", or internal exceptions; these are the + * RuntimeExceptions thrown by the Java system. + */ + private boolean nasty(Exception e) { + Throwable cause = e; + while (true) { + Throwable c = cause.getCause(); + if (c == null) + break; + cause = c; + } + return (cause instanceof NullPointerException + || e.getMessage() == null); + } + + void printError(Exception e) { + if (nasty(e)) { + outWriter.print("Internal Error: "); + e.printStackTrace(outWriter); + outWriter.println(); + } else { + outWriter.print("Error: "); + outWriter.println(e.getMessage()); + } + } + void addMessage(Message msg) { messages.add(msg); } @@ -276,10 +297,6 @@ public class CLI { addMessage(new Message(msg, type)); } - void addMessage(String msg, int type, Throwable exc) { - addMessage(new Message(msg, type, exc)); - } - private void flushMessages() { for (Iterator iter = messages.iterator(); iter.hasNext();) { Message tempmsg = (Message) iter.next(); @@ -293,12 +310,8 @@ public class CLI { if (prefix != null) outWriter.print(prefix); outWriter.println(tempmsg.getMessage()); - Throwable exc = tempmsg.getException(); - if (exc != null) - exc.printStackTrace(outWriter); iter.remove(); } - outWriter.flush(); } PTSet createSet(String set) { diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 766529a..0f67675 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -6,6 +6,24 @@ 2007-11-15 Andrew Cagney + * PlocationCommand.java: Use CLI.printError(Exception). + * EvalCommands.java: Ditto. + * CLI.java (printError(Exception)): New. + (nasty(Exception)): New. + (doAttach()): Throw a RuntimeException when there + (execCommand(String)): Pass RuntimeExceptions to printError. + (commplete(String,int,List)): Print "nasty" exceptions. + * Message.java (Message): Remove constructor that takes a possible + exception cause. + (getException): Delete. + * CLI.java (addMessage): Delete variant that takes a possible + exception cause. + (flushMessages): Do not print exception cause if present. + * TestPlocationCommand.java (testPlocationFails()): Mark as + unresolved, 5345. + +2007-11-15 Andrew Cagney + * TestListCommand.java (testListPC()): Mark as unresolved, 5332. (testListFunction()): Mark as unresolved, 5333. diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index 3514cdc..ada61ce 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -94,11 +94,9 @@ abstract class EvalCommands extends ParameterizedCommand { } try { result = cli.parseValue(task, expression, options.dumpTree); - } catch (RuntimeException nnfe) { - String msg = nnfe.getMessage(); - if (msg == null || msg.equals("")) - msg = nnfe.toString(); - cli.addMessage(msg, Message.TYPE_ERROR, nnfe); + } catch (RuntimeException e) { + cli.outWriter.println(); + cli.printError(e); continue; } diff --git a/frysk-core/frysk/hpd/Message.java b/frysk-core/frysk/hpd/Message.java index aeb4ed2..933305f 100644 --- a/frysk-core/frysk/hpd/Message.java +++ b/frysk-core/frysk/hpd/Message.java @@ -49,39 +49,17 @@ class Message public static int TYPE_NORMAL = 3; public static int TYPE_VERBOSE = 4; - private final String msg; - private final int type; - private final Throwable exc; + String msg = null; + int type = 0; - /** - * Creates a new Message with the given message and type - * and no exception. - */ - public Message (String msg, int type) - { - this(msg, type, null); - } - /** - * Creates a new Message with the given message and type. - * The message cannot be null or empty. The exception is optional - * and may be null. - */ - public Message (String msg, int type, Throwable exc) + public Message (String msg, int type) { - if (msg == null) - throw new NullPointerException("null msg"); - - if (msg.equals("")) - throw new IllegalArgumentException("empty msg"); - this.msg = msg; if (type < TYPE_DBG_ERROR || type > TYPE_VERBOSE) throw new IllegalArgumentException("Debugger message created with illegal type."); else this.type = type; - - this.exc = exc; } public String getMessage() @@ -93,9 +71,4 @@ class Message { return type; } - - public Throwable getException() - { - return exc; - } } diff --git a/frysk-core/frysk/hpd/PlocationCommand.java b/frysk-core/frysk/hpd/PlocationCommand.java index a40de00..5739c77 100644 --- a/frysk-core/frysk/hpd/PlocationCommand.java +++ b/frysk-core/frysk/hpd/PlocationCommand.java @@ -76,20 +76,13 @@ class PlocationCommand extends ParameterizedCommand { doWithoutTask = false; try { result = cli.parseValue(task, sInput); - } catch (RuntimeException nnfe) { - String msg = nnfe.getMessage(); - if (msg == null || msg.equals("")) - msg = nnfe.toString(); - cli.addMessage(msg, Message.TYPE_ERROR, nnfe); + } catch (RuntimeException e) { + cli.printError(e); continue; } result.getLocation().toPrint(cli.outWriter); cli.outWriter.println(); } - if (result == null) { - cli.addMessage("Symbol \"" + sInput + "\" is not found in the current context.", - Message.TYPE_ERROR); - } } int completer(CLI cli, Input input, int cursor, List completions) { diff --git a/frysk-core/frysk/hpd/TestPlocationCommand.java b/frysk-core/frysk/hpd/TestPlocationCommand.java index 239777c..4cfb410 100644 --- a/frysk-core/frysk/hpd/TestPlocationCommand.java +++ b/frysk-core/frysk/hpd/TestPlocationCommand.java @@ -56,6 +56,8 @@ public class TestPlocationCommand } public void testPlocationFails() { + if (unresolved(5345)) + return; e = HpdTestbed.attachXXX("hpd-c"); e.sendCommandExpectPrompt("plocation bogus\n", "\r\nError: Symbol \"bogus\" is not found in the current context..*"); diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index 8a8d0dd..fcea6d1 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,3 +1,13 @@ +2007-11-15 Andrew Cagney + + * Errno.java (Errno()): Delete. + (Eio): New. + (toString()): Delete. + (message): Delete. + (Errno(String)): Pass reason to super-class. + * cni/Errno.cxx (throwErrno): Update. + (vajprintf): Throw a runtime exception when things fail. + 2007-10-30 Andrew Cagney * SyscallNum.java-sh: Rename SyscallNum.shjava. diff --git a/frysk-sys/frysk/sys/Errno.java b/frysk-sys/frysk/sys/Errno.java index f809f1b..9390d10 100644 --- a/frysk-sys/frysk/sys/Errno.java +++ b/frysk-sys/frysk/sys/Errno.java @@ -48,6 +48,10 @@ public class Errno { private static final long serialVersionUID = 1L; + protected Errno (String message) { + super(message); + } + /** * Bad file descriptor. */ @@ -140,22 +144,13 @@ public class Errno } /** - * Returns the error message string for this error. + * Input/Output Error. */ - public String toString () - { - return message; - } - private String message; - - protected Errno (String message) - { - this.message = message; - } - - protected Errno () - { - this.message = "internal error"; + static public class Eio extends Errno { + private static final long serialVersionUID = 1L; + protected Eio (String message) { + super (message); + } } static native void throwErrno (int err, String prefix); diff --git a/frysk-sys/frysk/sys/cni/Errno.cxx b/frysk-sys/frysk/sys/cni/Errno.cxx index 17f0617..4a06340 100644 --- a/frysk-sys/frysk/sys/cni/Errno.cxx +++ b/frysk-sys/frysk/sys/cni/Errno.cxx @@ -1,7 +1,7 @@ // This file is part of the program FRYSK. // -// Copyright 2007 Oracle Corporation. // Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2007 Oracle Corporation. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -60,6 +60,7 @@ #include "frysk/sys/Errno$Echild.h" #include "frysk/sys/Errno$Esrch.h" #include "frysk/sys/Errno$Eperm.h" +#include "frysk/sys/Errno$Eio.h" #include "frysk/sys/cni/Errno.hxx" /** @@ -83,11 +84,11 @@ vajprintf (const char *fmt, va_list ap) { char* message = NULL; if (::vasprintf (&message, fmt, ap) < 0) - throw new frysk::sys::Errno (); + throwRuntimeException("vasprintf failed"); jstring jmessage = JvNewStringUTF (message); ::free (message); if (jmessage == NULL) - throwRuntimeException("JvNewStringUTF failed in vajprintf"); + throwRuntimeException("JvNewStringUTF failed in vajprintf"); return jmessage; } @@ -127,6 +128,10 @@ throwErrno (int err, jstring jmessage) case EPERM: throw new frysk::sys::Errno$Eperm (jmessage); #endif +#ifdef EIO + case EIO: + throw new frysk::sys::Errno$Eio (jmessage); +#endif default: throw new frysk::sys::Errno (jmessage); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 16 00:28:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 16 Nov 2007 00:28:00 -0000 Subject: [SCM] master: Tidy TAB lexer. Message-ID: <20071116002841.2618.qmail@sourceware.org> The branch, master has been updated via 59fba07fbfacb30f9ae2323677c5ae20b5a14eaf (commit) from d446c71317b65455e9baf4f4b321680170e6b847 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 59fba07fbfacb30f9ae2323677c5ae20b5a14eaf Author: Andrew Cagney Date: Thu Nov 15 19:12:57 2007 -0500 Tidy TAB lexer. frysk-core/frysk/expr/ChangeLog 2007-11-15 Andrew Cagney * CExpr.g (tid_expression): Delete. (TAB_IDENT): Fold into TAB. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExpr.g | 27 +++++++++------------------ frysk-core/frysk/expr/ChangeLog | 3 +++ 2 files changed, 12 insertions(+), 18 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index 8d7b373..45f0a05 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -425,13 +425,9 @@ constant { astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #id_expr1); } )*/ -tid_expression - : TAB_IDENT - ; - -/*---------------------------------------------------------------------------- - * The Lexer - *----------------------------------------------------------------------------*/ +/*--------------------------------------------------------------------------- + * The Lexer + *---------------------------------------------------------------------------*/ class CExprLexer extends Lexer; @@ -506,18 +502,13 @@ options {testLiterals = true;} ; /** - * A token is returned not only on regular tabs - * but also when a TAB is hit after an incomplete variable - */ -protected -TAB - : (IDENT)?'\t' - ; + * A token is returned not only on regular tabs + * but also when a TAB is hit after an incomplete identifier. + */ -TAB_IDENT - : ((IDENT)'\t')=>TAB {$setType(TAB);} - | ('\t')=>TAB {$setType(TAB);} - | IDENT {$setType(IDENT);} +TAB + : '\t' + | IDENT {$setType(IDENT);} ('\t' {$setType(TAB);})? ; protected diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 8dc8423..8ec1bb0 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -4,6 +4,9 @@ 2007-11-15 Andrew Cagney + * CExpr.g (tid_expression): Delete. + (TAB_IDENT): Fold into TAB. + * CExpr.g (options): Delete ASTLabelType. * CExprEvaluator.g (options): Ditto. * ExprAST.java: Delete. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 16 03:27:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 16 Nov 2007 03:27:00 -0000 Subject: [SCM] master: Remove stray references to ExprAST. Message-ID: <20071116032755.14087.qmail@sourceware.org> The branch, master has been updated via d4080f5cc94e2364b34b9e30c9cba19070d30c98 (commit) from 59fba07fbfacb30f9ae2323677c5ae20b5a14eaf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d4080f5cc94e2364b34b9e30c9cba19070d30c98 Author: Andrew Cagney Date: Thu Nov 15 22:30:23 2007 -0500 Remove stray references to ExprAST. frysk-common/ChangeLog 2007-11-15 Andrew Cagney * antlr-warnings.awk: Delete references to ExprAST. frysk-core/frysk/expr/ChangeLog 2007-11-15 Andrew Cagney * TestArithmetics.java (eval(String)): Do not set setASTNodeClass. * TestVariables.java (eval(String)): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++ frysk-common/antlr-warnings.awk | 49 ++++++++++++++++++++++------ frysk-core/frysk/expr/ChangeLog | 5 +++ frysk-core/frysk/expr/TestArithmetics.java | 1 - frysk-core/frysk/expr/TestVariables.java | 1 - 5 files changed, 48 insertions(+), 12 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index df27d16..fe624dc 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,7 @@ +2007-11-15 Andrew Cagney + + * antlr-warnings.awk: Delete references to ExprAST. + 2007-11-14 Andrew Cagney * Makefile.rules (.g.antlred): Rename .g.antlered; use a tmp diff --git a/frysk-common/antlr-warnings.awk b/frysk-common/antlr-warnings.awk index 34137ea..f77e3c0 100644 --- a/frysk-common/antlr-warnings.awk +++ b/frysk-common/antlr-warnings.awk @@ -1,5 +1,44 @@ #!/bin/awk +# This file is part of the program FRYSK. +# +# Copyright 2007, Red Hat Inc. +# +# FRYSK is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# FRYSK is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with FRYSK; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +# +# In addition, as a special exception, Red Hat, Inc. gives You the +# additional right to link the code of FRYSK with code not covered +# under the GNU General Public License ("Non-GPL Code") and to +# distribute linked combinations including the two, subject to the +# limitations in this paragraph. Non-GPL Code permitted under this +# exception must only link to the code of FRYSK through those well +# defined interfaces identified in the file named EXCEPTION found in +# the source code files (the "Approved Interfaces"). The files of +# Non-GPL Code may instantiate templates or use macros or inline +# functions from the Approved Interfaces without causing the +# resulting work to be covered by the GNU General Public +# License. Only Red Hat, Inc. may make changes or additions to the +# list of Approved Interfaces. You must obey the GNU General Public +# License in all respects for all of the FRYSK code and other code +# used in conjunction with FRYSK except the Non-GPL Code covered by +# this exception. If you modify this file, you may extend this +# exception to your version of the file, but you are not obligated to +# do so. If you do not wish to provide this exception without +# modification, you must delete this exception statement from your +# version and license this file solely under the GPL without +# exception. + # This script spits out SED lines that edit out warnings in generated # code from antlr. It needs to be run iteratively as often warnings # are masked. @@ -89,16 +128,6 @@ prob ~ /The local variable .* is never read/ { sed = sed_comment(code) } else if (code ~ /^AST [_[:alnum:]]*_AST_in = \(_t == ASTNULL) \? null : \(AST)_t;/) { sed = sed_comment(code) - } else if (code ~ /^ExprAST [_[:alnum:]]*_AST_in = null;/) { - sed = sed_comment(code) - } else if (code ~ /^ExprAST [_[:alnum:]]*_AST = null;/) { - sed = sed_comment(code) - } else if (code ~ /^ExprAST [_[:alnum:]]*_AST = .ExprAST.*null;/) { - sed = sed_comment(code) - } else if (code ~ /^ExprAST [_[:alnum:]]*_AST_in = .ExprAST._t;/) { - sed = sed_comment(code) - } else if (code ~ /^ExprAST [_[:alnum:]]*_AST_in = \(_t == ASTNULL) \? null : .ExprAST._t;/) { - sed = sed_comment(code) } else if (code ~ /Token *[_[:alnum:]]* = null;/) { sed = sed_comment(code) } else if (code ~ /Token _token = null;/) { diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 8ec1bb0..4a7ee21 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-15 Andrew Cagney + + * TestArithmetics.java (eval(String)): Do not set setASTNodeClass. + * TestVariables.java (eval(String)): Ditto. + 2007-11-15 Teresa Thomas * CExprEvaluator.g: Update. diff --git a/frysk-core/frysk/expr/TestArithmetics.java b/frysk-core/frysk/expr/TestArithmetics.java index 9861f96..5db7d88 100644 --- a/frysk-core/frysk/expr/TestArithmetics.java +++ b/frysk-core/frysk/expr/TestArithmetics.java @@ -55,7 +55,6 @@ public class TestArithmetics extends TestCase { input += (char) 3; CExprLexer lexer = new CExprLexer(new StringReader(input)); CExprParser parser = new CExprParser(lexer); - parser.setASTNodeClass("frysk.expr.ExprAST"); parser.start(); ExprSymTab symTab = new ScratchSymTab(); CExprEvaluator exprEvaluator = new CExprEvaluator(symTab); diff --git a/frysk-core/frysk/expr/TestVariables.java b/frysk-core/frysk/expr/TestVariables.java index e7cf9e5..00015a6 100644 --- a/frysk-core/frysk/expr/TestVariables.java +++ b/frysk-core/frysk/expr/TestVariables.java @@ -54,7 +54,6 @@ public class TestVariables extends TestCase { input += (char) 3; CExprLexer lexer = new CExprLexer(new StringReader(input)); CExprParser parser = new CExprParser(lexer); - parser.setASTNodeClass("frysk.expr.ExprAST"); parser.start(); ExprSymTab symTab = new TestbedSymTab(); CExprEvaluator exprEvaluator = new CExprEvaluator(symTab); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Nov 16 11:42:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 16 Nov 2007 11:42:00 -0000 Subject: [SCM] master: Add -noexe option to fhpd command line Message-ID: <20071116114247.4817.qmail@sourceware.org> The branch, master has been updated via 91ea7094b8352cb974509d5790a80c96a0de648e (commit) from d4080f5cc94e2364b34b9e30c9cba19070d30c98 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 91ea7094b8352cb974509d5790a80c96a0de648e Author: Phil Muldoon Date: Fri Nov 16 11:42:40 2007 +0000 Add -noexe option to fhpd command line 2007-11-16 Phil Muldoon * fhpd.java(main): Add option -noexe. Append -noexe on no executable and option specified. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/fhpd.java | 25 +++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 534330e..3280ca7 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-16 Phil Muldoon + + * fhpd.java(main): Add option -noexe. Append + -noexe on no executable and option specified. + 2007-11-13 Sami Wagiaalla * TestFstack.java (testBackTraceWithParams): Removed value diff --git a/frysk-core/frysk/bindir/fhpd.java b/frysk-core/frysk/bindir/fhpd.java index fcc98d8..167adde 100644 --- a/frysk-core/frysk/bindir/fhpd.java +++ b/frysk-core/frysk/bindir/fhpd.java @@ -52,6 +52,8 @@ import frysk.proc.Manager; import frysk.proc.ProcId; import frysk.util.CommandlineParser; import frysk.util.PtyTerminal; +import gnu.classpath.tools.getopt.Option; +import gnu.classpath.tools.getopt.OptionException; public class fhpd { @@ -59,6 +61,7 @@ public class fhpd static File execFile; static File core; static File exeFile; + static boolean noExe = false; final static class FhpdCompletor implements Completor { @@ -101,12 +104,28 @@ public class fhpd core = corePairs[0].coreFile; exeFile = corePairs[0].exeFile; } + + - - }; + }; + + parser.add(new Option("noexe", + " Do not attempt to read an executable for a corefile") { + public void parsed(String exeValue) throws OptionException { + try { + noExe = true; + + } catch (IllegalArgumentException e) { + throw new OptionException("Invalid noexe parameter " + + exeValue); + } + + } + }); parser.setHeader("Usage: fhpd || fhpd []"); parser.parse(args); + Manager.eventLoop.start(); String line = ""; @@ -120,6 +139,8 @@ public class fhpd line = "core " + core.getCanonicalPath(); if (exeFile != null) line += " " + exeFile.getCanonicalPath(); + else if (noExe) + line +=" -noexe"; } } catch (IOException ignore) {} hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Nov 16 14:13:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 16 Nov 2007 14:13:00 -0000 Subject: [SCM] master: Test both mapping guard kinds Message-ID: <20071116141333.26127.qmail@sourceware.org> The branch, master has been updated via 61c0f2d4090b4e683195cd530fb9ce4eef33c9b6 (commit) from 91ea7094b8352cb974509d5790a80c96a0de648e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 61c0f2d4090b4e683195cd530fb9ce4eef33c9b6 Author: Petr Machata Date: Fri Nov 16 15:08:59 2007 +0100 Test both mapping guard kinds * ... and some cleanup. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 10 ++++++++++ frysk-core/frysk/ftrace/Ltrace.java | 12 ++++-------- frysk-core/frysk/ftrace/MappingGuard.java | 18 +++++++++++------- frysk-core/frysk/ftrace/MemoryMapping.java | 7 ++++--- frysk-core/frysk/ftrace/TestLtrace.java | 20 +++++++++++++++++++- 5 files changed, 48 insertions(+), 19 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index def9b9b..976a9b0 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,13 @@ +2007-11-16 Petr Machata + + * Ltrace.java: Cleanups + * MappingGuard.java (enableSyscallObserver): New static field. + (enableDebugstateObserver): dtto + (MappingGuardB.notifyObservers): add to blockers once for each + time the observer was registered. + * MemoryMapping.java (Part.toString): Improved. + * TestLtrace.java: use new fields to test both mapping guards. + 2007-11-14 Petr Machata * ChangeLog: remove paths from my previous entry diff --git a/frysk-core/frysk/ftrace/Ltrace.java b/frysk-core/frysk/ftrace/Ltrace.java index e3e4bfc..48196e0 100644 --- a/frysk-core/frysk/ftrace/Ltrace.java +++ b/frysk-core/frysk/ftrace/Ltrace.java @@ -224,8 +224,9 @@ public class Ltrace task.requestAddSyscallObserver(ltraceTaskObserver); if (traceSignals) task.requestAddSignaledObserver(ltraceTaskObserver); + MappingGuard.requestAddMappingObserver(task, ltraceTaskObserver); // There are no code observers right now. We add them as files - // get mapped to process. + // get mapped to the process. } /** @@ -291,7 +292,7 @@ public class Ltrace public Action updateAttached (Task task) { addProc(task.getProc()); - ltraceTaskObserver.updateAttached(task, null); + ltraceTaskObserver.updateAttached(task); task.requestUnblock(this); return Action.BLOCK; } @@ -576,7 +577,7 @@ public class Ltrace // --- attached/terminated/terminating observers --- // ------------------------------------------------- - public void updateAttached(Task task, TaskObserver blocker) + public Action updateAttached(Task task) { // Per-task initialization. long pc = task.getIsa().pc(task); @@ -590,11 +591,6 @@ public class Ltrace this.checkMapUnmapUpdates(task, false); MappingGuard.requestAddMappingObserver(task, this); - } - - public Action updateAttached (Task task) - { - updateAttached(task, this); return Action.BLOCK; } diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index f0af63e..4de4210 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -56,6 +56,8 @@ import frysk.proc.TaskObserver; */ class MappingGuard { + /*package-private*/ static boolean enableSyscallObserver = true; + /*package-private*/ static boolean enableDebugstateObserver = true; protected static final Logger logger = Logger.getLogger(FtraceLogger.LOGGER_ID); // HashMap @@ -114,14 +116,11 @@ class MappingGuard protected void notifyObservers(Task task) { for (Iterator it = observers.keySet().iterator(); it.hasNext();) { MappingObserver ob = (MappingObserver)it.next(); - boolean block = false; Integer i = (Integer)observers.get(ob); int v = i.intValue(); for (int j = 0; j < v; ++j) if (ob.updateMapping(task) == Action.BLOCK) - block = true; - if (block) - task.blockers.add(ob); + task.blockers.add(ob); } } } @@ -283,10 +282,15 @@ class MappingGuard synchronized (MappingGuard.class) { guard = (MappingGuardB)guardsForTask.get(task); if (guard == null) { - guard = setupDebugStateObserver(task); - if (guard == null) + if (enableDebugstateObserver) + guard = setupDebugStateObserver(task); + if (guard == null && enableSyscallObserver) guard = new SyscallMappingGuard(task); - guardsForTask.put(task, guard); + + if (guard != null) + guardsForTask.put(task, guard); + else + observer.addFailed(task, new UnsupportedOperationException("Couldn't initialize mapping guard.")); } } guard.addObserver(observer); diff --git a/frysk-core/frysk/ftrace/MemoryMapping.java b/frysk-core/frysk/ftrace/MemoryMapping.java index b191205..5742d6a 100644 --- a/frysk-core/frysk/ftrace/MemoryMapping.java +++ b/frysk-core/frysk/ftrace/MemoryMapping.java @@ -87,12 +87,13 @@ class MemoryMapping public String toString() { - return "<" + addressLow + ".." + addressHigh - + ": offset=" + offset + "; perm=" + return "<0x" + Long.toHexString(addressLow) + + "..0x" + Long.toHexString(addressHigh) + + ": offset=0x" + Long.toHexString(offset) + "; perm=`" + (permRead ? 'r' : '-') + (permWrite ? 'w' : '-') + (permExecute ? 'x' : '-') - + '>'; + + "'>"; } } diff --git a/frysk-core/frysk/ftrace/TestLtrace.java b/frysk-core/frysk/ftrace/TestLtrace.java index f5efc39..3259cea 100644 --- a/frysk-core/frysk/ftrace/TestLtrace.java +++ b/frysk-core/frysk/ftrace/TestLtrace.java @@ -67,7 +67,7 @@ public class TestLtrace public void taskTerminated(Task task, boolean signal, int value) { } } - public void testAllLibrariesGetDetected() + public void performTestAllLibrariesGetDetected() { class MyController1 implements LtraceController @@ -101,6 +101,24 @@ public class TestLtrace assertEquals("number of recorded libraries", expectedSonames.length, controller.allLibraries.size()); } + public void testDebugStateMappingGuard() + { + boolean save = MappingGuard.enableSyscallObserver; + MappingGuard.enableSyscallObserver = false; + assertTrue("debugstate observer enabled", MappingGuard.enableDebugstateObserver); + performTestAllLibrariesGetDetected(); + MappingGuard.enableSyscallObserver = save; + } + + public void testSyscallMappingGuard() + { + boolean save = MappingGuard.enableDebugstateObserver; + MappingGuard.enableDebugstateObserver = false; + assertTrue("syscall observer enabled", MappingGuard.enableSyscallObserver); + performTestAllLibrariesGetDetected(); + MappingGuard.enableDebugstateObserver = save; + } + public void testCallRecorded() { if(unresolvedOffUtrace(5053)) hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Nov 16 14:59:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 16 Nov 2007 14:59:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071116145935.12851.qmail@sourceware.org> The branch, master has been updated via afccca1009fdea92c30ebc3a34227045daa6d929 (commit) via baa1c43a2327ef44189fc18bfbc68a7155843b29 (commit) from 61c0f2d4090b4e683195cd530fb9ce4eef33c9b6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit afccca1009fdea92c30ebc3a34227045daa6d929 Merge: baa1c43a2327ef44189fc18bfbc68a7155843b29 61c0f2d4090b4e683195cd530fb9ce4eef33c9b6 Author: Phil Muldoon Date: Fri Nov 16 14:59:27 2007 +0000 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit baa1c43a2327ef44189fc18bfbc68a7155843b29 Author: Phil Muldoon Date: Fri Nov 16 14:59:01 2007 +0000 Correct previous commit 8 space indention. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/fhpd.java | 29 ++++++++++++++--------------- 1 files changed, 14 insertions(+), 15 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/fhpd.java b/frysk-core/frysk/bindir/fhpd.java index 167adde..f065cef 100644 --- a/frysk-core/frysk/bindir/fhpd.java +++ b/frysk-core/frysk/bindir/fhpd.java @@ -110,19 +110,18 @@ public class fhpd }; - parser.add(new Option("noexe", - " Do not attempt to read an executable for a corefile") { - public void parsed(String exeValue) throws OptionException { - try { - noExe = true; - - } catch (IllegalArgumentException e) { - throw new OptionException("Invalid noexe parameter " - + exeValue); - } - - } - }); + parser.add(new Option("noexe", "Do not attempt to read an"+ + " executable for a corefile ") { + public void parsed(String exeValue) throws OptionException { + try { + noExe = true; + + } catch (IllegalArgumentException e) { + throw new OptionException("Invalid noexe parameter " + + exeValue); + } + } + }); parser.setHeader("Usage: fhpd || fhpd []"); parser.parse(args); @@ -138,9 +137,9 @@ public class fhpd else if (core != null) { line = "core " + core.getCanonicalPath(); if (exeFile != null) - line += " " + exeFile.getCanonicalPath(); + line += " " + exeFile.getCanonicalPath(); else if (noExe) - line +=" -noexe"; + line +=" -noexe"; } } catch (IOException ignore) {} hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Fri Nov 16 15:59:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Fri, 16 Nov 2007 15:59:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071116155934.17912.qmail@sourceware.org> The branch, master has been updated via c0c08f0972f8bf58b60bad249421032b17e55f63 (commit) via f76200f31dc070adaff33426daa90b239dd53865 (commit) from afccca1009fdea92c30ebc3a34227045daa6d929 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c0c08f0972f8bf58b60bad249421032b17e55f63 Merge: f76200f31dc070adaff33426daa90b239dd53865 afccca1009fdea92c30ebc3a34227045daa6d929 Author: Stan Cox Date: Fri Nov 16 10:57:20 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit f76200f31dc070adaff33426daa90b239dd53865 Author: Stan Cox Date: Fri Nov 16 10:56:57 2007 -0500 Use sendCommandExpectPrompt where applicable. * TestListCommand.java (testListPC): Use sendCommandExpectPrompt. (testListFunction): Likewise. (testListReverse): Likewise. (testListErrors): Likewise. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 7 +++++++ frysk-core/frysk/hpd/TestListCommand.java | 22 ++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 0f67675..b5690a0 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,10 @@ +2007-11-16 Stan Cox + + * TestListCommand.java (testListPC): Use sendCommandExpectPrompt. + (testListFunction): Likewise. + (testListReverse): Likewise. + (testListErrors): Likewise. + 2007-11-15 Stan Cox * TestListCommand.java (testListPC): Change to use funit-quicksort. (testListFunction): Likewise. diff --git a/frysk-core/frysk/hpd/TestListCommand.java b/frysk-core/frysk/hpd/TestListCommand.java index ae3fb49..8b2a015 100644 --- a/frysk-core/frysk/hpd/TestListCommand.java +++ b/frysk-core/frysk/hpd/TestListCommand.java @@ -52,8 +52,7 @@ public class TestListCommand extends TestLib { public void testListPC() { e = HpdTestbed.run("funit-quicksort"); - e.send("break main\n"); - e.expect("breakpoint.*" + prompt); + e.sendCommandExpectPrompt("break main", "breakpoint.*"); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); // Matching the list expected output is a trial and error process @@ -80,8 +79,7 @@ public class TestListCommand extends TestLib { public void testListFunction() { e = HpdTestbed.run("funit-quicksort"); - e.send("break main\n"); - e.expect("breakpoint.*" + prompt); + e.sendCommandExpectPrompt("break main", "breakpoint.*"); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); e.send("list\n"); @@ -125,8 +123,7 @@ public class TestListCommand extends TestLib { public void testListReverse() { e = HpdTestbed.run("funit-quicksort"); - e.send("break main\n"); - e.expect("breakpoint.*" + prompt); + e.sendCommandExpectPrompt("break main", "breakpoint.*"); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); e.send("list\n"); @@ -160,16 +157,13 @@ public class TestListCommand extends TestLib { public void testListErrors() { e = HpdTestbed.run("funit-quicksort"); - e.send("break main\n"); - e.expect("breakpoint.*" + prompt); + e.sendCommandExpectPrompt("break main", "breakpoint.*"); e.send("go\n"); e.expect("go.*\n" + prompt + "Breakpoint"); - e.send("list x\n"); - e.expect(".*function x not found.*" + prompt); - e.send("list xyz\n"); - e.expect(".*symbol xyz not found.*" + prompt); - e.send("quit\n"); - e.expect("quit.*\nQuitting..."); + e.sendCommandExpectPrompt("list x", ".*function x not found.*"); + e.sendCommandExpectPrompt("list xyz", ".*symbol xyz not found.*"); + e.send("quit\n"); + e.expect("quit.*\nQuitting..."); e.close(); } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 16 17:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 16 Nov 2007 17:07:00 -0000 Subject: [SCM] master: Replace TabException with CompletionException; simplify. Message-ID: <20071116170719.14105.qmail@sourceware.org> The branch, master has been updated via c9bca79bdca4785a6ca8209aaab7ffcf8ea24d1c (commit) from c0c08f0972f8bf58b60bad249421032b17e55f63 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c9bca79bdca4785a6ca8209aaab7ffcf8ea24d1c Author: Andrew Cagney Date: Fri Nov 16 12:03:25 2007 -0500 Replace TabException with CompletionException; simplify. frysk-core/frysk/debuginfo/ChangeLog 2007-11-16 Andrew Cagney * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Catch CompletionException instead of TabException. Do not attempt to handle structures. frysk-core/frysk/expr/ChangeLog 2007-11-16 Andrew Cagney * TabException.java: Delete. * CExpr.g (bTabPressed): Delete. (tab_expression): Delete. (primary_expression): Fold into scope_expression; when IDENT_TAB throw IncompleteIdentifierException. (IDENT_TAB): Rename TAB. * CompletionException.java: New. * IncompleteTokenException.java: New. * IncompleteIdentifierException.java: New. * IncompleteMemberException.java: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 ++ frysk-core/frysk/debuginfo/DebugInfo.java | 14 +--- frysk-core/frysk/expr/CExpr.g | 67 ++------------ frysk-core/frysk/expr/ChangeLog | 13 +++ .../frysk/expr/CompletionException.java | 41 ++++++--- .../frysk/expr/IncompleteIdentifierException.java | 18 ++-- .../frysk/expr/IncompleteMemberException.java | 18 ++-- .../frysk/expr/IncompleteTokenException.java | 18 ++-- frysk-core/frysk/expr/TabException.java | 93 -------------------- 9 files changed, 81 insertions(+), 207 deletions(-) copy frysk-sys/frysk/expunit/TerminationException.java => frysk-core/frysk/expr/CompletionException.java (76%) copy frysk-sys/frysk/expunit/EofException.java => frysk-core/frysk/expr/IncompleteIdentifierException.java (90%) copy frysk-sys/frysk/expunit/EofException.java => frysk-core/frysk/expr/IncompleteMemberException.java (90%) copy frysk-sys/frysk/expunit/EofException.java => frysk-core/frysk/expr/IncompleteTokenException.java (90%) delete mode 100644 frysk-core/frysk/expr/TabException.java First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 92762d1..ebf74ae 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +2007-11-16 Andrew Cagney + + * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Catch + CompletionException instead of TabException. Do not attempt to + handle structures. + 007-11-15 Sami Wagiaalla DwarfDie::getDataMemberLocation now throws DwAttributeNotFoundException diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index 34304af..cd17386 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -109,23 +109,17 @@ public class DebugInfo { // FIXME: Why is this ignored? } catch (antlr.TokenStreamException ignore) { // FIXME: Why is this ignored? - } catch (frysk.expr.TabException t) { - token = t.getTabExpression().trim(); + } catch (frysk.expr.CompletionException t) { + token = t.getText(); } DwarfDie[] allDies = die.getScopes(pc - bias.bias); List candidates_p = die.getScopeVarNames(allDies, token); - boolean haveStruct = false; - if (token.endsWith(".")) - haveStruct = true; for (Iterator i = candidates_p.iterator(); i.hasNext();) { - String sNext = (haveStruct ? "." : "") + (String) i.next(); + String sNext = (String) i.next(); candidates.add(sNext); } - - if (haveStruct) - token = "."; // XXX: This is a big kludge (but less of a kludge than // .indexOf. return buffer.lastIndexOf(token); @@ -222,8 +216,6 @@ public class DebugInfo { throw new RuntimeException(r); } catch (antlr.TokenStreamException t) { throw new RuntimeException(t); - } catch (frysk.expr.TabException t) { - throw new RuntimeException(t); } AST exprAST = parser.getAST(); diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index 45f0a05..58a0dbc 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -90,20 +90,12 @@ options { } { -/** - * A member variable to keep track of TAB completions requests. - * If this is true the normal course of action is to simply - * bail out by throwing an exception - */ - private boolean bTabPressed; private int assign_stmt_RHS_found; //private String sInputExpression; protected CExprParser(TokenStream lexer, String sInput) { this(lexer); - bTabPressed = false; - //sInputExpression = sInput; } } @@ -342,42 +334,17 @@ postfix_expression! { ## = #astPostExpr; } ; +/** + * The TAB over here is not part of the C++ grammar. + * This enables auto-completion by allowing the user + * to press TAB whenever auto-completion is required + */ + scope_expression : identifier (SCOPE identifier)* + | IDENT_TAB { throw new IncompleteIdentifierException(#IDENT_TAB); } | SCOPE identifier | LPAREN! expressionList RPAREN! - | tab_expression - ; - -tab_expression - { String sTabText; } - // should subscript, component, call, post inc/dec be moved here? - : post_expr1:primary_expression - { - if (bTabPressed) { - // ??? Use antlr expressions instead of tree surgery. - if (#post_expr1.getFirstChild() != null) - if (#post_expr1.getFirstChild().getNextSibling() != null) - sTabText = #post_expr1.getFirstChild().getNextSibling().getText(); - else - sTabText = #post_expr1.getFirstChild().getText(); - else - sTabText = #post_expr1.getText(); - - throw new TabException(#post_expr1, sTabText); - } - } - ; - -/** - * The TAB over here is not part of the C++ grammar. - * This enables auto-completion by allowing the user - * to press TAB whenever auto-completion is required - */ -primary_expression - : TAB - { bTabPressed = true; - } | constant | "this" ; @@ -409,22 +376,6 @@ constant | "false" ; -/*** - * TabException is raised everytime the TAB is pressed. - * The parser thus bails out immediately and returns the - * parse tree constructed so far. - */ -/* ??? add (identifier | (TAB {bTabPressed = true;})) */ -/*DOT! -( tb:TAB - { - bTabPressed = true; - astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #tb); - } - | id_expr1:identifier - { astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #id_expr1); } -)*/ - /*--------------------------------------------------------------------------- * The Lexer *---------------------------------------------------------------------------*/ @@ -506,9 +457,9 @@ options {testLiterals = true;} * but also when a TAB is hit after an incomplete identifier. */ -TAB +IDENT_TAB : '\t' - | IDENT {$setType(IDENT);} ('\t' {$setType(TAB);})? + | IDENT {$setType(IDENT);} ('\t' {$setType(IDENT_TAB);})? ; protected diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 4a7ee21..1b9f728 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,16 @@ +2007-11-16 Andrew Cagney + + * TabException.java: Delete. + * CExpr.g (bTabPressed): Delete. + (tab_expression): Delete. + (primary_expression): Fold into scope_expression; when IDENT_TAB + throw IncompleteIdentifierException. + (IDENT_TAB): Rename TAB. + * CompletionException.java: New. + * IncompleteTokenException.java: New. + * IncompleteIdentifierException.java: New. + * IncompleteMemberException.java: New. + 2007-11-15 Andrew Cagney * TestArithmetics.java (eval(String)): Do not set setASTNodeClass. diff --git a/frysk-sys/frysk/expunit/TerminationException.java b/frysk-core/frysk/expr/CompletionException.java similarity index 76% copy from frysk-sys/frysk/expunit/TerminationException.java copy to frysk-core/frysk/expr/CompletionException.java index 7c69c9f..19aa7a4 100644 --- a/frysk-sys/frysk/expunit/TerminationException.java +++ b/frysk-core/frysk/expr/CompletionException.java @@ -37,25 +37,36 @@ // version and license this file solely under the GPL without // exception. -package frysk.expunit; +package frysk.expr; -/** - * Thrown an an end-of-file is encountered and nothing else matches. +import antlr.collections.AST; + +/** + * An incomplete blah. */ -public class TerminationException - extends RuntimeException -{ +public class CompletionException extends RuntimeException { static final long serialVersionUID = 1; - static private String expecting (int expectedStatus) - { - if (expectedStatus >= 0) - return " (expecting exit with status " + expectedStatus + ")"; - else - return " (expecting kill with signal " + expectedStatus + ")"; + private final AST ast; + CompletionException(AST ast) { + super("completing " + ast); + this.ast = ast; + } + /** + * Return the incomplete string (minus the tab). + */ + public String getText() { + String text = ast.getText(); + int tab = text.indexOf("\t"); + if (tab < 0) + throw new RuntimeException("No tab found in " + ast); + return text.substring(0, tab); + } + // Useful? + public int getLine() { + return ast.getLine(); } - TerminationException (int expectedStatus, String s) - { - super (s + expecting (expectedStatus)); + public int getColumn() { + return ast.getColumn(); } } diff --git a/frysk-sys/frysk/expunit/EofException.java b/frysk-core/frysk/expr/IncompleteIdentifierException.java similarity index 90% copy from frysk-sys/frysk/expunit/EofException.java copy to frysk-core/frysk/expr/IncompleteIdentifierException.java index 19ec3fd..0d4fc82 100644 --- a/frysk-sys/frysk/expunit/EofException.java +++ b/frysk-core/frysk/expr/IncompleteIdentifierException.java @@ -37,18 +37,16 @@ // version and license this file solely under the GPL without // exception. -package frysk.expunit; +package frysk.expr; -/** - * Thrown an an end-of-file is encountered and nothing else matches. - */ +import antlr.collections.AST; -public class EofException - extends RuntimeException -{ +/** + * An incomplete identifier; e.g.: foo + */ +class IncompleteIdentifierException extends CompletionException { static final long serialVersionUID = 1; - EofException () - { - super ("End-of-file encountered"); + IncompleteIdentifierException(AST identifier) { + super(identifier); } } diff --git a/frysk-sys/frysk/expunit/EofException.java b/frysk-core/frysk/expr/IncompleteMemberException.java similarity index 90% copy from frysk-sys/frysk/expunit/EofException.java copy to frysk-core/frysk/expr/IncompleteMemberException.java index 19ec3fd..fc093d5 100644 --- a/frysk-sys/frysk/expunit/EofException.java +++ b/frysk-core/frysk/expr/IncompleteMemberException.java @@ -37,18 +37,16 @@ // version and license this file solely under the GPL without // exception. -package frysk.expunit; +package frysk.expr; -/** - * Thrown an an end-of-file is encountered and nothing else matches. - */ +import antlr.collections.AST; -public class EofException - extends RuntimeException -{ +/** + * An incomplete field member; e.g.: structure.field + */ +class IncompleteMemberException extends CompletionException { static final long serialVersionUID = 1; - EofException () - { - super ("End-of-file encountered"); + IncompleteMemberException(AST member) { + super(member); } } diff --git a/frysk-sys/frysk/expunit/EofException.java b/frysk-core/frysk/expr/IncompleteTokenException.java similarity index 90% copy from frysk-sys/frysk/expunit/EofException.java copy to frysk-core/frysk/expr/IncompleteTokenException.java index 19ec3fd..9c2a1cb 100644 --- a/frysk-sys/frysk/expunit/EofException.java +++ b/frysk-core/frysk/expr/IncompleteTokenException.java @@ -37,18 +37,16 @@ // version and license this file solely under the GPL without // exception. -package frysk.expunit; +package frysk.expr; -/** - * Thrown an an end-of-file is encountered and nothing else matches. - */ +import antlr.collections.AST; -public class EofException - extends RuntimeException -{ +/** + * An incomplete token; e.g.: : + */ +class IncompleteTokenException extends CompletionException { static final long serialVersionUID = 1; - EofException () - { - super ("End-of-file encountered"); + IncompleteTokenException(AST token) { + super(token); } } diff --git a/frysk-core/frysk/expr/TabException.java b/frysk-core/frysk/expr/TabException.java deleted file mode 100644 index 2552f7d..0000000 --- a/frysk-core/frysk/expr/TabException.java +++ /dev/null @@ -1,93 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, 2007, Red Hat Inc. -// Copyright 2006 IBM Corp. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.expr; - -import antlr.collections.AST; - -/** - * An that should be thrown when a key is pressed. - * - * The constructor takes an AST (abstract syntax tree) as - * argument. This is the the partial AST generated thus far by the - * parser. - */ - -public class TabException extends RuntimeException -{ - static final long serialVersionUID = 1; - - private AST astExpression; - private String sTabExpression; - - /** - * The constructor takes an AST (abstract syntax tree) as - * argument. This is the the partial AST generated thus far by the - * parser. The second argument is the incomplete identifier that - * the user may have typed in. It may or may not be null - */ - public TabException(AST astPartial, String sTabExpression) { - astExpression = astPartial; - this.sTabExpression = sTabExpression; - } - - /** - * As the name suggests, this function returns the partial AST - * associated with this Exception - */ - public AST getAst() { - return astExpression; - } - - /** - * Return the partial identifier that the user may have keyed in - */ - public String getTabExpression() { - return sTabExpression; - } - - - /** - * Returns a lisp style representation of the AST - */ - public String toString() { - return astExpression.toStringList(); - } -} hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Sat Nov 17 08:35:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Sat, 17 Nov 2007 08:35:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071117083516.23475.qmail@sourceware.org> The branch, master has been updated via c91caeb6b58115c176b57e419581084ee067888c (commit) via b5cd3e0210e13f705c31ee46e992fbda3d61979f (commit) from c9bca79bdca4785a6ca8209aaab7ffcf8ea24d1c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c91caeb6b58115c176b57e419581084ee067888c Merge: b5cd3e0210e13f705c31ee46e992fbda3d61979f c9bca79bdca4785a6ca8209aaab7ffcf8ea24d1c Author: Rick Moseley Date: Sat Nov 17 02:35:03 2007 -0600 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/hpd/ChangeLog commit b5cd3e0210e13f705c31ee46e992fbda3d61979f Author: Rick Moseley Date: Sat Nov 17 02:26:53 2007 -0600 Implement load/run capability. * AttachCommand.java: Implement load/run capability. * CLI.java: Ditto. * LoadCommand.java: Ditto. * RunCommand.java: Ditto. * TestLoadCommand: Test new load/run capability. * ProcTaskIDManager.java(removeProcID,manageProcSelect): New. * fhpd.java: Fix bz #5256. * TestFhd.java(testHpdCommand): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++ frysk-core/frysk/bindir/TestFhd.java | 2 +- frysk-core/frysk/bindir/fhpd.java | 13 ++----- frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/CLI.java | 28 ++++++++++++--- frysk-core/frysk/hpd/ChangeLog | 8 ++++ frysk-core/frysk/hpd/LoadCommand.java | 8 +++- frysk-core/frysk/hpd/RunCommand.java | 49 +++++++++++++++++++++++++-- frysk-core/frysk/hpd/TestLoadCommand.java | 27 +++++++++++++++- frysk-core/frysk/rt/ChangeLog | 4 ++ frysk-core/frysk/rt/ProcTaskIDManager.java | 16 +++++++++ 11 files changed, 138 insertions(+), 24 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 3280ca7..69e9e03 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-16 Rick Moseley + + * fhpd.java: Fix bz #5256. + * TestFhd.java(testHpdCommand): Ditto. + 2007-11-16 Phil Muldoon * fhpd.java(main): Add option -noexe. Append diff --git a/frysk-core/frysk/bindir/TestFhd.java b/frysk-core/frysk/bindir/TestFhd.java index 0a4865f..08d4fb1 100755 --- a/frysk-core/frysk/bindir/TestFhd.java +++ b/frysk-core/frysk/bindir/TestFhd.java @@ -81,7 +81,7 @@ public class TestFhd Config.getBinFile("fhpd").getPath(), Config.getPkgLibFile("hpd-c").getPath() }); - e.expect(5, "Attached to process.*\n" + prompt); + e.expect(5, "Loaded executable file.*" + prompt); e.close(); } diff --git a/frysk-core/frysk/bindir/fhpd.java b/frysk-core/frysk/bindir/fhpd.java index f065cef..4012dd0 100644 --- a/frysk-core/frysk/bindir/fhpd.java +++ b/frysk-core/frysk/bindir/fhpd.java @@ -104,12 +104,7 @@ public class fhpd core = corePairs[0].coreFile; exeFile = corePairs[0].exeFile; } - - - - }; - parser.add(new Option("noexe", "Do not attempt to read an"+ " executable for a corefile ") { public void parsed(String exeValue) throws OptionException { @@ -121,10 +116,10 @@ public class fhpd + exeValue); } } - }); - parser.setHeader("Usage: fhpd || fhpd []"); - parser.parse(args); + }); + parser.setHeader("Usage: fhpd || fhpd || fhpd []"); + parser.parse(args); Manager.eventLoop.start(); String line = ""; @@ -133,7 +128,7 @@ public class fhpd if (pid > 0) line = "attach " + pid; else if (execFile != null) - line = "run " + execFile.getCanonicalPath(); + line = "load " + execFile.getCanonicalPath(); else if (core != null) { line = "core " + core.getCanonicalPath(); if (exeFile != null) diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index 69c2ba2..dd3e519 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -100,7 +100,7 @@ class AttachCommand extends ParameterizedCommand { cli.outWriter.println(pid); continue; } - cli.doAttach(findProc.proc); + cli.doAttach(findProc.proc, -1); } } diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index d7fcf07..2134399 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -69,6 +69,8 @@ public class CLI { CountDownLatch attachedLatch; //Processes started with run command final HashSet runningProcs = new HashSet(); + //Processes loaded with load command + final HashSet loadedProcs = new HashSet(); private class TaskInfo { DebugInfoFrame frame; @@ -125,14 +127,14 @@ public class CLI { } catch (RuntimeException e) { if (nasty(e)) e.printStackTrace(outWriter); - return -1; + return -1; } } /* * Command handlers */ - public void doAttach(Proc proc) { + public void doAttach(Proc proc, int procID) { synchronized (this) { attached = -1; attachedLatch = new CountDownLatch(1); @@ -144,7 +146,7 @@ public class CLI { outWriter.print("Attached to process "); outWriter.println(attached); } catch (InterruptedException ie) { - throw new RuntimeException("attachLatch interrupted"); + throw new RuntimeException("attachLatch interrupted"); } finally { synchronized (this) { attached = -1; @@ -152,7 +154,12 @@ public class CLI { } } steppingEngine.getBreakpointManager().manageProcess(proc); - idManager.manageProc(proc, idManager.reserveProcID()); + // If passed a taskID < 0, request a reserved ProcID + if (procID < 0) + idManager.manageProc(proc, idManager.reserveProcID()); + // Assign this proc to the passed in procID + else + idManager.manageProcSelect(proc, procID); } final PrintWriter outWriter; @@ -255,13 +262,13 @@ public class CLI { } } catch (RuntimeException e) { - printError(e); + printError(e); } flushMessages(); } return null; } - + /** * Identify "nasty", or internal exceptions; these are the * RuntimeExceptions thrown by the Java system. @@ -435,6 +442,15 @@ public class CLI { return runningProcs; } + /** + * Get the set of processes (Proc) started by the load command. Access to the + * CLI object should be synchronized when using the set. + * @return the set + */ + public HashSet getLoadedProcs() { + return loadedProcs; + } + SteppingEngine getSteppingEngine () { return this.steppingEngine; } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index b5690a0..e743c96 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,11 @@ +2007-11-16 Rick Moseley + + * AttachCommand.java: Implement load/run capability. + * CLI.java: Ditto. + * LoadCommand.java: Ditto. + * RunCommand.java: Ditto. + * TestLoadCommand: Test new load/run capability. + 2007-11-16 Stan Cox * TestListCommand.java (testListPC): Use sendCommandExpectPrompt. diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index cbad88d..d3f61e9 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -70,9 +70,10 @@ public class LoadCommand extends ParameterizedCommand { File executableFile = new File(cmd.parameter(0)); - if (!executableFile.exists() || !executableFile.canRead()) { + if (!executableFile.exists() || !executableFile.canRead() + || !executableFile.isFile()) { throw new InvalidCommandException - ("File does not exist or is not readable."); + ("File does not exist or is not readable or is not a file."); } Host exeHost = new LinuxExeHost(Manager.eventLoop, executableFile); @@ -97,6 +98,9 @@ public class LoadCommand extends ParameterizedCommand { frame)); } } + synchronized (cli) { + cli.getLoadedProcs().add(exeProc); + } } diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index f50feb3..2fec965 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -48,6 +48,7 @@ import frysk.proc.Task; import frysk.proc.TaskObserver; import frysk.util.CountDownLatch; import java.util.HashSet; +import java.util.Iterator; import java.util.List; class RunCommand extends Command { @@ -116,10 +117,44 @@ class RunCommand extends Command { } public void interpret(CLI cli, Input cmd) { + /* If the run command is given no args, check to see if + any procs were loaded with the load command or loaded + when fhpd was started */ if (cmd.size() < 1) { - // XXX: should default to previous values. - throw new InvalidCommandException("missing program"); + if (cli.runningProcs.isEmpty() && cli.loadedProcs.isEmpty()) + throw new InvalidCommandException("missing program"); } + + // If a parameter was given the run command, go ahead and run it + if (cmd.size() >= 1) { + run(cli, cmd); + return; + } + + /* If we made it here, a run command was given with no parameters + * and there are either running procs or loaded procs + */ + + /* This is the case where there are loaded procs */ + if (!cli.loadedProcs.isEmpty()) { + Iterator foo = cli.targetset.getTasks(); + while (foo.hasNext()) { + Task task = (Task) foo.next(); + int taskID = cli.idManager.getProcID(task.getProc()); + cli.execCommand("run " + task.getProc().getExe() + " " + + Integer.toString(taskID)); + } + // Clear all of the loaded procs now that they have been run + synchronized(cli) { + cli.loadedProcs.clear(); + } + } + // Found no loaded procs, print usage message + // XXX Need to fix, add core files and running proc handling + else throw new InvalidCommandException("missing program"); + } + + private void run(CLI cli, Input cmd) { Runner runner = new Runner(cli); Manager.host.requestCreateAttachedProc(cmd.stringArrayValue(), runner); try { @@ -128,10 +163,16 @@ class RunCommand extends Command { return; } // register with SteppingEngine et.al. - cli.doAttach(runner.launchedTask.getProc()); + // If a second parameter was passed, it was a specific ProcTaskID to use + if (cmd.size() > 1) + cli.doAttach(runner.launchedTask.getProc(), + Integer.parseInt(cmd.parameter(1))); + // If not, pass a -1 so a new ProcTaskID will be assigned + else + cli.doAttach(runner.launchedTask.getProc(), -1); runner.launchedTask.requestUnblock(runner); } - + int complete(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeFileName(cli, input, cursor, completions); diff --git a/frysk-core/frysk/hpd/TestLoadCommand.java b/frysk-core/frysk/hpd/TestLoadCommand.java index 467ccbc..10eeee4 100644 --- a/frysk-core/frysk/hpd/TestLoadCommand.java +++ b/frysk-core/frysk/hpd/TestLoadCommand.java @@ -59,7 +59,32 @@ public class TestLoadCommand extends TestLib { e = new HpdTestbed(); e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "foo\n"); - e.expect(5, "File does not exist or is not readable.*"); + e.expect(5, "File does not exist or is not readable*"); + e.close(); + } + + public void testLoadRun() { + e = new HpdTestbed(); + e.send("load " + Config.getPkgLibFile("funit-hello").getPath() + + "\n"); + e.expect(5, "Loaded executable file.*" + prompt); + e.send("focus\n"); + e.expect(5, "Target set*"); + e.expect(5, "[0.0]*0*0*"); + e.send("load " + Config.getPkgLibFile("funit-hello").getPath() + + "\n"); + e.expect(5, "Loaded executable file.*" + prompt); + e.send("focus\n"); + e.expect(5, "Target set*"); + e.expect(5, "[0.0]*0*0*"); + e.expect(5, "[1.0]*0*0*" + prompt); + e.send("run\n"); + e.expect(5, "Attached to process*"); + e.expect(5, "Attached to process*"); + e.send("focus\n"); + e.expect(5, "Target set*"); + e.expect(5, "[0.0]*"); + e.expect(5, "[1.0]*" + prompt); e.close(); } } diff --git a/frysk-core/frysk/rt/ChangeLog b/frysk-core/frysk/rt/ChangeLog index f1f42ec..b7ac848 100644 --- a/frysk-core/frysk/rt/ChangeLog +++ b/frysk-core/frysk/rt/ChangeLog @@ -1,3 +1,7 @@ +2007-11-16 Rick Moseley + + * ProcTaskIDManager.java(removeProcID,manageProcSelect): New. + 2007-11-06 Tim Moore * BreakpointManager.java (refreshBreakpoints): Enable breakpoint diff --git a/frysk-core/frysk/rt/ProcTaskIDManager.java b/frysk-core/frysk/rt/ProcTaskIDManager.java index d24086f..1e8934e 100644 --- a/frysk-core/frysk/rt/ProcTaskIDManager.java +++ b/frysk-core/frysk/rt/ProcTaskIDManager.java @@ -87,6 +87,15 @@ public class ProcTaskIDManager procList.add(null); return result; } + + public void manageProcSelect(Proc proc, int usedID) { + ProcEntry entry; + synchronized (this) { + entry = new ProcEntry(proc, usedID); + procList.set(usedID, entry); + procMap.put(proc, new Integer(usedID)); + } + } public void manageProc(Proc proc, int reservedID) { ProcEntry entry; @@ -103,6 +112,13 @@ public class ProcTaskIDManager else return null; } + + public synchronized boolean removeProcID(int id) { + if (id > procList.size() || id < 0) + return false; + procList.remove(id); + return true; + } public synchronized int getProcID(Proc proc) { Integer result = (Integer)procMap.get(proc); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 17 19:31:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 17 Nov 2007 19:31:00 -0000 Subject: [SCM] master: Mark testHpdBreakMultiThreaded and testLinuxCoreFileStackTrace as unresolved. Message-ID: <20071117193135.28737.qmail@sourceware.org> The branch, master has been updated via 3693a862c0268989040840a9ce338cf4a761f5d5 (commit) from c91caeb6b58115c176b57e419581084ee067888c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3693a862c0268989040840a9ce338cf4a761f5d5 Author: Andrew Cagney Date: Sat Nov 17 14:29:35 2007 -0500 Mark testHpdBreakMultiThreaded and testLinuxCoreFileStackTrace as unresolved. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * TestBreakpoints.java (testHpdBreakMultiThreaded()): Mark as unresolved, bug 5351. frysk-core/frysk/proc/dead/ChangeLog 2007-11-17 Andrew Cagney * TestLinuxCore.java (testLinuxCoreFileStackTrace()): Mark as unresolved, bug 5353. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/TestBreakpoints.java | 2 ++ frysk-core/frysk/proc/dead/ChangeLog | 5 +++++ frysk-core/frysk/proc/dead/TestLinuxCore.java | 5 +++-- 4 files changed, 15 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index e743c96..d3d48f1 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-17 Andrew Cagney + + * TestBreakpoints.java (testHpdBreakMultiThreaded()): Mark as + unresolved, bug 5351. + 2007-11-16 Rick Moseley * AttachCommand.java: Implement load/run capability. diff --git a/frysk-core/frysk/hpd/TestBreakpoints.java b/frysk-core/frysk/hpd/TestBreakpoints.java index 7527abb..6c1eae2 100644 --- a/frysk-core/frysk/hpd/TestBreakpoints.java +++ b/frysk-core/frysk/hpd/TestBreakpoints.java @@ -113,6 +113,8 @@ public class TestBreakpoints } public void testHpdBreakMultiThreaded() { + if (unresolved(5351)) + return; e = HpdTestbed.run("funit-fib-clone", "3"); // Break e.send("break fib\n"); diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 617b310..9611a8c 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-17 Andrew Cagney + + * TestLinuxCore.java (testLinuxCoreFileStackTrace()): Mark as + unresolved, bug 5353. + 2007-11-15 pmuldoon * TestLinuxCore.java (testLinuxCoreFileStackTrace): Use DaemonBlockedAtSignal. diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index ec376cf..e2022c7 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -134,8 +134,9 @@ public class TestLinuxCore return -1; } - public void testLinuxCoreFileStackTrace () - { + public void testLinuxCoreFileStackTrace () { + if (unresolved(5353)) + return; final Proc ackProc; // = giveMeAProc(); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Nov 17 19:48:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 17 Nov 2007 19:48:00 -0000 Subject: [SCM] master: Re-implement expression completion using ExpressionFactory.complete(...). Message-ID: <20071117194822.30664.qmail@sourceware.org> The branch, master has been updated via 5c771ea53ce8b3c98d3c47d6cc591746fb6d80e4 (commit) via 6f7d47da1af6ab5643be544dff512580aef96314 (commit) via fe41b1056315bbf0c87fbea81895c89784a01c36 (commit) from 3693a862c0268989040840a9ce338cf4a761f5d5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5c771ea53ce8b3c98d3c47d6cc591746fb6d80e4 Author: Andrew Cagney Date: Sat Nov 17 14:41:52 2007 -0500 Re-implement expression completion using ExpressionFactory.complete(...). frysk-core/frysk/debuginfo/ChangeLog 2007-11-17 Andrew Cagney * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Delete. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * CompletionFactory.java (completeExpression(CLI,Input,int,List)): Re-implement using ExpressionFactory.complete(ExprSymTab,String,List) and ObjectDeclarationSearchEngine. commit 6f7d47da1af6ab5643be544dff512580aef96314 Author: Andrew Cagney Date: Sat Nov 17 14:06:09 2007 -0500 Add ExprSymTab.complete(String,List); test. frysk-core/frysk/debuginfo/ChangeLog 2007-11-17 Andrew Cagney * ObjectDeclarationSearchEngine.java (complete(String,List)): New. frysk-core/frysk/expr/ChangeLog 2007-11-17 Andrew Cagney * CompletionException.java (getMessage()): New. * TestCompletion.java (testOneCompletion()): New. (testTwoCompletions()): New. (testNoCompletions()): Replace testNothingToDo(). (complete(String,String[],int)): New. * DetailedAST.java: New. * ExprSymTab.java (complete(String,List)): New. * ScratchSymTab.java (complete(String,List)): New. commit fe41b1056315bbf0c87fbea81895c89784a01c36 Author: Andrew Cagney Date: Fri Nov 16 13:16:53 2007 -0500 Add ExpressionFactory and TestCompletion to frysk.expr. 2007-11-16 Andrew Cagney * TestCompletion.java: New. * ExpressionFactory.java: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 ++ frysk-core/frysk/debuginfo/DebugInfo.java | 46 --------------- .../debuginfo/ObjectDeclarationSearchEngine.java | 24 +++++++- frysk-core/frysk/expr/ChangeLog | 14 +++++ frysk-core/frysk/expr/CompletionException.java | 10 +++- .../{CompletionException.java => DetailedAST.java} | 39 ++++++------- frysk-core/frysk/expr/ExprSymTab.java | 20 ++++++- ...TestArithmetics.java => ExpressionFactory.java} | 51 ++++++++++------- frysk-core/frysk/expr/ScratchSymTab.java | 6 ++- .../TestCompletion.java} | 62 ++++++++++---------- frysk-core/frysk/expr/TestbedSymTab.java | 14 ++++- frysk-core/frysk/hpd/ChangeLog | 5 ++ frysk-core/frysk/hpd/CompletionFactory.java | 11 ++-- 13 files changed, 177 insertions(+), 131 deletions(-) copy frysk-core/frysk/expr/{CompletionException.java => DetailedAST.java} (80%) copy frysk-core/frysk/expr/{TestArithmetics.java => ExpressionFactory.java} (72%) copy frysk-core/frysk/{isa/TestRegisters.java => expr/TestCompletion.java} (61%) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index ebf74ae..b307901 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +2007-11-17 Andrew Cagney + + * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Delete. + + * ObjectDeclarationSearchEngine.java (complete(String,List)): New. + 2007-11-16 Andrew Cagney * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Catch diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index cd17386..9bc2dab 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -48,8 +48,6 @@ import frysk.proc.Proc; import frysk.value.Type; import frysk.value.Value; import java.io.StringReader; -import java.util.Iterator; -import java.util.List; import lib.dwfl.Dwarf; import lib.dwfl.DwarfCommand; import lib.dwfl.DwarfDie; @@ -81,50 +79,6 @@ public class DebugInfo { } } - - /** - * Handle ConsoleReader Completor - * - * @param buffer Input buffer. - * @param cursor Position of TAB in buffer. - * @param candidates List that may complete token. - * @return cursor position in buffer - */ - public int complete (DebugInfoFrame frame, String buffer, int cursor, List candidates) { - long pc = frame.getAdjustedAddress(); - Dwfl dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - String token = ""; - - String sInput = buffer.substring(0, cursor) + '\t' + (cursor < buffer.length() - ? buffer.substring(cursor) : ""); - - sInput += (char)3; - CExprLexer lexer = new CExprLexer(new StringReader(sInput)); - CExprParser parser = new CExprParser(lexer); - try { - parser.start(); - } catch (antlr.RecognitionException ignore) { - // FIXME: Why is this ignored? - } catch (antlr.TokenStreamException ignore) { - // FIXME: Why is this ignored? - } catch (frysk.expr.CompletionException t) { - token = t.getText(); - } - - DwarfDie[] allDies = die.getScopes(pc - bias.bias); - List candidates_p = die.getScopeVarNames(allDies, token); - - for (Iterator i = candidates_p.iterator(); i.hasNext();) { - String sNext = (String) i.next(); - candidates.add(sNext); - } - // XXX: This is a big kludge (but less of a kludge than - // .indexOf. - return buffer.lastIndexOf(token); - } - /** * Get the DwarfDie for a function symbol */ diff --git a/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java b/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java index 9434a7f..62864b0 100644 --- a/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java +++ b/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java @@ -39,12 +39,15 @@ package frysk.debuginfo; +import frysk.dwfl.DwflCache; +import java.util.Iterator; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; - +import lib.dwfl.Dwfl; +import lib.dwfl.DwflDieBias; +import lib.dwfl.DwarfDie; import java.util.LinkedList; import java.util.List; - import frysk.expr.ExprSymTab; import frysk.isa.ISA; import frysk.isa.Register; @@ -132,4 +135,21 @@ public class ObjectDeclarationSearchEngine implements ExprSymTab{ { return task.getISA().wordSize(); } + + /** + * XXX: Who knows if this works; it is certainly not implemented + * correctly as it should use the ObjectDeclaration. + */ + public void complete(String incomplete, List candidates) { + long pc = frame.getAdjustedAddress(); + Dwfl dwfl = DwflCache.getDwfl(frame.getTask()); + DwflDieBias bias = dwfl.getCompilationUnit(pc); + DwarfDie die = bias.die; + DwarfDie[] allDies = die.getScopes(pc - bias.bias); + List candidates_p = die.getScopeVarNames(allDies, incomplete); + for (Iterator i = candidates_p.iterator(); i.hasNext();) { + String sNext = (String) i.next(); + candidates.add(sNext); + } + } } diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 1b9f728..784f33d 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,17 @@ +2007-11-17 Andrew Cagney + + * CompletionException.java (getMessage()): New. + * TestCompletion.java (testOneCompletion()): New. + (testTwoCompletions()): New. + (testNoCompletions()): Replace testNothingToDo(). + (complete(String,String[],int)): New. + * DetailedAST.java: New. + * ExprSymTab.java (complete(String,List)): New. + * ScratchSymTab.java (complete(String,List)): New. + + * TestCompletion.java: New. + * ExpressionFactory.java: New. + 2007-11-16 Andrew Cagney * TabException.java: Delete. diff --git a/frysk-core/frysk/expr/CompletionException.java b/frysk-core/frysk/expr/CompletionException.java index 19aa7a4..56f2ede 100644 --- a/frysk-core/frysk/expr/CompletionException.java +++ b/frysk-core/frysk/expr/CompletionException.java @@ -49,9 +49,14 @@ public class CompletionException extends RuntimeException { static final long serialVersionUID = 1; private final AST ast; CompletionException(AST ast) { - super("completing " + ast); this.ast = ast; } + public String getMessage() { + return ("complete <<" + + getText() + + ">> at " + + getColumn()); + } /** * Return the incomplete string (minus the tab). */ @@ -67,6 +72,7 @@ public class CompletionException extends RuntimeException { return ast.getLine(); } public int getColumn() { - return ast.getColumn(); + // Antlr counts columns starting at 1. + return ast.getColumn() - 1; } } diff --git a/frysk-core/frysk/expr/CompletionException.java b/frysk-core/frysk/expr/DetailedAST.java similarity index 80% copy from frysk-core/frysk/expr/CompletionException.java copy to frysk-core/frysk/expr/DetailedAST.java index 19aa7a4..bfe069a 100644 --- a/frysk-core/frysk/expr/CompletionException.java +++ b/frysk-core/frysk/expr/DetailedAST.java @@ -39,34 +39,31 @@ package frysk.expr; -import antlr.collections.AST; +import antlr.CommonAST; +import antlr.Token; /** - * An incomplete blah. + * An AST that also retains the location of its token. + * + * For what ever reason the default ast doesn't remember the location + * (line/col) of a token. */ -public class CompletionException extends RuntimeException { +public class DetailedAST extends CommonAST { static final long serialVersionUID = 1; - private final AST ast; - CompletionException(AST ast) { - super("completing " + ast); - this.ast = ast; + public DetailedAST() { } - /** - * Return the incomplete string (minus the tab). - */ - public String getText() { - String text = ast.getText(); - int tab = text.indexOf("\t"); - if (tab < 0) - throw new RuntimeException("No tab found in " + ast); - return text.substring(0, tab); - } - // Useful? - public int getLine() { - return ast.getLine(); + private int column; + private int line; + public void initialize(Token t) { + super.initialize(t); + this.column = t.getColumn(); + this.line = t.getLine(); } public int getColumn() { - return ast.getColumn(); + return column; + } + public int getLine() { + return line; } } diff --git a/frysk-core/frysk/expr/ExprSymTab.java b/frysk-core/frysk/expr/ExprSymTab.java index 5f7da6b..eb8e5c2 100644 --- a/frysk-core/frysk/expr/ExprSymTab.java +++ b/frysk-core/frysk/expr/ExprSymTab.java @@ -41,7 +41,7 @@ package frysk.expr; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; - +import java.util.List; import frysk.value.ObjectDeclaration; import frysk.value.Type; import frysk.value.Value; @@ -77,4 +77,22 @@ public interface ExprSymTab * Return the wordsize. */ int getWordSize(); + /** + * Complete the INCOMPLETE named object adding the completed names + * to CANDIDATES. + * + * Assuming a simple symtab containing: "argv", "argc", "main": + * complete "a" returns "argv" + "argc"; complete "main" returns + * "main"; and complete "bogus" returns . + * + * NB: The caller will append a space when there's only one + * completion so that "1+arg\t" expands to "1+argv ". + * + * NB: The caller will sort the list. + * + * XXX: This is subject to change without notice; for instance: + * s/List/Set/ (why jline used List I don't know); addition of a + * scope parameter; ... + */ + void complete(String incomplete, List candidates); } diff --git a/frysk-core/frysk/expr/TestArithmetics.java b/frysk-core/frysk/expr/ExpressionFactory.java similarity index 72% copy from frysk-core/frysk/expr/TestArithmetics.java copy to frysk-core/frysk/expr/ExpressionFactory.java index 5db7d88..65d01bf 100644 --- a/frysk-core/frysk/expr/TestArithmetics.java +++ b/frysk-core/frysk/expr/ExpressionFactory.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007 Red Hat Inc. +// Copyright 2007, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -39,38 +39,47 @@ package frysk.expr; -import frysk.junit.TestCase; -import frysk.value.Value; import java.io.StringReader; -import frysk.expr.ScratchSymTab; +import java.util.List; +import java.util.Collections; -/** - * Scratch is for the case where there isn't any symbols, basic ops - * should still work. +/** + * Create expressions and related stuff. */ -public class TestArithmetics extends TestCase { - private Value eval(String input) { +public class ExpressionFactory { + /** + * Perform TAB completion on the expression. + */ + public static int complete(ExprSymTab symTab, String incomplete, + int offset, List candidates) { try { - input += (char) 3; + String input = (incomplete.substring(0, offset) + + '\t' + + incomplete.substring(offset) + +(char) 3); CExprLexer lexer = new CExprLexer(new StringReader(input)); CExprParser parser = new CExprParser(lexer); + parser.setASTNodeClass(DetailedAST.class.getName()); parser.start(); - ExprSymTab symTab = new ScratchSymTab(); - CExprEvaluator exprEvaluator = new CExprEvaluator(symTab); - return exprEvaluator.expr(parser.getAST()); } catch (antlr.RecognitionException e) { throw new RuntimeException(e); } catch (antlr.TokenStreamException e) { throw new RuntimeException(e); + } catch (IncompleteIdentifierException ident) { + symTab.complete(ident.getText(), candidates); + switch (candidates.size()) { + case 0: + return -1; + case 1: + // Append a space. + candidates.add(0, candidates.remove(0) + " "); + return ident.getColumn(); + default: + Collections.sort(candidates); + return ident.getColumn(); + } } - } - - private void checkExpr(long value, String expr) { - assertEquals(expr, value, eval(expr).asLong()); - } - - public void testAdd() { - checkExpr(3, "1 + 2"); + return -1; // nothing completed. } } diff --git a/frysk-core/frysk/expr/ScratchSymTab.java b/frysk-core/frysk/expr/ScratchSymTab.java index 4df6397..05a3a07 100644 --- a/frysk-core/frysk/expr/ScratchSymTab.java +++ b/frysk-core/frysk/expr/ScratchSymTab.java @@ -41,7 +41,7 @@ package frysk.expr; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; - +import java.util.List; import frysk.Config; import frysk.value.ObjectDeclaration; import frysk.value.Type; @@ -93,4 +93,8 @@ public class ScratchSymTab implements ExprSymTab { // debugger. Required for some expression evaluation. return Config.getWordSize (); } + + public void complete(String incomplete, List candidates) { + return; + } } diff --git a/frysk-core/frysk/isa/TestRegisters.java b/frysk-core/frysk/expr/TestCompletion.java similarity index 61% copy from frysk-core/frysk/isa/TestRegisters.java copy to frysk-core/frysk/expr/TestCompletion.java index 7f6244f..47fbf2a 100644 --- a/frysk-core/frysk/isa/TestRegisters.java +++ b/frysk-core/frysk/expr/TestCompletion.java @@ -37,46 +37,48 @@ // version and license this file solely under the GPL without // exception. -package frysk.isa; +package frysk.expr; import frysk.junit.TestCase; +import java.util.List; +import java.util.LinkedList; -/** - * The set of registers belonging to an ISA. +/** + * Create expressions and related stuff. */ -public class TestRegisters extends TestCase { - private Registers regs; - public void setUp() { - regs = new IA32Registers(); +public class TestCompletion extends TestCase { + private void complete(String incomplete, int offset, + String[] expectedCandidates, int expectedOffset) { + ExprSymTab symTab = new TestbedSymTab(); + List testCandidates = new LinkedList(); + int testOffset = ExpressionFactory.complete(symTab, incomplete, offset, + testCandidates); + assertEquals("candidates", expectedCandidates, + (String[]) testCandidates.toArray(new String[0])); + assertEquals("offset", expectedOffset, testOffset); } - public void tearDown() { - regs = null; + private void complete(String incomplete, String[] expectedCandidates, + int expectedOffset) { + complete(incomplete, incomplete.length(), expectedCandidates, + expectedOffset); } - - public void testGetGroup() { - assertEquals("getGroup", IA32Registers.MMX, - regs.getGroup("mmx")); + public void testNoCompletions() { + complete("bogus", new String[0], -1); } - - public void testGetRegister() { - assertEquals("getGroup", IA32Registers.FS, - regs.getRegister("fs")); + public void testOneCompletion() { + complete("a", new String[] { "a " }, 0); } - - public void testGetGroupNames() { - assertEquals("getGroupNames", - new String[] { "general", "mmx", "sse", "segment", "all" }, - regs.getGroupNames()); + public void testOneLongerCompletion() { + complete("c1", new String[] { "c123 "}, 0); } - - public void testDefaultRegisterGroup() { - assertEquals("getDefaultRegisterGroup", IA32Registers.GENERAL, - regs.getDefaultRegisterGroup()); + public void testTwoCompletions() { + complete("b", new String[] { "b1", "b2" }, 0); } - - public void testAllRegistersGroup() { - assertEquals("getAllRegistersGroup", IA32Registers.ALL, - regs.getAllRegistersGroup()); + public void testCompletionAfterOp() { + complete("a + b", new String[] { "b1", "b2" }, 4); + } + public void testCompletionBeforeOp() { + complete("b + a", 1, new String[] { "b1", "b2" }, 0); } } diff --git a/frysk-core/frysk/expr/TestbedSymTab.java b/frysk-core/frysk/expr/TestbedSymTab.java index 63664c5..a39b2b1 100644 --- a/frysk-core/frysk/expr/TestbedSymTab.java +++ b/frysk-core/frysk/expr/TestbedSymTab.java @@ -39,9 +39,10 @@ package frysk.expr; +import java.util.Iterator; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; - +import java.util.List; import frysk.value.ObjectDeclaration; import frysk.value.Type; import frysk.value.Value; @@ -70,6 +71,9 @@ class TestbedSymTab implements ExprSymTab { TestbedSymTab () { symtab = new HashMap(); symtab.put("a", c1); + symtab.put("b1", c1); + symtab.put("b2", c1); + symtab.put("c123", c1); } /** @@ -117,4 +121,12 @@ class TestbedSymTab implements ExprSymTab { public int getWordSize() { throw new RuntimeException("no word size"); } + + public void complete(String incomplete, List candidates) { + for (Iterator i = symtab.keySet().iterator(); i.hasNext(); ) { + String sym = (String)i.next(); + if (sym.startsWith(incomplete)) + candidates.add(sym); + } + } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Nov 18 00:20:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 18 Nov 2007 00:20:00 -0000 Subject: [SCM] master: Use Expression in DebugInfo; simplify. Message-ID: <20071118002042.20739.qmail@sourceware.org> The branch, master has been updated via 8895957a8e291f3aa8103be5ea07a6fd44048561 (commit) via 5d3e7d0651efd963e11ab6d77fa9418cecdf9c29 (commit) via f230b8b7febc14c739bb70954b32ee1c9a67f540 (commit) from 5c771ea53ce8b3c98d3c47d6cc591746fb6d80e4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8895957a8e291f3aa8103be5ea07a6fd44048561 Author: Andrew Cagney Date: Sat Nov 17 19:18:05 2007 -0500 Use Expression in DebugInfo; simplify. frysk-core/frysk/debuginfo/ChangeLog 2007-11-17 Andrew Cagney * DebugInfo.java (printNoSymbolTable(String,boolean)): Delete. (print(String,DebugInfoFrame,boolean)): Delete. (print(String,DebugInfoFrame)): Re-implement using Expression. * gen-type-expect-tests.py (j.prologue): Update. commit 5d3e7d0651efd963e11ab6d77fa9418cecdf9c29 Author: Andrew Cagney Date: Sat Nov 17 18:50:52 2007 -0500 Change hpd to use frysk.expr.Expression. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * CLI.java (parseValue(Task,String,boolean)): Delete. (parseValue(Task,String)): Delete. (parseExpression(Task,String)): New. * DisassembleCommand.java: Update. * EvalCommands.java: Update. * ExamineCommand.java: Update. * PlocationCommand.java: Update. * PtypeCommand.java: Update. * TestPtypeCommand.java: Update. commit f230b8b7febc14c739bb70954b32ee1c9a67f540 Author: Andrew Cagney Date: Sat Nov 17 17:51:38 2007 -0500 Add Expression, encapsulates the parse tree from parsing an expression string. frysk-core/frysk/expr/ChangeLog 2007-11-17 Andrew Cagney * TestArithmetics.java (eval(String)): Use Expression. * ExpressionFactory.java (parse(ExprSymTab,String)): New. * Expression.java: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 + frysk-core/frysk/debuginfo/DebugInfo.java | 98 +------------------ .../frysk/debuginfo/gen-type-expect-tests.py | 2 +- frysk-core/frysk/expr/ChangeLog | 4 + .../{CompletionException.java => Expression.java} | 62 ++++++++----- frysk-core/frysk/expr/ExpressionFactory.java | 18 ++++ frysk-core/frysk/expr/TestArithmetics.java | 16 +--- frysk-core/frysk/hpd/CLI.java | 27 +++--- frysk-core/frysk/hpd/ChangeLog | 10 ++ frysk-core/frysk/hpd/DisassembleCommand.java | 9 +- frysk-core/frysk/hpd/EvalCommands.java | 30 ++++--- frysk-core/frysk/hpd/ExamineCommand.java | 10 +- frysk-core/frysk/hpd/PlocationCommand.java | 13 +-- frysk-core/frysk/hpd/PtypeCommand.java | 17 +-- frysk-core/frysk/hpd/TestPtypeCommand.java | 4 +- 15 files changed, 142 insertions(+), 183 deletions(-) copy frysk-core/frysk/expr/{CompletionException.java => Expression.java} (66%) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index b307901..b21149f 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,5 +1,10 @@ 2007-11-17 Andrew Cagney + * DebugInfo.java (printNoSymbolTable(String,boolean)): Delete. + (print(String,DebugInfoFrame,boolean)): Delete. + (print(String,DebugInfoFrame)): Re-implement using Expression. + * gen-type-expect-tests.py (j.prologue): Update. + * DebugInfo.java (complete(DebugInfoFrame,String,int,List)): Delete. * ObjectDeclarationSearchEngine.java (complete(String,List)): New. diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index 9bc2dab..12e817c 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -36,18 +36,14 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. + package frysk.debuginfo; -import antlr.collections.AST; +import frysk.expr.ExpressionFactory; import frysk.dwfl.DwflCache; -import frysk.expr.CExprLexer; -import frysk.expr.CExprParser; -import frysk.expr.ExprSymTab; -import frysk.expr.CExprEvaluator; import frysk.proc.Proc; import frysk.value.Type; import frysk.value.Value; -import java.io.StringReader; import lib.dwfl.Dwarf; import lib.dwfl.DwarfCommand; import lib.dwfl.DwarfDie; @@ -58,7 +54,6 @@ import lib.dwfl.DwAt; import lib.dwfl.DwflDieBias; import lib.dwfl.Elf; import lib.dwfl.ElfCommand; -import frysk.expr.ScratchSymTab; public class DebugInfo { private Elf elf; @@ -150,92 +145,11 @@ public class DebugInfo { /** * Implement the cli print request. - * - * @param sInput - * @return Variable */ - public Value print (String sInput, DebugInfoFrame frame) { - return print (sInput, frame, false); - } - - public Value print (String sInput, DebugInfoFrame frame, boolean dumpTree) { - Value result = null; - sInput += (char) 3; - - CExprLexer lexer = new CExprLexer(new StringReader(sInput)); - CExprParser parser = new CExprParser(lexer); - try { - parser.start(); - } catch (antlr.RecognitionException r) { - throw new RuntimeException(r); - } catch (antlr.TokenStreamException t) { - throw new RuntimeException(t); - } - - AST exprAST = parser.getAST(); - if (dumpTree) - System.out.println("parse tree: " + exprAST.toStringTree()); - CExprEvaluator cExprEvaluator; - /* - * If this request has come from the SourceWindow, there's no way to - * know which thread the mouse request came from; if there are multiple - * innermost frames of multiple threads in the same source file, than - * all of the threads have to be checked. If there's only one thread; - * than this loop will run only once anyways. - */ - ObjectDeclarationSearchEngine declarationSearchEngine = new ObjectDeclarationSearchEngine(frame); - cExprEvaluator = new CExprEvaluator(declarationSearchEngine); - try { - result = cExprEvaluator.expr(exprAST); - } catch (ArithmeticException ae) { - ae.printStackTrace(); - throw ae; - } catch (antlr.RecognitionException r) { - throw new RuntimeException(r); - } catch (frysk.value.InvalidOperatorException i) { - throw new RuntimeException(i); - } catch (frysk.value.OperationNotDefinedException o) { - throw new RuntimeException(o); - } - - return result; + public Value print(String expression, DebugInfoFrame frame) { + ObjectDeclarationSearchEngine symTab + = new ObjectDeclarationSearchEngine(frame); + return ExpressionFactory.parse(symTab, expression).getValue(); } - static public Value printNoSymbolTable (String sInput, boolean dump_tree) { - Value result = null; - sInput += (char) 3; - - CExprLexer lexer = new CExprLexer(new StringReader(sInput)); - CExprParser parser = new CExprParser(lexer); - try { - parser.start(); - } catch (antlr.RecognitionException r) { - throw new RuntimeException(r); - } catch (antlr.TokenStreamException t) { - throw new RuntimeException(t); - } - - AST t = parser.getAST(); - if (dump_tree) - // Print the resulting tree out in LISP notation - System.out.println("parse tree: " + t.toStringTree()); - CExprEvaluator cExprEvaluator; - ExprSymTab tmpSymTab = new ScratchSymTab(); - cExprEvaluator = new CExprEvaluator(tmpSymTab); - - try { - result = cExprEvaluator.expr(t); - } catch (ArithmeticException ae) { - ae.printStackTrace(); - throw ae; - } catch (antlr.RecognitionException r) { - throw new RuntimeException(r); - } catch (frysk.value.InvalidOperatorException i) { - throw new RuntimeException(i); - } catch (frysk.value.OperationNotDefinedException o) { - throw new RuntimeException(o); - } - - return result; - } } diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index b73d7ff..caf26d5 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -136,7 +136,7 @@ public class %s extends TestLib { System.out.println("Error: Cannot find " + expect[i].symbol); assertNotNull(varDie); DebugInfo debugInfo = new DebugInfo(frame); - Value value = debugInfo.print(expect[i].symbol, frame, false); + Value value = debugInfo.print(expect[i].symbol, frame); value.toPrint(pw, task.getMemory(), Format.NATURAL); pw.flush(); String valueString = baos.toString(); diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 784f33d..431c6b8 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,5 +1,9 @@ 2007-11-17 Andrew Cagney + * TestArithmetics.java (eval(String)): Use Expression. + * ExpressionFactory.java (parse(ExprSymTab,String)): New. + * Expression.java: New. + * CompletionException.java (getMessage()): New. * TestCompletion.java (testOneCompletion()): New. (testTwoCompletions()): New. diff --git a/frysk-core/frysk/expr/CompletionException.java b/frysk-core/frysk/expr/Expression.java similarity index 66% copy from frysk-core/frysk/expr/CompletionException.java copy to frysk-core/frysk/expr/Expression.java index 56f2ede..1196026 100644 --- a/frysk-core/frysk/expr/CompletionException.java +++ b/frysk-core/frysk/expr/Expression.java @@ -40,39 +40,57 @@ package frysk.expr; import antlr.collections.AST; +import java.io.PrintWriter; +import frysk.value.Type; +import frysk.value.Value; +import frysk.value.Location; /** - * An incomplete blah. + * An expression (well actually the expression tree). */ -public class CompletionException extends RuntimeException { - static final long serialVersionUID = 1; +public class Expression { + private final ExprSymTab symTab; private final AST ast; - CompletionException(AST ast) { + Expression(ExprSymTab symTab, AST ast) { + this.symTab = symTab; this.ast = ast; } - public String getMessage() { - return ("complete <<" - + getText() - + ">> at " - + getColumn()); + + /** + * Print the expression tree. + */ + public void toPrint(PrintWriter writer) { + writer.print(ast.toStringTree()); } + /** - * Return the incomplete string (minus the tab). + * Evaluate the expression returning the result's Value. This may + * have side effects - modifying the inferior. */ - public String getText() { - String text = ast.getText(); - int tab = text.indexOf("\t"); - if (tab < 0) - throw new RuntimeException("No tab found in " + ast); - return text.substring(0, tab); + public Value getValue() { + try { + return new CExprEvaluator(symTab).expr(ast); + } catch (antlr.RecognitionException r) { + throw new RuntimeException(r); + } } - // Useful? - public int getLine() { - return ast.getLine(); + + /** + * Determine the expressions result type. + */ + public Type getType() { + // XXX: Fixme; should be walking the tree, not evaluating the + // expresision. + return getValue().getType(); } - public int getColumn() { - // Antlr counts columns starting at 1. - return ast.getColumn() - 1; + + /** + * Return the expression's location. + */ + public Location getLocation() { + // XXX: should this walk the tree recording each required + // location? + return getValue().getLocation(); } } diff --git a/frysk-core/frysk/expr/ExpressionFactory.java b/frysk-core/frysk/expr/ExpressionFactory.java index 65d01bf..16fb8f1 100644 --- a/frysk-core/frysk/expr/ExpressionFactory.java +++ b/frysk-core/frysk/expr/ExpressionFactory.java @@ -82,4 +82,22 @@ public class ExpressionFactory { } return -1; // nothing completed. } + + + /** + * Parse the string, returning an expression. + */ + public static Expression parse(ExprSymTab symTab, String expression) { + try { + String input = expression + (char)3; + CExprParser parser + = new CExprParser(new CExprLexer(new StringReader(input))); + parser.start(); + return new Expression(symTab, parser.getAST()); + } catch (antlr.RecognitionException r) { + throw new RuntimeException(r); + } catch (antlr.TokenStreamException t) { + throw new RuntimeException(t); + } + } } diff --git a/frysk-core/frysk/expr/TestArithmetics.java b/frysk-core/frysk/expr/TestArithmetics.java index 5db7d88..d70eac3 100644 --- a/frysk-core/frysk/expr/TestArithmetics.java +++ b/frysk-core/frysk/expr/TestArithmetics.java @@ -41,7 +41,6 @@ package frysk.expr; import frysk.junit.TestCase; import frysk.value.Value; -import java.io.StringReader; import frysk.expr.ScratchSymTab; /** @@ -51,19 +50,8 @@ import frysk.expr.ScratchSymTab; public class TestArithmetics extends TestCase { private Value eval(String input) { - try { - input += (char) 3; - CExprLexer lexer = new CExprLexer(new StringReader(input)); - CExprParser parser = new CExprParser(lexer); - parser.start(); - ExprSymTab symTab = new ScratchSymTab(); - CExprEvaluator exprEvaluator = new CExprEvaluator(symTab); - return exprEvaluator.expr(parser.getAST()); - } catch (antlr.RecognitionException e) { - throw new RuntimeException(e); - } catch (antlr.TokenStreamException e) { - throw new RuntimeException(e); - } + ExprSymTab symTab = new ScratchSymTab(); + return ExpressionFactory.parse(symTab, input).getValue(); } private void checkExpr(long value, String expr) { diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 2134399..c996366 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -39,6 +39,7 @@ package frysk.hpd; +import frysk.debuginfo.ObjectDeclarationSearchEngine; import java.io.PrintStream; import java.io.PrintWriter; import java.util.HashMap; @@ -59,7 +60,10 @@ import frysk.rt.ProcTaskIDManager; import frysk.stepping.SteppingEngine; import frysk.stepping.TaskStepEngine; import frysk.util.CountDownLatch; -import frysk.value.Value; +import frysk.expr.Expression; +import frysk.expr.ScratchSymTab; +import frysk.expr.ExprSymTab; +import frysk.expr.ExpressionFactory; public class CLI { ProcTaskIDManager idManager; @@ -185,18 +189,15 @@ public class CLI { /* * Public methods */ - - Value parseValue(Task task, String value) { - return parseValue(task, value, false); - } - - Value parseValue(Task task, String value, boolean dumpTree) { - DebugInfoFrame frame = getTaskFrame(task); - DebugInfo debugInfo = getTaskDebugInfo(task); - if (debugInfo != null) - return debugInfo.print(value, frame, dumpTree); - else - return DebugInfo.printNoSymbolTable(value, dumpTree); + Expression parseExpression(Task task, String expression) { + ExprSymTab symTab; + if (task == null) { + symTab = new ScratchSymTab(); + } else { + DebugInfoFrame frame = getTaskFrame(task); + symTab = new ObjectDeclarationSearchEngine(frame); + } + return ExpressionFactory.parse(symTab, expression); } /** diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index aa2b302..a2532f0 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,15 @@ 2007-11-17 Andrew Cagney + * CLI.java (parseValue(Task,String,boolean)): Delete. + (parseValue(Task,String)): Delete. + (parseExpression(Task,String)): New. + * DisassembleCommand.java: Update. + * EvalCommands.java: Update. + * ExamineCommand.java: Update. + * PlocationCommand.java: Update. + * PtypeCommand.java: Update. + * TestPtypeCommand.java: Update. + * CompletionFactory.java (completeExpression(CLI,Input,int,List)): Re-implement using ExpressionFactory.complete(ExprSymTab,String,List) and diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index 8cc0eef..207c53e 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -116,7 +116,8 @@ public class DisassembleCommand extends ParameterizedCommand { if (cmd.size() == 1) { try { currentInstruction - = cli.parseValue(task, cmd.parameter(0)).asLong(); + = cli.parseExpression(task, cmd.parameter(0)) + .getValue().asLong(); symbol = SymbolFactory.getSymbol(task, currentInstruction); } catch (RuntimeException nnfe) { cli.addMessage(new Message(nnfe.getMessage(), @@ -127,9 +128,11 @@ public class DisassembleCommand extends ParameterizedCommand { long startInstruction, endInstruction; try { startInstruction - = cli.parseValue(task, cmd.parameter(0)).asLong(); + = cli.parseExpression(task, cmd.parameter(0)) + .getValue().asLong(); endInstruction - = cli.parseValue(task, cmd.parameter(1)).asLong(); + = cli.parseExpression(task, cmd.parameter(1)) + .getValue().asLong(); } catch (RuntimeException nnfe) { cli.addMessage(new Message(nnfe.getMessage(), Message.TYPE_ERROR)); diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index ada61ce..98b83cc 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -42,10 +42,10 @@ package frysk.hpd; import frysk.value.Format; import java.util.Iterator; import frysk.proc.Task; -import frysk.value.Value; import frysk.value.PointerType; import frysk.value.Type; import java.util.List; +import frysk.expr.Expression; /** * Evaluate an expression; in various forms. @@ -82,7 +82,6 @@ abstract class EvalCommands extends ParameterizedCommand { Options options) { if (expression.equals("")) throw new InvalidCommandException("missing expression"); - Value result = null; Iterator taskDataIter = ptset.getTaskData(); do { Task task = null; @@ -92,23 +91,28 @@ abstract class EvalCommands extends ParameterizedCommand { td.toPrint(cli.outWriter, true); cli.outWriter.println(); } + Expression result; try { - result = cli.parseValue(task, expression, options.dumpTree); + result = cli.parseExpression(task, expression); } catch (RuntimeException e) { cli.outWriter.println(); cli.printError(e); continue; } - - Type t = result.getType(); - if (t instanceof PointerType) { - cli.outWriter.print("("); - t.toPrint(cli.outWriter); - cli.outWriter.print(") "); - } - result.toPrint(cli.outWriter, - task == null ? null : task.getMemory(), - options.format); + if (options.dumpTree) { + result.toPrint(cli.outWriter); + } else { + Type t = result.getType(); + if (t instanceof PointerType) { + cli.outWriter.print("("); + t.toPrint(cli.outWriter); + cli.outWriter.print(") "); + } + result.getValue() + .toPrint(cli.outWriter, + task == null ? null : task.getMemory(), + options.format); + } cli.outWriter.println(); } while (taskDataIter.hasNext()); } diff --git a/frysk-core/frysk/hpd/ExamineCommand.java b/frysk-core/frysk/hpd/ExamineCommand.java index 0bdb7ca..be1952e 100644 --- a/frysk-core/frysk/hpd/ExamineCommand.java +++ b/frysk-core/frysk/hpd/ExamineCommand.java @@ -55,22 +55,22 @@ public class ExamineCommand extends ParameterizedCommand { if (cmd.size() == 0) { throw new InvalidCommandException("No value to examine"); } - Value value; Iterator taskDataIter = ptset.getTaskData(); while (taskDataIter.hasNext()) { TaskData tdata = (TaskData) taskDataIter.next(); + tdata.toPrint(cli.outWriter, true); + cli.outWriter.println(); + Value value; try { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Nov 18 02:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 18 Nov 2007 02:05:00 -0000 Subject: [SCM] master: Implement: print (*(&a_struct)). Message-ID: <20071118020519.21361.qmail@sourceware.org> The branch, master has been updated via 5322772f56b85e995df7bf5b6833ea1230f2492e (commit) via 7b64c9967f5cd2aaf2dc62aa473f7984da6dbff6 (commit) from 8895957a8e291f3aa8103be5ea07a6fd44048561 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5322772f56b85e995df7bf5b6833ea1230f2492e Author: Andrew Cagney Date: Sat Nov 17 21:03:35 2007 -0500 Implement: print (*(&a_struct)). frysk-core/frysk/expr/ChangeLog 2007-11-17 Andrew Cagney * IncompleteMemberException.java (complete(ExprSymTab,List)): Implement. frysk-core/frysk/value/ChangeLog 2007-11-17 Andrew Cagney * CompositeType.java (complete(String,List)): New. * Type.java (complete(String,List)): New. commit 7b64c9967f5cd2aaf2dc62aa473f7984da6dbff6 Author: Andrew Cagney Date: Sat Nov 17 20:30:36 2007 -0500 Detect more tab-completion cases in C expression parser. frysk-core/frysk/expr/ChangeLog 2007-11-17 Andrew Cagney * IncompleteTokenException.java (complete(ExprSymTab,List)): New. * CompletionException.java (complete(ExprSymTab,List)): Abstract. (getMessage()): Delete. * IncompleteIdentifierException.java (getMessage()): New. (complete(ExprSymTab,List)): New. * IncompleteMemberException.java (IncompleteMemberException(AST,AST)): Replace IncompleteMemberException(AST). (complete(ExprSymTab,List)): New. * IncompleteScopeException.java: New. * CExpr.g (postfix_expression): Recognize "foo.", "foo->". (scope_expression): Recognize "::", and "::foo::". (identifier): Delete. * TestCompletion.java (testCompleteStructMember()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExpr.g | 63 +++++++++++--------- frysk-core/frysk/expr/ChangeLog | 18 ++++++ frysk-core/frysk/expr/CompletionException.java | 19 +++--- frysk-core/frysk/expr/ExpressionFactory.java | 15 ++--- .../frysk/expr/IncompleteIdentifierException.java | 15 +++++ .../frysk/expr/IncompleteMemberException.java | 19 ++++++- ...xception.java => IncompleteScopeException.java} | 13 +++- .../frysk/expr/IncompleteTokenException.java | 4 + frysk-core/frysk/expr/TestCompletion.java | 3 + frysk-core/frysk/value/ChangeLog | 5 ++ frysk-core/frysk/value/CompositeType.java | 13 ++++ frysk-core/frysk/value/Type.java | 10 +++- 12 files changed, 142 insertions(+), 55 deletions(-) copy frysk-core/frysk/expr/{IncompleteIdentifierException.java => IncompleteScopeException.java} (90%) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index 58a0dbc..3ed9860 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -305,28 +305,30 @@ cast_expression! ; postfix_expression! - { AST astPostExpr = null; - } - :( sc_expr: scope_expression - { astPostExpr = #sc_expr; - } - ( - DOT id_expr1:identifier - { astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #id_expr1); - } - | POINTERTO id_expr2:identifier - { astPostExpr = #(#[MEMORY, "Memory"], #astPostExpr); - astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #id_expr2); - } - // FIX ME - | LSQUARE arrExpr1:expressionList RSQUARE + { AST astPostExpr = null; } + : ( sc_expr: scope_expression { astPostExpr = #sc_expr; } + ( DOT + ( IDENT_TAB { throw new IncompleteMemberException(#astPostExpr, + #IDENT_TAB); } + | id_expr1:IDENT { astPostExpr = #(#[MEMBER, "Member"], + #astPostExpr, #id_expr1); } + ) + | POINTERTO + ( IDENT_TAB { throw new IncompleteMemberException(#astPostExpr, + #IDENT_TAB); } + | id_expr2:IDENT { astPostExpr = #(#[MEMORY, "Memory"], + #astPostExpr); + astPostExpr = #(#[MEMBER, "Member"], + #astPostExpr, #id_expr2); } + ) + | LSQUARE arrExpr1:expressionList RSQUARE { astPostExpr = #(#[INDEX, "Index"], #astPostExpr, #arrExpr1); } - | LPAREN! expressionList RPAREN! - | PLUSPLUS + | LPAREN! expressionList RPAREN! + | PLUSPLUS { astPostExpr = #(PLUSPLUS, #astPostExpr); } - | MINUSMINUS + | MINUSMINUS { astPostExpr = #(MINUSMINUS, #astPostExpr); } )* @@ -339,20 +341,23 @@ postfix_expression! * This enables auto-completion by allowing the user * to press TAB whenever auto-completion is required */ - scope_expression - : identifier (SCOPE identifier)* - | IDENT_TAB { throw new IncompleteIdentifierException(#IDENT_TAB); } - | SCOPE identifier - | LPAREN! expressionList RPAREN! - | constant - | "this" + : IDENT + ( SCOPE + ( IDENT + | IDENT_TAB { throw new IncompleteScopeException(#IDENT_TAB); } + ) + )* + | IDENT_TAB { throw new IncompleteIdentifierException(#IDENT_TAB); } + | SCOPE + ( IDENT + | IDENT_TAB { throw new IncompleteScopeException(#IDENT_TAB); } + ) + | LPAREN! expressionList RPAREN! + | constant + | "this" ; -identifier - : ident:IDENT - ; - primitiveType : "boolean" | "char" diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 431c6b8..1908f5d 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,5 +1,23 @@ 2007-11-17 Andrew Cagney + * IncompleteMemberException.java (complete(ExprSymTab,List)): + Implement. + + * IncompleteTokenException.java (complete(ExprSymTab,List)): New. + * CompletionException.java (complete(ExprSymTab,List)): Abstract. + (getMessage()): Delete. + * IncompleteIdentifierException.java (getMessage()): New. + (complete(ExprSymTab,List)): New. + * IncompleteMemberException.java + (IncompleteMemberException(AST,AST)): Replace + IncompleteMemberException(AST). + (complete(ExprSymTab,List)): New. + * IncompleteScopeException.java: New. + * CExpr.g (postfix_expression): Recognize "foo.", "foo->". + (scope_expression): Recognize "::", and "::foo::". + (identifier): Delete. + * TestCompletion.java (testCompleteStructMember()): New. + * TestArithmetics.java (eval(String)): Use Expression. * ExpressionFactory.java (parse(ExprSymTab,String)): New. * Expression.java: New. diff --git a/frysk-core/frysk/expr/CompletionException.java b/frysk-core/frysk/expr/CompletionException.java index 56f2ede..c239f2b 100644 --- a/frysk-core/frysk/expr/CompletionException.java +++ b/frysk-core/frysk/expr/CompletionException.java @@ -40,27 +40,26 @@ package frysk.expr; import antlr.collections.AST; +import java.util.List; /** * An incomplete blah. */ -public class CompletionException extends RuntimeException { +abstract class CompletionException extends RuntimeException { static final long serialVersionUID = 1; private final AST ast; CompletionException(AST ast) { this.ast = ast; } - public String getMessage() { - return ("complete <<" - + getText() - + ">> at " - + getColumn()); - } + /** + * Complete the value using the symbol table. + */ + abstract int complete(ExprSymTab symTab, List candidates); /** * Return the incomplete string (minus the tab). */ - public String getText() { + String getText() { String text = ast.getText(); int tab = text.indexOf("\t"); if (tab < 0) @@ -68,10 +67,10 @@ public class CompletionException extends RuntimeException { return text.substring(0, tab); } // Useful? - public int getLine() { + int getLine() { return ast.getLine(); } - public int getColumn() { + int getColumn() { // Antlr counts columns starting at 1. return ast.getColumn() - 1; } diff --git a/frysk-core/frysk/expr/ExpressionFactory.java b/frysk-core/frysk/expr/ExpressionFactory.java index 16fb8f1..879f399 100644 --- a/frysk-core/frysk/expr/ExpressionFactory.java +++ b/frysk-core/frysk/expr/ExpressionFactory.java @@ -66,19 +66,14 @@ public class ExpressionFactory { throw new RuntimeException(e); } catch (antlr.TokenStreamException e) { throw new RuntimeException(e); - } catch (IncompleteIdentifierException ident) { - symTab.complete(ident.getText(), candidates); - switch (candidates.size()) { - case 0: - return -1; - case 1: + } catch (CompletionException e) { + int newOffset = e.complete(symTab, candidates); + Collections.sort(candidates); + if (candidates.size() == 1) { // Append a space. candidates.add(0, candidates.remove(0) + " "); - return ident.getColumn(); - default: - Collections.sort(candidates); - return ident.getColumn(); } + return newOffset; } return -1; // nothing completed. } diff --git a/frysk-core/frysk/expr/IncompleteIdentifierException.java b/frysk-core/frysk/expr/IncompleteIdentifierException.java index 0d4fc82..fa8ad68 100644 --- a/frysk-core/frysk/expr/IncompleteIdentifierException.java +++ b/frysk-core/frysk/expr/IncompleteIdentifierException.java @@ -40,6 +40,7 @@ package frysk.expr; import antlr.collections.AST; +import java.util.List; /** * An incomplete identifier; e.g.: foo @@ -49,4 +50,18 @@ class IncompleteIdentifierException extends CompletionException { IncompleteIdentifierException(AST identifier) { super(identifier); } + public String getMessage() { + return ("complete identifier <<" + + getText() + + ">> at " + + getColumn() + ); + } + int complete(ExprSymTab symTab, List candidates) { + symTab.complete(getText(), candidates); + if (candidates.size() == 0) + return -1; + else + return getColumn(); + } } diff --git a/frysk-core/frysk/expr/IncompleteMemberException.java b/frysk-core/frysk/expr/IncompleteMemberException.java index fc093d5..adda314 100644 --- a/frysk-core/frysk/expr/IncompleteMemberException.java +++ b/frysk-core/frysk/expr/IncompleteMemberException.java @@ -40,13 +40,30 @@ package frysk.expr; import antlr.collections.AST; +import java.util.List; /** * An incomplete field member; e.g.: structure.field */ class IncompleteMemberException extends CompletionException { static final long serialVersionUID = 1; - IncompleteMemberException(AST member) { + private final AST expression; + IncompleteMemberException(AST expression, AST member) { super(member); + this.expression = expression; + } + public String getMessage() { + return ("complete <<" + + expression.toStringTree() + + ">> . <<" + + getText() + + ">>"); + } + int complete(ExprSymTab symTab, List candidates) { + if (new Expression(symTab, expression) + .getType().complete(getText(),candidates)) + return getColumn(); + else + return -1; } } diff --git a/frysk-core/frysk/expr/IncompleteIdentifierException.java b/frysk-core/frysk/expr/IncompleteScopeException.java similarity index 90% copy from frysk-core/frysk/expr/IncompleteIdentifierException.java copy to frysk-core/frysk/expr/IncompleteScopeException.java index 0d4fc82..8ee069b 100644 --- a/frysk-core/frysk/expr/IncompleteIdentifierException.java +++ b/frysk-core/frysk/expr/IncompleteScopeException.java @@ -40,13 +40,18 @@ package frysk.expr; import antlr.collections.AST; +import java.util.List; /** - * An incomplete identifier; e.g.: foo + * An incomplete blah. */ -class IncompleteIdentifierException extends CompletionException { + +class IncompleteScopeException extends CompletionException { static final long serialVersionUID = 1; - IncompleteIdentifierException(AST identifier) { - super(identifier); + IncompleteScopeException(AST ast) { + super(ast); + } + int complete(ExprSymTab symTab, List list) { + return -1; } } diff --git a/frysk-core/frysk/expr/IncompleteTokenException.java b/frysk-core/frysk/expr/IncompleteTokenException.java index 9c2a1cb..f5c8675 100644 --- a/frysk-core/frysk/expr/IncompleteTokenException.java +++ b/frysk-core/frysk/expr/IncompleteTokenException.java @@ -40,6 +40,7 @@ package frysk.expr; import antlr.collections.AST; +import java.util.List; /** * An incomplete token; e.g.: : @@ -49,4 +50,7 @@ class IncompleteTokenException extends CompletionException { IncompleteTokenException(AST token) { super(token); } + int complete(ExprSymTab symTab, List candidates) { + return -1; + } } diff --git a/frysk-core/frysk/expr/TestCompletion.java b/frysk-core/frysk/expr/TestCompletion.java index 47fbf2a..872ee6c 100644 --- a/frysk-core/frysk/expr/TestCompletion.java +++ b/frysk-core/frysk/expr/TestCompletion.java @@ -81,4 +81,7 @@ public class TestCompletion extends TestCase { public void testCompletionBeforeOp() { complete("b + a", 1, new String[] { "b1", "b2" }, 0); } + public void testCompleteStructMember() { + complete("a.", new String[] { "alpha", "beta", "epsilon", "gamma", "iota" }, 2); + } } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 9265646..5cbf1f0 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-17 Andrew Cagney + + * CompositeType.java (complete(String,List)): New. + * Type.java (complete(String,List)): New. + 2007-11-15 Teresa Thomas * ArithmeticUnit.java (getLogicalValue): Delete diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 04c6230..2669fd4 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -41,6 +41,7 @@ package frysk.value; import inua.eio.ByteBuffer; import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.HashMap; import java.util.Iterator; @@ -388,4 +389,16 @@ public abstract class CompositeType throw new RuntimeException("Invalid data member: " + member); return mem.getValue (var1); } + + public boolean complete(String incomplete, List candidates) { + int completions = 0; + for (Iterator i = nameToMember.keySet().iterator(); i.hasNext(); ) { + String member = (String)i.next(); + if (member.startsWith(incomplete)) { + completions++; + candidates.add(member); + } + } + return completions > 0; + } } diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index 9bea6cb..e69561a 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -41,7 +41,7 @@ package frysk.value; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; - +import java.util.List; import java.io.PrintWriter; import java.io.StringWriter; @@ -196,4 +196,12 @@ public abstract class Type { public Type pack(int bitSize, int bitOffset) { throw new InvalidOperatorException(this, "pack"); } + + /** + * Complete the specified string; return false if nothing + * completed. + */ + public boolean complete(String incomplete, List candidates) { + return false; + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Nov 18 02:53:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 18 Nov 2007 02:53:00 -0000 Subject: [SCM] master: Eliminate CommandHelp. Message-ID: <20071118025355.19077.qmail@sourceware.org> The branch, master has been updated via b3adba000519e004a2de1f4094fa7628c17fe3cf (commit) via 47742cfcab2ab02dc1e2e4aca649974036690a9f (commit) from 5322772f56b85e995df7bf5b6833ea1230f2492e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b3adba000519e004a2de1f4094fa7628c17fe3cf Author: Andrew Cagney Date: Sat Nov 17 21:52:19 2007 -0500 Eliminate CommandHelp. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * CommandHelp.java: Delete. * Command.java (getHelp()): Delete. (help): Delete. commit 47742cfcab2ab02dc1e2e4aca649974036690a9f Author: Andrew Cagney Date: Sat Nov 17 21:40:07 2007 -0500 Check all top-level commands exist. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * TestHelp.java (topLevel): New. (testHelp()): Use. (testBlankCompletion()): New. (setUp()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 9 +++ frysk-core/frysk/hpd/Command.java | 18 +++--- frysk-core/frysk/hpd/CommandHelp.java | 81 ------------------------------ frysk-core/frysk/hpd/TestHelp.java | 87 +++++++++++++++++++++++++++----- 4 files changed, 91 insertions(+), 104 deletions(-) delete mode 100644 frysk-core/frysk/hpd/CommandHelp.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index a2532f0..e5dd9e4 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,14 @@ 2007-11-17 Andrew Cagney + * CommandHelp.java: Delete. + * Command.java (getHelp()): Delete. + (help): Delete. + + * TestHelp.java (topLevel): New. + (testHelp()): Use. + (testBlankCompletion()): New. + (setUp()): New. + * CLI.java (parseValue(Task,String,boolean)): Delete. (parseValue(Task,String)): Delete. (parseExpression(Task,String)): New. diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java index aa55f78..2a09e55 100644 --- a/frysk-core/frysk/hpd/Command.java +++ b/frysk-core/frysk/hpd/Command.java @@ -46,12 +46,10 @@ import java.util.List; */ public abstract class Command { - private final CommandHelp help; private final String name; - - public CommandHelp getHelp() { - return help; - } + private final String description; + private final String syntax; + private final String full; public String getName() { return name; @@ -59,7 +57,9 @@ public abstract class Command { Command (String name, String description, String syntax, String full) { this.name = name; - this.help = new CommandHelp(name, description, syntax, full); + this.description = description; + this.syntax = syntax; + this.full = full; } public abstract void interpret(CLI cli, Input cmd); @@ -79,9 +79,9 @@ public abstract class Command { */ void help(CLI cli, Input buffer) { cli.outWriter.print("Usage: "); - cli.outWriter.print(help.getSyntax()); + cli.outWriter.print(syntax); cli.outWriter.println(); - cli.outWriter.print(help.getFull()); + cli.outWriter.print(full); cli.outWriter.println(); } @@ -89,6 +89,6 @@ public abstract class Command { * Return a brief (one line) description of the command. */ String description() { - return help.getDescription(); + return description; } } diff --git a/frysk-core/frysk/hpd/CommandHelp.java b/frysk-core/frysk/hpd/CommandHelp.java deleted file mode 100644 index 8aff9ea..0000000 --- a/frysk-core/frysk/hpd/CommandHelp.java +++ /dev/null @@ -1,81 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. -package frysk.hpd; - -class CommandHelp -{ - String cmd; - String descr; - String syntax; - String full; - - CommandHelp(String cmd, String descr, String syntax, String full) - { - this.cmd = cmd; - this.descr = descr; - this.syntax = syntax; - this.full = full; - } - - String getCommand() - { - return cmd; - } - - String getDescription() - { - return descr; - } - - String getSyntax() - { - return syntax; - } - - String getFull() - { - return full; - } - - public String toPrint() - { - return cmd + ": " + descr + "\n" + syntax + "\n" + full + "\n"; - } -} - diff --git a/frysk-core/frysk/hpd/TestHelp.java b/frysk-core/frysk/hpd/TestHelp.java index 2fbca4e..5a1c465 100644 --- a/frysk-core/frysk/hpd/TestHelp.java +++ b/frysk-core/frysk/hpd/TestHelp.java @@ -46,29 +46,88 @@ package frysk.hpd; public class TestHelp extends TestLib { - public void testHelp() { + // A list of the top-level commands; this needs updating when ever + // a new top-level command is added or (more importantly not + // accidently) removed. + private final String[] topLevel = { + "actions", + "alias", + "assign", + "attach", + "break", + "core", + "debuginfo", + "defset", + "delete", + "detach", + "disable", + "disassemble", + "display", + "down", + "enable", + "examine", + "exit", + "finish", + "focus", + "frame", + "go", + "halt", + "help", + "list", + "load", + "next", + "nexti", + "peek", + "plocation", + "print", + "ptype", + "quit", + "regs", + "run", + "set", + "step", + "stepi", + "unalias", + "undefset", + "unset", + "up", + "viewset", + "what", + "where", + "whichsets", + }; + + public void setUp() { + super.setUp(); e = new HpdTestbed(); + } + + public void testBlankCompletion() { + e.send("\t"); + for (int i = 0; i < topLevel.length; i++) { + e.expect(topLevel[i] + "\\r\\n"); + } + e.expect(prompt); + } + + public void testHelp() { e.send("help\n"); - e.expect("actions - "); - e.expect("core - "); - e.expect("finish - "); - e.expect("list - "); - e.expect("peek - "); - e.expect("regs - "); - e.expect("step - "); - e.expect("up - "); - e.expectPrompt("whichsets.*"); + for (int i = 0; i < topLevel.length; i++) { + e.expect(topLevel[i] + " - [^\\r\\n]*\\r\\n"); + } + e.expectPrompt(""); } public void testHelpCompletion() { - e = new HpdTestbed(); e.send("help u\t"); - e.expect("unalias\r\nundefset\r\nunset\r\nup\r\n" - + prompt + "help u"); + e.expect("unalias\\r\\n"); + e.expect("undefset\\r\\n"); + e.expect("unset\\r\\n"); + e.expect("up\\r\\n"); + e.expect(prompt + "help u"); } public void testHelpHelp() { - e = new HpdTestbed(); e.sendCommandExpectPrompt("help help", "Display help.*"); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Nov 18 05:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 18 Nov 2007 05:04:00 -0000 Subject: [SCM] master: Fold "plocation", "ptype", and "examine" commands into "print". Message-ID: <20071118050403.26178.qmail@sourceware.org> The branch, master has been updated via 11b29ff932127e58a13743509f930d118c25f02f (commit) via af6a8ab4e12c0e3d33ada30b422ae0343f03d6ac (commit) via 87fbda00526042d6f53a7b39921ce22706db9dce (commit) from b3adba000519e004a2de1f4094fa7628c17fe3cf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 11b29ff932127e58a13743509f930d118c25f02f Author: Andrew Cagney Date: Sun Nov 18 00:01:27 2007 -0500 Fold "plocation", "ptype", and "examine" commands into "print". frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * EvalCommands.java (Printer): New. (Options): Replace dumpTree with printer; (EvalCommands(String,String,String)): Add options -location, -type, -value, -tree, and -raw. * TestEvalCommands.java (testPrintLocation()): New. (testPrintLocationFails()): New. (testPrintType()): New. (testPrintTypeFails()): New. * TestPtypeCommand.java: Delete. * TestPlocationCommand.java: Delete. * PtypeCommand.java: Delete. * PlocationCommand.java: Delete. * TestExamineCommand.java: Delete. * ExamineCommand.java: Delete. * TopLevelCommand.java: Update. * TestHelp.java: Update. commit af6a8ab4e12c0e3d33ada30b422ae0343f03d6ac Author: Andrew Cagney Date: Sat Nov 17 23:12:08 2007 -0500 Eliminate unused name member. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * Command.java (Command(String,String,String)): Replace Command(String,String,String,String); name dropped. (interpret(CLI,Input)): Make package private. * WhichsetsCommand.java: Update. * WhatCommand.java: Update. * ViewsetCommand.java: Update. * UndefsetCommand.java: Update. * StepNextCommand.java: Update. * TopLevelCommand.java: Update. * TestParameterizedCommand.java: Update. * StepNextiCommand.java: Update. * StepFinishCommand.java: Update. * StepInstructionCommand.java: Update. * StepCommand.java: Update. * StackCommands.java: Update. * RunCommand.java: Update. * RegsCommand.java: Update. * QuitCommand.java: Update. * PtypeCommand.java: Update. * PlocationCommand.java: Update. * ListCommand.java: Update. * HaltCommand.java: Update. * GoCommand.java: Update. * FocusCommand.java: Update. * MultiLevelCommand.java: Update. * ParameterizedCommand.java: Update. * AliasCommands.java: Update. * AttachCommand.java: Update. * BreakpointCommand.java: Update. * DbgVariableCommands.java: Update. * DebuginfoCommand.java: Update. * DefsetCommand.java: Update. * DetachCommand.java: Update. * DisassembleCommand.java: Update. * DisplayCommand.java: Update. * EvalCommands.java: Update. commit 87fbda00526042d6f53a7b39921ce22706db9dce Author: Andrew Cagney Date: Sat Nov 17 22:37:26 2007 -0500 Add an abbreviated command mechanism. frysk-core/frysk/hpd/ChangeLog 2007-11-17 Andrew Cagney * Command.java (name): Delete. (getName()): Delete. * MultiLevelCommand.java (add(Command)): Delete. (add(Command,String)): New. (abbrevs): New. (addAbbrev): New. (lookup(String)): Use abbrevs. (complete(CLI,Input,int,List)): Use lookup(String). * TopLevelCommand.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AliasCommands.java | 11 +- frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/BreakpointCommand.java | 25 ++--- frysk-core/frysk/hpd/ChangeLog | 64 ++++++++++ frysk-core/frysk/hpd/Command.java | 10 +-- frysk-core/frysk/hpd/DbgVariableCommands.java | 9 +- frysk-core/frysk/hpd/DebuginfoCommand.java | 5 +- frysk-core/frysk/hpd/DefsetCommand.java | 5 +- frysk-core/frysk/hpd/DetachCommand.java | 22 ++-- frysk-core/frysk/hpd/DisassembleCommand.java | 4 +- frysk-core/frysk/hpd/DisplayCommand.java | 8 +- frysk-core/frysk/hpd/EvalCommands.java | 123 +++++++++++++++----- frysk-core/frysk/hpd/ExamineCommand.java | 85 -------------- frysk-core/frysk/hpd/FocusCommand.java | 4 +- frysk-core/frysk/hpd/GoCommand.java | 4 +- frysk-core/frysk/hpd/HaltCommand.java | 4 +- frysk-core/frysk/hpd/ListCommand.java | 2 +- frysk-core/frysk/hpd/MultiLevelCommand.java | 51 ++++++--- frysk-core/frysk/hpd/ParameterizedCommand.java | 11 +- frysk-core/frysk/hpd/PlocationCommand.java | 91 --------------- frysk-core/frysk/hpd/PtypeCommand.java | 90 -------------- frysk-core/frysk/hpd/QuitCommand.java | 7 +- frysk-core/frysk/hpd/RegsCommand.java | 4 +- frysk-core/frysk/hpd/RunCommand.java | 5 +- frysk-core/frysk/hpd/StackCommands.java | 28 ++--- frysk-core/frysk/hpd/StepCommand.java | 9 +- frysk-core/frysk/hpd/StepFinishCommand.java | 2 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 2 +- frysk-core/frysk/hpd/StepNextCommand.java | 14 +- frysk-core/frysk/hpd/StepNextiCommand.java | 16 ++-- frysk-core/frysk/hpd/TestEvalCommands.java | 26 ++++ frysk-core/frysk/hpd/TestExamineCommand.java | 55 --------- frysk-core/frysk/hpd/TestHelp.java | 3 - frysk-core/frysk/hpd/TestParameterizedCommand.java | 2 +- frysk-core/frysk/hpd/TestPlocationCommand.java | 65 ---------- frysk-core/frysk/hpd/TestPtypeCommand.java | 62 ---------- frysk-core/frysk/hpd/TopLevelCommand.java | 93 ++++++++-------- frysk-core/frysk/hpd/UndefsetCommand.java | 3 +- frysk-core/frysk/hpd/ViewsetCommand.java | 2 +- frysk-core/frysk/hpd/WhatCommand.java | 19 ++-- frysk-core/frysk/hpd/WhichsetsCommand.java | 3 +- 41 files changed, 370 insertions(+), 680 deletions(-) delete mode 100644 frysk-core/frysk/hpd/ExamineCommand.java delete mode 100644 frysk-core/frysk/hpd/PlocationCommand.java delete mode 100644 frysk-core/frysk/hpd/PtypeCommand.java delete mode 100644 frysk-core/frysk/hpd/TestExamineCommand.java delete mode 100644 frysk-core/frysk/hpd/TestPlocationCommand.java delete mode 100644 frysk-core/frysk/hpd/TestPtypeCommand.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AliasCommands.java b/frysk-core/frysk/hpd/AliasCommands.java index d099c85..6c9037a 100644 --- a/frysk-core/frysk/hpd/AliasCommands.java +++ b/frysk-core/frysk/hpd/AliasCommands.java @@ -56,14 +56,13 @@ abstract class AliasCommands extends ParameterizedCommand { return incomplete.absolute(0); } - AliasCommands(String name, String description, String syntax, - String full) { - super(name, description, syntax, full); + AliasCommands(String description, String syntax, String full) { + super(description, syntax, full); } static class Alias extends AliasCommands { Alias() { - super("alias", "create or view user-defined commands", + super("create or view user-defined commands", ("alias -- define an alias\n" + "alias [ ] -- view an alias"), ("The alias command associates a " @@ -117,7 +116,7 @@ abstract class AliasCommands extends ParameterizedCommand { return new Options(); } Unalias() { - super("unalias", "Create or view user-define commands.", + super("Create or view user-define commands.", "unalias [ command-name | -all -", ("The unalias command removes the alias that was" + " previously established for the specified" @@ -129,7 +128,7 @@ abstract class AliasCommands extends ParameterizedCommand { }); } - public void interpret(CLI cli, Input input, Object o) { + void interpret(CLI cli, Input input, Object o) { Options options = (Options)o; if (options.deleteAll) { if (input.size() != 0) diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index dd3e519..b19a6c9 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -66,7 +66,7 @@ class AttachCommand extends ParameterizedCommand { } AttachCommand() { - super("attach", "Attach to a running process.", + super("Attach to a running process.", "attach ...", ("The attach command causes the debugger to attach to an" + " existing process(es), making it possible to continue" diff --git a/frysk-core/frysk/hpd/BreakpointCommand.java b/frysk-core/frysk/hpd/BreakpointCommand.java index fcc95b8..928ab1d 100644 --- a/frysk-core/frysk/hpd/BreakpointCommand.java +++ b/frysk-core/frysk/hpd/BreakpointCommand.java @@ -57,21 +57,16 @@ import java.util.List; class BreakpointCommand extends ParameterizedCommand { - private static final String full = "The break command defines a breakpoint " - + "that will be triggered when some\n" - + "thread(s) in the trigger set arrives at the specified location " - + "during\n" - + "program execution. When that occurs, the process(es) containing " - + "the\n" - + "triggering thread(s) plus all processes in the stop set will be " - + "forcibly\n" - + "stopped so the user can examine program state information."; - - private static final String descr = "Define a breakpoint"; - BreakpointCommand() { - super("break", descr, - "break {proc | line | #file#line}", full); + super("Define a breakpoint", + "break {proc | line | #file#line}", + ("The break command defines a breakpoint that will be" + + " triggered when some thread(s) in the trigger set" + + " arrives at the specified location during program" + + " execution. When that occurs, the process(es) containing" + + " the triggering thread(s) plus all processes in the" + + " stop set will be forcibly stopped so the user can" + + " examine program state information.")); } static private abstract class CLIBreakpointObserver implements @@ -90,7 +85,7 @@ class BreakpointCommand extends ParameterizedCommand { long address); } - public void interpret(CLI cli, Input cmd, Object arguments) { + void interpret(CLI cli, Input cmd, Object arguments) { PTSet ptset = cli.getCommandPTSet(cmd); String breakpt = cmd.parameter(0); String fileName; diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index e5dd9e4..29d6c82 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,69 @@ 2007-11-17 Andrew Cagney + * EvalCommands.java (Printer): New. + (Options): Replace dumpTree with printer; + (EvalCommands(String,String,String)): Add options -location, + -type, -value, -tree, and -raw. + * TestEvalCommands.java (testPrintLocation()): New. + (testPrintLocationFails()): New. + (testPrintType()): New. + (testPrintTypeFails()): New. + * TestPtypeCommand.java: Delete. + * TestPlocationCommand.java: Delete. + * PtypeCommand.java: Delete. + * PlocationCommand.java: Delete. + * TestExamineCommand.java: Delete. + * ExamineCommand.java: Delete. + * TopLevelCommand.java: Update. + * TestHelp.java: Update. + + * Command.java (Command(String,String,String)): Replace + Command(String,String,String,String); name dropped. + (interpret(CLI,Input)): Make package private. + * WhichsetsCommand.java: Update. + * WhatCommand.java: Update. + * ViewsetCommand.java: Update. + * UndefsetCommand.java: Update. + * StepNextCommand.java: Update. + * TopLevelCommand.java: Update. + * TestParameterizedCommand.java: Update. + * StepNextiCommand.java: Update. + * StepFinishCommand.java: Update. + * StepInstructionCommand.java: Update. + * StepCommand.java: Update. + * StackCommands.java: Update. + * RunCommand.java: Update. + * RegsCommand.java: Update. + * QuitCommand.java: Update. + * PtypeCommand.java: Update. + * PlocationCommand.java: Update. + * ListCommand.java: Update. + * HaltCommand.java: Update. + * GoCommand.java: Update. + * FocusCommand.java: Update. + * MultiLevelCommand.java: Update. + * ParameterizedCommand.java: Update. + * AliasCommands.java: Update. + * AttachCommand.java: Update. + * BreakpointCommand.java: Update. + * DbgVariableCommands.java: Update. + * DebuginfoCommand.java: Update. + * DefsetCommand.java: Update. + * DetachCommand.java: Update. + * DisassembleCommand.java: Update. + * DisplayCommand.java: Update. + * EvalCommands.java: Update. + + * Command.java (name): Delete. + (getName()): Delete. + * MultiLevelCommand.java (add(Command)): Delete. + (add(Command,String)): New. + (abbrevs): New. + (addAbbrev): New. + (lookup(String)): Use abbrevs. + (complete(CLI,Input,int,List)): Use lookup(String). + * TopLevelCommand.java: Update. + * CommandHelp.java: Delete. * Command.java (getHelp()): Delete. (help): Delete. diff --git a/frysk-core/frysk/hpd/Command.java b/frysk-core/frysk/hpd/Command.java index 2a09e55..ecbb374 100644 --- a/frysk-core/frysk/hpd/Command.java +++ b/frysk-core/frysk/hpd/Command.java @@ -46,23 +46,17 @@ import java.util.List; */ public abstract class Command { - private final String name; private final String description; private final String syntax; private final String full; - - public String getName() { - return name; - } - Command (String name, String description, String syntax, String full) { - this.name = name; + Command (String description, String syntax, String full) { this.description = description; this.syntax = syntax; this.full = full; } - public abstract void interpret(CLI cli, Input cmd); + abstract void interpret(CLI cli, Input cmd); /** * Fill CANDIDATES with the possible completion strings and return diff --git a/frysk-core/frysk/hpd/DbgVariableCommands.java b/frysk-core/frysk/hpd/DbgVariableCommands.java index 0145d5c..f893422 100644 --- a/frysk-core/frysk/hpd/DbgVariableCommands.java +++ b/frysk-core/frysk/hpd/DbgVariableCommands.java @@ -43,9 +43,8 @@ import java.util.List; abstract class DbgVariableCommands extends ParameterizedCommand { - DbgVariableCommands(String name, String description, - String syntax, String full) { - super(name, description, syntax, full); + DbgVariableCommands(String description, String syntax, String full) { + super(description, syntax, full); } int completer(CLI cli, Input input, int cursor, List completions) { @@ -58,7 +57,7 @@ abstract class DbgVariableCommands extends ParameterizedCommand { static class Set extends DbgVariableCommands { Set() { - super("set", "Change or view a debugger variable.", + super("Change or view a debugger variable.", "set debugger-var = value\nset [debugger-var]", ("The set command supports the viewing of debugger state" + " variables and the assignment of new values to them. When" @@ -111,7 +110,7 @@ abstract class DbgVariableCommands extends ParameterizedCommand { static class Unset extends DbgVariableCommands { Unset() { - super("unset", "Revert variable value to default.", + super("Revert variable value to default.", "unset [ | -all ]", ("The unset command reverses the effects of any previous" + " set operations, restoring the debugger state" diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/DebuginfoCommand.java index 687ec7c..51c89b6 100644 --- a/frysk-core/frysk/hpd/DebuginfoCommand.java +++ b/frysk-core/frysk/hpd/DebuginfoCommand.java @@ -47,8 +47,7 @@ import java.util.List; class DebuginfoCommand extends ParameterizedCommand { DebuginfoCommand() { - super("debuginfo", - "Displays debuginfo install paths of a process.", "debuginfo", + super("Displays debuginfo install paths of a process.", "debuginfo", "The debuginfo command lists the debuginfo paths " + "for a process and its shared modules."); } @@ -57,7 +56,7 @@ class DebuginfoCommand extends ParameterizedCommand { return -1; } - public void interpret(CLI cli, Input cmd, Object options) { + void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskIter = ptset.getTasks(); while (taskIter.hasNext()) { diff --git a/frysk-core/frysk/hpd/DefsetCommand.java b/frysk-core/frysk/hpd/DefsetCommand.java index de21d8d..0c5834f 100644 --- a/frysk-core/frysk/hpd/DefsetCommand.java +++ b/frysk-core/frysk/hpd/DefsetCommand.java @@ -44,8 +44,7 @@ import java.util.List; class DefsetCommand extends ParameterizedCommand { DefsetCommand() { - super("defset", - "Assign a set name to a group of processes/threads", + super("Assign a set name to a group of processes/threads", "defset set-name p/t-set", ("Associates a logical name with a group of threads and/or" + " processes, creating a user-defined set. Once a" @@ -56,7 +55,7 @@ class DefsetCommand extends ParameterizedCommand { + " of processes and threads.")); } - public void interpret(CLI cli, Input cmd, Object options) { + void interpret(CLI cli, Input cmd, Object options) { String setname = null; String setnot = null; PTSet set = null; diff --git a/frysk-core/frysk/hpd/DetachCommand.java b/frysk-core/frysk/hpd/DetachCommand.java index 32e5140..b76a603 100644 --- a/frysk-core/frysk/hpd/DetachCommand.java +++ b/frysk-core/frysk/hpd/DetachCommand.java @@ -47,22 +47,18 @@ import java.util.List; class DetachCommand extends ParameterizedCommand { - private static final String full = "The detach command detaches the debugger " - + "from all processes in the\n" - + "affected set. This serves to undo the effects of attaching the " - + "debugger\n" - + "to a running process; that is, the debugger releases all " - + "control over\n" - + "the process, eliminates all debugger state information related " - + "to it,\n" - + "and allows it to continue execution in the normal run-time\n" - + "environment. "; - DetachCommand() { - super("detach", "Detach from a running process.", "detach", full); + super("Detach from a running process.", "detach", + ("The detach command detaches the debugger from all" + + " processes in the affected set. This serves to undo" + + " the effects of attaching the debugger to a running" + + " process; that is, the debugger releases all control" + + " over the process, eliminates all debugger state" + + " information related to it, and allows it to continue" + + " execution in the normal run-time environment.")); } - public void interpret(CLI cli, Input cmd, Object options) { + void interpret(CLI cli, Input cmd, Object options) { PTSet ptset = cli.getCommandPTSet(cmd); HashSet procSet = new HashSet(); Iterator taskIter = ptset.getTasks(); diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java index 207c53e..19f19e0 100644 --- a/frysk-core/frysk/hpd/DisassembleCommand.java +++ b/frysk-core/frysk/hpd/DisassembleCommand.java @@ -51,7 +51,7 @@ import lib.opcodes.Instruction; public class DisassembleCommand extends ParameterizedCommand { public DisassembleCommand() { - super("disassemble", "disassemble a section of memory", + super("disassemble a section of memory", "disassemble [startAddress] [--] [OPTIONS]||\n" + "disassemble " + " [--] [-OPTIONS]", @@ -92,7 +92,7 @@ public class DisassembleCommand extends ParameterizedCommand { symbol = true; } - public void interpret(CLI cli, Input cmd, Object options) { + void interpret(CLI cli, Input cmd, Object options) { reset(); PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskDataIter = ptset.getTaskData(); diff --git a/frysk-core/frysk/hpd/DisplayCommand.java b/frysk-core/frysk/hpd/DisplayCommand.java index 5932d4e..87bc38e 100644 --- a/frysk-core/frysk/hpd/DisplayCommand.java +++ b/frysk-core/frysk/hpd/DisplayCommand.java @@ -57,19 +57,17 @@ import frysk.value.Value; * expression changes, the user will be notified. * */ -public class DisplayCommand extends ParameterizedCommand { +class DisplayCommand extends ParameterizedCommand { private List displays; - private static final String desc = "creates a display on an expression"; - DisplayCommand() { - super("display", desc, "display expr", desc); + super("creates a display on an expression", "display expr"); displays = new LinkedList(); } - public void interpret(CLI cli, Input cmd, Object options) { + void interpret(CLI cli, Input cmd, Object options) { final PrintWriter output = cli.getPrintWriter(); PTSet ptset = cli.getCommandPTSet(cmd); diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index 98b83cc..1d6082a 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -39,6 +39,7 @@ package frysk.hpd; +import inua.eio.ByteBuffer; import frysk.value.Format; import java.util.Iterator; import frysk.proc.Task; @@ -46,29 +47,104 @@ import frysk.value.PointerType; import frysk.value.Type; import java.util.List; import frysk.expr.Expression; +import java.io.PrintWriter; /** * Evaluate an expression; in various forms. */ abstract class EvalCommands extends ParameterizedCommand { + private static abstract class Printer { + abstract void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory); + static final Printer VALUE = new Printer() { + void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory) { + // XXX: Should be in type? + Type t = e.getType(); + if (t instanceof PointerType) { + writer.print("("); + t.toPrint(writer); + writer.print(") "); + } + e.getValue().toPrint(writer, memory, format); + writer.println(); + } + }; + static final Printer LOCATION = new Printer() { + void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory) { + e.getLocation().toPrint(writer); + writer.println(); + } + }; + static final Printer TYPE = new Printer() { + void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory) { + e.getType().toPrint(writer); + writer.println(); + } + }; + static final Printer TREE = new Printer() { + void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory) { + e.toPrint(writer); + writer.println(); + } + }; + static final Printer RAW = new Printer() { + void print(Expression e, PrintWriter writer, Format format, + ByteBuffer memory) { + byte[] bytes = e.getLocation().toByteArray(); + for (int i = 0; i < bytes.length; i++) { + writer.print(i); + writer.print(": "); + writer.print(bytes[i]); + writer.println(); + } + } + }; + } + private class Options { Format format = Format.NATURAL; - boolean dumpTree = false; + Printer printer = Printer.VALUE; } Object options() { return new Options(); } - EvalCommands(String name, String description, String syntax, String full) { - super(name, description, syntax, full); + EvalCommands(String description, String syntax, String full) { + super(description, syntax, full); add(new CommandOption.FormatOption() { void set(Object options, Format format) { ((Options)options).format = format; } }); - add(new CommandOption("dump-tree", "dump the expression AST") { + add(new CommandOption("tree", "print the expression's AST") { + void parse(String arg, Object options) { + ((Options)options).printer = Printer.TREE; + } + }); + add(new CommandOption("location", "print the expression's location") { void parse(String arg, Object options) { - ((Options)options).dumpTree = true; + ((Options)options).printer = Printer.LOCATION; + } + }); + add(new CommandOption("type", "print the expression's type") { + void parse(String arg, Object options) { + ((Options)options).printer = Printer.TYPE; + } + }); + add(new CommandOption("value", + "print the expression's value (default)") { + void parse(String arg, Object options) { + ((Options)options).printer = Printer.VALUE; + } + }); + add(new CommandOption("raw", + "print the expression's raw value") { + void parse(String arg, Object options) { + ((Options)options).printer = Printer.RAW; } }); } @@ -99,35 +175,22 @@ abstract class EvalCommands extends ParameterizedCommand { cli.printError(e); continue; } - if (options.dumpTree) { - result.toPrint(cli.outWriter); - } else { - Type t = result.getType(); - if (t instanceof PointerType) { - cli.outWriter.print("("); - t.toPrint(cli.outWriter); - cli.outWriter.print(") "); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sun Nov 18 21:44:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sun, 18 Nov 2007 21:44:00 -0000 Subject: [SCM] master: Rename .complete to .completeMember. Message-ID: <20071118214438.1319.qmail@sourceware.org> The branch, master has been updated via 17129b1e6ff7a095f661a702e5fdcf8dd45a7436 (commit) from 11b29ff932127e58a13743509f930d118c25f02f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 17129b1e6ff7a095f661a702e5fdcf8dd45a7436 Author: Andrew Cagney Date: Sun Nov 18 15:37:04 2007 -0500 Rename .complete to .completeMember. frysk-core/frysk/expr/ChangeLog 2007-11-18 Andrew Cagney * IncompleteMemberException.java: Update Type.complete renamed to Type.completeMember. frysk-core/frysk/value/ChangeLog 2007-11-18 Andrew Cagney * ArrayType.java (completeMember(String,List)): New. * PointerType.java (completeMember(String,List)): New. * Type.java (completeMember(String,List)): Rename complete(String,List). (completeFollowSym(String,List)): New. * CompositeType.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/ChangeLog | 5 +++++ .../frysk/expr/IncompleteMemberException.java | 2 +- frysk-core/frysk/value/ArrayType.java | 6 +++++- frysk-core/frysk/value/ChangeLog | 9 +++++++++ frysk-core/frysk/value/CompositeType.java | 2 +- frysk-core/frysk/value/PointerType.java | 5 +++++ frysk-core/frysk/value/Type.java | 11 +++++++++-- 7 files changed, 35 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 1908f5d..08a71da 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-18 Andrew Cagney + + * IncompleteMemberException.java: Update Type.complete renamed to + Type.completeMember. + 2007-11-17 Andrew Cagney * IncompleteMemberException.java (complete(ExprSymTab,List)): diff --git a/frysk-core/frysk/expr/IncompleteMemberException.java b/frysk-core/frysk/expr/IncompleteMemberException.java index adda314..e7e585e 100644 --- a/frysk-core/frysk/expr/IncompleteMemberException.java +++ b/frysk-core/frysk/expr/IncompleteMemberException.java @@ -61,7 +61,7 @@ class IncompleteMemberException extends CompletionException { } int complete(ExprSymTab symTab, List candidates) { if (new Expression(symTab, expression) - .getType().complete(getText(),candidates)) + .getType().completeMember(getText(),candidates)) return getColumn(); else return -1; diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 7813722..897c9ec 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -42,7 +42,7 @@ package frysk.value; import java.math.BigInteger; import java.util.ArrayList; import java.io.PrintWriter; - +import java.util.List; import frysk.debuginfo.PieceLocation; import inua.eio.ByteBuffer; @@ -268,4 +268,8 @@ public class ArrayType public ArithmeticUnit getALU(int wordSize) { return new AddressUnit(this, wordSize); } + + public boolean completeMember(String incomplete, List candidates) { + return type.completeMember(incomplete, candidates); + } } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 5cbf1f0..d30cda8 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,12 @@ +2007-11-18 Andrew Cagney + + * ArrayType.java (completeMember(String,List)): New. + * PointerType.java (completeMember(String,List)): New. + * Type.java (completeMember(String,List)): Rename + complete(String,List). + (completeFollowSym(String,List)): New. + * CompositeType.java: Update. + 2007-11-17 Andrew Cagney * CompositeType.java (complete(String,List)): New. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 2669fd4..9937d28 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -390,7 +390,7 @@ public abstract class CompositeType return mem.getValue (var1); } - public boolean complete(String incomplete, List candidates) { + public boolean completeMember(String incomplete, List candidates) { int completions = 0; for (Iterator i = nameToMember.keySet().iterator(); i.hasNext(); ) { String member = (String)i.next(); diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 5b238d7..f7805d8 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -44,6 +44,7 @@ import inua.eio.ByteBuffer; import inua.eio.ByteOrder; import java.io.PrintWriter; import java.math.BigInteger; +import java.util.List; /** * Type for a pointer (or address) of another type. @@ -152,4 +153,8 @@ public class PointerType public ArithmeticUnit getALU(int wordSize) { return new AddressUnit(this, wordSize); } + + public boolean completeMember(String incomplete, List candidates) { + return type.completeMember(incomplete, candidates); + } } diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index e69561a..6b93e62 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -198,10 +198,17 @@ public abstract class Type { } /** - * Complete the specified string; return false if nothing + * Complete the type's member; return false if nothing completed. + */ + public boolean completeMember(String incomplete, List candidates) { + return false; + } + + /** + * Complete the type's next token; return false if nothing * completed. */ - public boolean complete(String incomplete, List candidates) { + public boolean completeFollowSym(String incomplete, List candidates) { return false; } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Nov 19 09:33:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 19 Nov 2007 09:33:00 -0000 Subject: [SCM] master: 2007-11-19 Phil Muldoon Message-ID: <20071119093349.2802.qmail@sourceware.org> The branch, master has been updated via 73098ac8dd9b4c09ffbfac451136a3f520327d99 (commit) from 17129b1e6ff7a095f661a702e5fdcf8dd45a7436 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 73098ac8dd9b4c09ffbfac451136a3f520327d99 Author: Phil Muldoon Date: Mon Nov 19 09:33:38 2007 +0000 2007-11-19 Phil Muldoon * TestFhd.java (testHpdCore): Remove unresolved. Add -noexe to Expect test. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/TestFhd.java | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 69e9e03..b936499 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-19 Phil Muldoon + + * TestFhd.java (testHpdCore): Remove unresolved. + Add -noexe to Expect test. + 2007-11-16 Rick Moseley * fhpd.java: Fix bz #5256. diff --git a/frysk-core/frysk/bindir/TestFhd.java b/frysk-core/frysk/bindir/TestFhd.java index 08d4fb1..1cfe4d7 100755 --- a/frysk-core/frysk/bindir/TestFhd.java +++ b/frysk-core/frysk/bindir/TestFhd.java @@ -86,11 +86,10 @@ public class TestFhd } public void testHpdCore () { - if (unresolved(5295)) - return; e = new Expect(new String[] { Config.getBinFile("fhpd").getPath(), - Config.getPkgDataFile("test-core-x86").getPath() + Config.getPkgDataFile("test-core-x86").getPath(), + "-noexe" }); e.expect(5, "Attached to core file.*"); e.close(); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Nov 19 10:51:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 19 Nov 2007 10:51:00 -0000 Subject: [SCM] master: Fix 5252 by passing executable path. Message-ID: <20071119105120.7885.qmail@sourceware.org> The branch, master has been updated via 549835f8c32000e9cae1b45dd50012fb9c7762e0 (commit) from 73098ac8dd9b4c09ffbfac451136a3f520327d99 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 549835f8c32000e9cae1b45dd50012fb9c7762e0 Author: Phil Muldoon Date: Mon Nov 19 10:50:43 2007 +0000 Fix 5252 by passing executable path. 2007-11-19 Phil Muldoon * TestLinuxCore.java (testLinuxCoreFileStackTrace): Pass executable location to LinuxHost. Fix 5352. Remove unresolved. Fix 11-15 indention oops. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 6 ++++++ frysk-core/frysk/proc/dead/TestLinuxCore.java | 13 +++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 9611a8c..4d90ad6 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,9 @@ +2007-11-19 Phil Muldoon + + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Pass + executable location to LinuxHost. Fix 5352. Remove unresolved. + Fix 11-15 indention oops. + 2007-11-17 Andrew Cagney * TestLinuxCore.java (testLinuxCoreFileStackTrace()): Mark as diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index e2022c7..94f21ec 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -135,14 +135,11 @@ public class TestLinuxCore } public void testLinuxCoreFileStackTrace () { - if (unresolved(5353)) - return; - - final Proc ackProc; // = giveMeAProc(); - - File exeFile = Config.getPkgLibFile("funit-stacks"); - ackProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + final Proc ackProc; // = giveMeAProc(); + + File exeFile = Config.getPkgLibFile("funit-stacks"); + ackProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); StacktraceAction stacker; @@ -165,7 +162,7 @@ public class TestLinuxCore File xtestCore = new File(coreFileName); Host lcoreHost = new LinuxHost(Manager.eventLoop, - xtestCore); + xtestCore, exeFile); Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Mon Nov 19 11:43:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 19 Nov 2007 11:43:00 -0000 Subject: [SCM] master: frysk-core/frysk/stack/ChangeLog Message-ID: <20071119114304.2363.qmail@sourceware.org> The branch, master has been updated via bbf660ad5f803e000274503ad878040f4d604fef (commit) from 549835f8c32000e9cae1b45dd50012fb9c7762e0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bbf660ad5f803e000274503ad878040f4d604fef Author: Mark Wielaard Date: Mon Nov 19 12:42:54 2007 +0100 frysk-core/frysk/stack/ChangeLog 2007-11-19 Mark Wielaard * LibunwindFrame.java (getAddress): Don't do a proc name lookup, use new Cursor.getIP(). frysk-imports/libunwind/ChangeLog 2007-11-19 Mark Wielaard * src/mi/Gget_reg.c (unw_get_reg): Use cached value from cursor when looking for UNW_REG_IP. frysk-sys/lib/unwind/ChangeLog 2007-11-19 Mark Wielaard * Cursor.java (getIP): New method. (unwind): Check current ip. * Unwind.java (getIP): New method. * cni/UnwindH.hxx (getIP): Likewise. (getContext): Check for null elfImage. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/stack/ChangeLog | 6 ++++++ frysk-core/frysk/stack/LibunwindFrame.java | 9 +-------- frysk-imports/libunwind/ChangeLog | 5 +++++ frysk-imports/libunwind/src/mi/Gget_reg.c | 7 +++++++ frysk-sys/lib/unwind/ChangeLog | 9 +++++++++ frysk-sys/lib/unwind/Cursor.java | 8 ++++++-- frysk-sys/lib/unwind/Unwind.java | 1 + frysk-sys/lib/unwind/cni/UnwindH.hxx | 14 ++++++++++++++ 8 files changed, 49 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index f5bce74..110edfe 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,4 +1,10 @@ +2007-11-19 Mark Wielaard + + * LibunwindFrame.java (getAddress): Don't do a proc name lookup, + use new Cursor.getIP(). + 2007-11-13 Jose Flavio Aguilar Paulino + * LibunwindAddressSpace.java: Add PowerPC32/64 unwinder classes to the constructors. diff --git a/frysk-core/frysk/stack/LibunwindFrame.java b/frysk-core/frysk/stack/LibunwindFrame.java index 080df12..64e9c28 100644 --- a/frysk-core/frysk/stack/LibunwindFrame.java +++ b/frysk-core/frysk/stack/LibunwindFrame.java @@ -44,7 +44,6 @@ import frysk.isa.Register; import java.util.logging.Logger; import lib.unwind.Cursor; import lib.unwind.ProcInfo; -import lib.unwind.ProcName; import frysk.isa.ISA; import frysk.proc.Task; import frysk.symtab.Symbol; @@ -92,13 +91,7 @@ class LibunwindFrame extends Frame * Returns the current program counter of this Frame. */ public long getAddress() { - ProcInfo myInfo = cursor.getProcInfo(); - ProcName myName = cursor.getProcName(0); - - if (myInfo.getError() != 0 || myName.getError() != 0) - return 0; - - return myInfo.getStartIP() + myName.getOffset(); + return cursor.getIP(); } /** diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index af994a5..74d2fbf 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,3 +1,8 @@ +2007-11-19 Mark Wielaard + + * src/mi/Gget_reg.c (unw_get_reg): Use cached value from cursor + when looking for UNW_REG_IP. + 2007-10-13 Mark Wielaard * config/.cvsignore: New. Ignore generated files. diff --git a/frysk-imports/libunwind/src/mi/Gget_reg.c b/frysk-imports/libunwind/src/mi/Gget_reg.c index 23b72be..5179a88 100644 --- a/frysk-imports/libunwind/src/mi/Gget_reg.c +++ b/frysk-imports/libunwind/src/mi/Gget_reg.c @@ -30,5 +30,12 @@ unw_get_reg (unw_cursor_t *cursor, int regnum, unw_word_t *valp) { struct cursor *c = (struct cursor *) cursor; + // No need to go look up the IP value since it is cached in the cursor. + if (regnum == UNW_REG_IP) + { + *valp = c->dwarf.ip; + return 0; + } + return tdep_access_reg (c, regnum, valp, 0); } diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index 4ccd677..ebe978e 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,4 +1,13 @@ +2007-11-19 Mark Wielaard + + * Cursor.java (getIP): New method. + (unwind): Check current ip. + * Unwind.java (getIP): New method. + * cni/UnwindH.hxx (getIP): Likewise. + (getContext): Check for null elfImage. + 2007-11-13 Jose Flavio Aguilar Paulino + * UnwindPPC32.cxx: New. To support powerpc32. 2007-11-09 Jose Flavio Aguilar Paulino diff --git a/frysk-sys/lib/unwind/Cursor.java b/frysk-sys/lib/unwind/Cursor.java index 190e315..6433ace 100644 --- a/frysk-sys/lib/unwind/Cursor.java +++ b/frysk-sys/lib/unwind/Cursor.java @@ -81,6 +81,10 @@ public class Cursor bytes, start); } + public long getIP() { + return unwinder.getIP(cursor); + } + public long getSP() { return unwinder.getSP(cursor); } @@ -110,8 +114,8 @@ public class Cursor public Cursor unwind() { logger.log(Level.FINE, "{0}, unwind\n", this); - //XXX: Don't unwind if no more frames. - if (step == 0) + //XXX: Don't unwind if no more, or unknown frames. + if (step == 0 || getIP() == 0) return null; Cursor newCursor = new Cursor(addressSpace, diff --git a/frysk-sys/lib/unwind/Unwind.java b/frysk-sys/lib/unwind/Unwind.java index 23181ec..8e9d3d3 100644 --- a/frysk-sys/lib/unwind/Unwind.java +++ b/frysk-sys/lib/unwind/Unwind.java @@ -70,6 +70,7 @@ public abstract class Unwind abstract void setRegister(RawDataManaged cursor, int regNum, long offset, int length, byte[] word, int start); + public abstract long getIP(RawDataManaged cursor); public abstract long getSP(RawDataManaged cursor); abstract RawDataManaged copyCursor(RawDataManaged cursor); diff --git a/frysk-sys/lib/unwind/cni/UnwindH.hxx b/frysk-sys/lib/unwind/cni/UnwindH.hxx index c13576c..f48494e 100644 --- a/frysk-sys/lib/unwind/cni/UnwindH.hxx +++ b/frysk-sys/lib/unwind/cni/UnwindH.hxx @@ -402,6 +402,17 @@ lib::unwind::TARGET::getSP(gnu::gcj::RawDataManaged* cursor) return sp; } +jlong +lib::unwind::TARGET::getIP(gnu::gcj::RawDataManaged* cursor) +{ + unw_word_t ip; + int status = unw_get_reg((::unw_cursor_t *) cursor, UNW_REG_IP, &ip); + if (status < 0) + return 0; // bottom of stack. + else + return ip; +} + jint lib::unwind::TARGET::getContext(gnu::gcj::RawDataManaged* context) @@ -445,6 +456,9 @@ lib::unwind::TARGET::createProcInfoFromElfImage(lib::unwind::AddressSpace* addre jboolean needUnwindInfo, lib::unwind::ElfImage* elfImage) { + if (elfImage == NULL) + return new lib::unwind::ProcInfo(UNW_ENOINFO); + unw_proc_info_t *procInfo = (::unw_proc_info_t *) JvAllocBytes(sizeof (::unw_proc_info_t)); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Nov 19 13:14:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 19 Nov 2007 13:14:00 -0000 Subject: [SCM] master: Document testcase, add empty stacktrace test Message-ID: <20071119131436.19286.qmail@sourceware.org> The branch, master has been updated via e05a55a7ba2861173cb86e603b2e312f4c42b197 (commit) from bbf660ad5f803e000274503ad878040f4d604fef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e05a55a7ba2861173cb86e603b2e312f4c42b197 Author: Phil Muldoon Date: Mon Nov 19 13:14:25 2007 +0000 Document testcase, add empty stacktrace test 2007-11-19 Phil Muldoon * TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename variables, document test case, check for empty stacktraces. frysk-core/frysk/proc/dead/.#TestLinuxCore.java ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 4 + frysk-core/frysk/proc/dead/TestLinuxCore.java | 89 +++++++++++++++++-------- 2 files changed, 65 insertions(+), 28 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 4d90ad6..191c1da 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,9 +1,13 @@ 2007-11-19 Phil Muldoon + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename + variables, document test case, check for empty stacktraces. + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Pass executable location to LinuxHost. Fix 5352. Remove unresolved. Fix 11-15 indention oops. + 2007-11-17 Andrew Cagney * TestLinuxCore.java (testLinuxCoreFileStackTrace()): Mark as diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 94f21ec..45eec06 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -134,19 +134,62 @@ public class TestLinuxCore return -1; } + /** + * Test that a corefile backtrace and a live process backtrace + * match on a blocked process + * + **/ public void testLinuxCoreFileStackTrace () { - final Proc ackProc; // = giveMeAProc(); + Proc testProc; + // Create a blocked process, blocked at a signal File exeFile = Config.getPkgLibFile("funit-stacks"); - ackProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + testProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + + StacktraceAction liveStacktrace; + StacktraceAction coreStacktrace; + StringWriter liveStackOutput = new StringWriter(); + StringWriter coreStackOutput = new StringWriter(); - StacktraceAction stacker; - StacktraceAction coreStack; + // Create a Stacktrace of the blocked live process + liveStacktrace = new StacktraceAction(new PrintWriter(liveStackOutput), + testProc, + new RequestStopEvent(Manager.eventLoop), + true, false, false, false, false, false) - StringWriter stringWriter1 = new StringWriter(); - stacker = new StacktraceAction(new PrintWriter(stringWriter1),ackProc, new RequestStopEvent(Manager.eventLoop), true, false,false, false, false, false) + { + + public void addFailed (Object observable, Throwable w) + { + fail("Proc add failed: " + w.getMessage()); + } + }; + + // And run .... + new ProcBlockAction (testProc, liveStacktrace); + assertRunUntilStop("Perform live process Backtrace"); + + // Check that the live process stacktrace acually produces + // something. If not there is a problem beyond this tests + // scope. + assertTrue("Live stack trace is not empty", + liveStackOutput.getBuffer().length() > 0); + + // Create a corefile from blocked process, and model. + String coreFileName = constructCore(testProc); + File testCore = new File(coreFileName); + Host coreHost = new LinuxHost(Manager.eventLoop, + testCore, exeFile); + Proc coreProc = coreHost.getProc(new ProcId(testProc.getPid())); + + // Create a stackktrace of a the corefile process + coreStacktrace = new StacktraceAction(new PrintWriter(coreStackOutput), + coreProc, + new PrintEvent(), + true, false, false, false , + false, false) { public void addFailed (Object observable, Throwable w) @@ -155,31 +198,21 @@ public class TestLinuxCore } }; - new ProcBlockAction (ackProc, stacker); - assertRunUntilStop("perform backtrace"); - - String coreFileName = constructCore(ackProc); - File xtestCore = new File(coreFileName); - - Host lcoreHost = new LinuxHost(Manager.eventLoop, - xtestCore, exeFile); - - Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); + // And run .... + new ProcCoreAction(coreProc, coreStacktrace); + assertRunUntilStop("Perform corefile Backtrace"); - StringWriter stringWriter2 = new StringWriter(); - coreStack = new StacktraceAction(new PrintWriter(stringWriter2),coreProc, new PrintEvent(),true,false,false,false,false, false) - { + // Check that the dead process stacktrace produces something. If + // not there isa problem beyond this tests scope. + assertTrue("Core stack trace is not empty", + coreStackOutput.getBuffer().length() > 0); - public void addFailed (Object observable, Throwable w) - { - fail("Proc add failed: " + w.getMessage()); - } - }; - new ProcCoreAction(coreProc, coreStack); - assertRunUntilStop("perform corebacktrace"); + // Finally, compare live and core stack traces. + assertEquals("Compare stack traces", + liveStackOutput.getBuffer().toString(), + coreStackOutput.getBuffer().toString()); - assertEquals("Compare stack traces",stringWriter1.getBuffer().toString(),stringWriter2.getBuffer().toString()); - xtestCore.delete(); + testCore.delete(); } private static class PrintEvent implements Event hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Nov 19 13:57:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 19 Nov 2007 13:57:00 -0000 Subject: [SCM] master: Fix 5355, missing executable name in LinuxHost. Message-ID: <20071119135742.7691.qmail@sourceware.org> The branch, master has been updated via 1a09ef28c7da47ad245f2a502780e5e592308035 (commit) from e05a55a7ba2861173cb86e603b2e312f4c42b197 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1a09ef28c7da47ad245f2a502780e5e592308035 Author: Phil Muldoon Date: Mon Nov 19 13:57:35 2007 +0000 Fix 5355, missing executable name in LinuxHost. 2007-11-19 Phil Muldoon * TestLinuxCore.java (testInsertedBreakpoint): Pass executable name to corefile LinuxHost . ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 7 +++++-- frysk-core/frysk/proc/dead/TestLinuxCore.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 191c1da..b34d397 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,8 +1,11 @@ 2007-11-19 Phil Muldoon - * TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename - variables, document test case, check for empty stacktraces. + * TestLinuxCore.java (testInsertedBreakpoint): Pass executable + name to corefile LinuxHost . + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename + variables, document test case, check for empty stacktraces. + * TestLinuxCore.java (testLinuxCoreFileStackTrace): Pass executable location to LinuxHost. Fix 5352. Remove unresolved. Fix 11-15 indention oops. diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 45eec06..9eaf26d 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -409,7 +409,7 @@ public class TestLinuxCore String coreFileName = constructCore(ackProc); File xtestCore = new File(coreFileName); Host lcoreHost = new LinuxHost(Manager.eventLoop, - xtestCore); + xtestCore, new File(ackProc.getExe())); Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid())); Task coreTask = coreProc.getMainTask(); hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Nov 19 17:58:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 19 Nov 2007 17:58:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071119175814.29886.qmail@sourceware.org> The branch, master has been updated via fd5a20b87a3d6c171fe8888b6d006b9241f1928c (commit) via 1213a237d4c989ed9f1310f0c823571d78cbb8f5 (commit) from 1a09ef28c7da47ad245f2a502780e5e592308035 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fd5a20b87a3d6c171fe8888b6d006b9241f1928c Merge: 1213a237d4c989ed9f1310f0c823571d78cbb8f5 1a09ef28c7da47ad245f2a502780e5e592308035 Author: Stan Cox Date: Mon Nov 19 12:52:05 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 1213a237d4c989ed9f1310f0c823571d78cbb8f5 Author: Stan Cox Date: Mon Nov 19 12:51:38 2007 -0500 Add indentation to toPrint. (5310) * Type.java (toPrint(PrintWriter, Location, ByteBuffer, Format, int)): Add indent parameter. Change all implementers. (toPrint(PrintWriter writer, int indent)): Likewise. * Value.java (toPrint(PrintWriter, ByteBuffer, Format, int): Likewise. * CompositeType.java (toPrint (PrintWriter, Location, ByteBuffer, * gen-type-funit-tests.py (main): Allow for improved formatting of array of struct and ptr to struct. Format, int)): Remove CompositeType special case. (toPrint (PrintWriter, int)): Likewise. ----------------------------------------------------------------------- Summary of changes: .../frysk/debuginfo/gen-type-expect-tests.py | 4 +- frysk-core/frysk/hpd/EvalCommands.java | 6 +- frysk-core/frysk/pkglibdir/ChangeLog | 5 + frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 80 ++++++++++---------- frysk-core/frysk/value/ArithmeticType.java | 2 +- frysk-core/frysk/value/ArrayType.java | 18 ++-- frysk-core/frysk/value/BooleanType.java | 2 +- frysk-core/frysk/value/ChangeLog | 10 +++ frysk-core/frysk/value/CharType.java | 2 +- frysk-core/frysk/value/CompositeType.java | 38 ++++------ frysk-core/frysk/value/EnumType.java | 4 +- frysk-core/frysk/value/FloatingPointType.java | 2 +- frysk-core/frysk/value/FunctionType.java | 8 +- frysk-core/frysk/value/IntegerType.java | 2 +- frysk-core/frysk/value/PointerType.java | 13 ++-- frysk-core/frysk/value/Type.java | 12 ++-- frysk-core/frysk/value/TypeDecorator.java | 10 +- frysk-core/frysk/value/TypeDef.java | 2 +- frysk-core/frysk/value/UnknownType.java | 6 +- frysk-core/frysk/value/Value.java | 11 ++- frysk-core/frysk/value/Variable.java | 4 +- frysk-core/frysk/value/VoidType.java | 4 +- 22 files changed, 128 insertions(+), 117 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index caf26d5..c8197e2 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -115,6 +115,8 @@ public class %s extends TestLib { assertNotNull(varDie); varType = typeEntry.getType(varDie.getType()); assertNotNull(varType); + // System.out.println("Expect: " + expect[i].symbol + "\\n'" + + // expect[i].output + "'\\nGot:\\n'" + varType.toPrint()); assertEquals(myName + expect[i].symbol, expect[i].output, varType.toPrint()); } } @@ -137,7 +139,7 @@ public class %s extends TestLib { assertNotNull(varDie); DebugInfo debugInfo = new DebugInfo(frame); Value value = debugInfo.print(expect[i].symbol, frame); - value.toPrint(pw, task.getMemory(), Format.NATURAL); + value.toPrint(pw, task.getMemory(), Format.NATURAL, 0); pw.flush(); String valueString = baos.toString(); // System.out.println("Expect: " + expect[i].symbol + diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index 1d6082a..b63e3bf 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -63,10 +63,10 @@ abstract class EvalCommands extends ParameterizedCommand { Type t = e.getType(); if (t instanceof PointerType) { writer.print("("); - t.toPrint(writer); + t.toPrint(writer, 0); writer.print(") "); } - e.getValue().toPrint(writer, memory, format); + e.getValue().toPrint(writer, memory, format, 0); writer.println(); } }; @@ -80,7 +80,7 @@ abstract class EvalCommands extends ParameterizedCommand { static final Printer TYPE = new Printer() { void print(Expression e, PrintWriter writer, Format format, ByteBuffer memory) { - e.getType().toPrint(writer); + e.getType().toPrint(writer, 0); writer.println(); } }; diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 607b5fb..d383139 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-19 Stan Cox + + * gen-type-funit-tests.py (main): Allow for improved formatting of + array of struct and ptr to struct. + 2007-11-15 Stan Cox * funit-quicksort.c: New. diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index a23ae24..123d477 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -417,32 +417,31 @@ c_file.add('''struct { }''', "struct_arr_arr_int", '''{ .arr_arr_int={{1,2},{3,4}}, }''') -# ??? array doesn't know the current indentation level c_file.add('''struct { struct { - int int_var; -} arr_struct[2]; + int int_var; + } arr_struct[2]; }''', "struct_arr_struct", '''{ .arr_struct={{ - .int_var=1, -},{ - .int_var=2, -}}, + .int_var=1, + },{ + .int_var=2, + }}, }''') c_file.add('''struct { union { - int int_var; -} arr_union[4]; + int int_var; + } arr_union[4]; }''', "struct_arr_union", '''{ .arr_union={{ - .int_var=1, -},{ - .int_var=2, -},{ - .int_var=0, -},{ - .int_var=0, -}}, + .int_var=1, + },{ + .int_var=2, + },{ + .int_var=0, + },{ + .int_var=0, + }}, }''') c_file.add('''struct { int * arr_ptr[2]; @@ -532,16 +531,15 @@ c_file.add('''struct { c_file.add('''struct { int (* ptr_arr)[4]; }''', "struct_ptr_arr", "") -# ??? ptr doesn't know the current indentation level c_file.add('''struct { struct { - int int_var; -} * ptr_struct; + int int_var; + } * ptr_struct; }''', "struct_ptr_struct", "") c_file.add('''struct { union { - int int_var; -} * ptr_union; + int int_var; + } * ptr_union; }''', "struct_ptr_union", "") c_file.add('''struct { int * * ptr_ptr; @@ -555,28 +553,28 @@ c_file.add('''union { }''') c_file.add('''union { struct { - int int_var; -} arr_struct[2]; + int int_var; + } arr_struct[2]; }''', "union_arr_struct", '''{ .arr_struct={{ - .int_var=1, -},{ - .int_var=0, -}}, + .int_var=1, + },{ + .int_var=0, + }}, }''') c_file.add('''union { union { - int int_var; - float float_var; -} arr_union[2]; + int int_var; + float float_var; + } arr_union[2]; }''', "union_arr_union", '''{ .arr_union={{ - .int_var=1, - .float_var=1.4012985E-45, -},{ - .int_var=0, - .float_var=0.0, -}}, + .int_var=1, + .float_var=1.4012985E-45, + },{ + .int_var=0, + .float_var=0.0, + }}, }''') c_file.add('''union { int * arr_ptr[4]; @@ -671,13 +669,13 @@ c_file.add('''union { }''', "union_ptr_arr", "") c_file.add('''union { struct { - int int_var; -} * ptr_struct; + int int_var; + } * ptr_struct; }''', "union_ptr_struct", "") c_file.add('''union { union { - int int_var; -} * ptr_union; + int int_var; + } * ptr_union; }''', "union_ptr_union", "") c_file.add('''union { int * * ptr_ptr; diff --git a/frysk-core/frysk/value/ArithmeticType.java b/frysk-core/frysk/value/ArithmeticType.java index 4134a05..a0fc2d7 100644 --- a/frysk-core/frysk/value/ArithmeticType.java +++ b/frysk-core/frysk/value/ArithmeticType.java @@ -70,7 +70,7 @@ public abstract class ArithmeticType return var1.assign(var2); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { writer.print(getName()); } diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 897c9ec..c5e7b06 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -169,8 +169,8 @@ public class ArrayType } void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { - // XXX: Add dimension start/end instead of assuming {} + ByteBuffer memory, Format format, int indent) { + // XXX: Add dimension start/end string instead of assuming {} for (int i = 0; i < dimension.length - 1; i++) writer.print("{"); for (ArrayIterator e = new ArrayIterator(location); e.hasNext(); ) { @@ -184,7 +184,7 @@ public class ArrayType if ((e.idx % stride[i]) == 0) writer.print("{"); } - if (! toPrintVector(writer, type, e, memory, format)) + if (! toPrintVector(writer, type, e, memory, format, indent)) break; } for (int i = 0; i < dimension.length - 1; i++) @@ -192,7 +192,7 @@ public class ArrayType } private boolean toPrintVector(PrintWriter writer, Type type, ArrayIterator e, - ByteBuffer memory, Format format) + ByteBuffer memory, Format format, int indent) { boolean isVector = dimension.length == 1; int vectorLength = dimension[dimension.length - 1]; @@ -222,7 +222,7 @@ public class ArrayType writer.print((char)c.longValue()); } else { - type.toPrint(writer, l, memory, format); + type.toPrint(writer, l, memory, format, indent); if (i < vectorLength - 1) writer.print(","); } @@ -238,8 +238,8 @@ public class ArrayType return noNullByte; } - public void toPrint(String s, PrintWriter writer) { - type.toPrint(writer); + public void toPrint(PrintWriter writer, String s, int indent) { + type.toPrint(writer, indent); writer.print(" " + s); for(int i = 0; i < this.dimension.length; i++) { writer.print("["); @@ -248,8 +248,8 @@ public class ArrayType } } - public void toPrint(PrintWriter writer) { - this.toPrint("", writer); + public void toPrint(PrintWriter writer, int indent) { + this.toPrint(writer, "", indent); } /* getALUs are double dispatch functions to determine diff --git a/frysk-core/frysk/value/BooleanType.java b/frysk-core/frysk/value/BooleanType.java index 63001db..4db5245 100644 --- a/frysk-core/frysk/value/BooleanType.java +++ b/frysk-core/frysk/value/BooleanType.java @@ -71,7 +71,7 @@ public class BooleanType super.putBigInteger(location, BigInteger.ONE); } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { if (getBigInteger(location).equals(BigInteger.ZERO)) writer.print("true"); else diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index d30cda8..3b2cf17 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,13 @@ +2007-11-19 Stan Cox + + * Type.java (toPrint(PrintWriter, Location, ByteBuffer, Format, int)): + Add indent parameter. Change all implementers. + (toPrint(PrintWriter writer, int indent)): Likewise. + * Value.java (toPrint(PrintWriter, ByteBuffer, Format, int): Likewise. + * CompositeType.java (toPrint (PrintWriter, Location, ByteBuffer, + Format, int)): Remove CompositeType special case. + (toPrint (PrintWriter, int)): Likewise. + 2007-11-18 Andrew Cagney * ArrayType.java (completeMember(String,List)): New. diff --git a/frysk-core/frysk/value/CharType.java b/frysk-core/frysk/value/CharType.java index 6319c84..852ccef 100644 --- a/frysk-core/frysk/value/CharType.java +++ b/frysk-core/frysk/value/CharType.java @@ -62,7 +62,7 @@ public class CharType } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { writer.print("'"); writer.print((char) getBigInteger(location).longValue()); writer.print("'"); diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 9937d28..7bc3c43 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -249,8 +249,12 @@ public abstract class CompositeType return new ClassIterator(); } - void toPrint(int indentation, PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + + + void toPrint(PrintWriter writer, Location location, + ByteBuffer memory, Format format, int indentation) { + if (indentation == 0) + indentation = 2; String indentPrefix = ""; for (int indent = 1; indent <= indentation; indent++) indentPrefix = indentPrefix + " "; @@ -269,11 +273,7 @@ public abstract class CompositeType Location loc = location.slice(member.offset, member.type.getSize()); Value val = new Value(member.type, loc); - if (member.type instanceof CompositeType) - ((CompositeType) member.type).toPrint(indentation + 2, - writer, loc, memory, format); - else - val.toPrint(writer, memory, format); + val.toPrint(writer, memory, format, indentation + 2); writer.print(",\n"); } } @@ -282,12 +282,7 @@ public abstract class CompositeType writer.print("}"); } - void toPrint(PrintWriter writer, Location location, ByteBuffer memory, - Format format) { - this.toPrint(2, writer, location, memory, format); - } - - public void toPrint(int indentation, PrintWriter writer) { + public void toPrint(PrintWriter writer, int indentation) { // FIXME: going away. if (this.isTypedef() && this.getName() != null && this.getName().length() > 0) { @@ -295,6 +290,8 @@ public abstract class CompositeType return; } + if (indentation == 0) + indentation = 2; String indentPrefix = ""; for (int indent = 1; indent <= indentation; indent++) indentPrefix = indentPrefix + " "; @@ -344,18 +341,19 @@ public abstract class CompositeType writer.print(indentPrefix); if (member.type.isTypedef()) writer.print(member.type.getName()); - else if (member.type instanceof CompositeType) - ((CompositeType) member.type).toPrint(indentation + 2, writer); else if (member.type instanceof ArrayType) { + // For handling int x[2] printName = false; - ((ArrayType) member.type).toPrint(member.name, writer); + ((ArrayType) member.type).toPrint(writer, member.name, indentation + 2); } else if (member.type instanceof PointerType) { + // For handling int (*x)[2] printName = false; - ((PointerType) member.type).toPrint(" " + member.name, writer); + ((PointerType) member.type).toPrint(writer, " " + member.name, + indentation + 2); } else - member.type.toPrint(writer); + member.type.toPrint (writer, indentation + 2); if (member.type instanceof frysk.value.FunctionType) printName = false; if (printName) { @@ -378,10 +376,6 @@ public abstract class CompositeType writer.print("}"); } - public void toPrint( PrintWriter writer) { - this.toPrint(2, writer); - } - public Value member(Value var1, String member) { DynamicMember mem = (DynamicMember)nameToMember.get(member); diff --git a/frysk-core/frysk/value/EnumType.java b/frysk-core/frysk/value/EnumType.java index ff59cdd..872be47 100644 --- a/frysk-core/frysk/value/EnumType.java +++ b/frysk-core/frysk/value/EnumType.java @@ -86,7 +86,7 @@ public class EnumType extends IntegerTypeDecorator // Should Format be made responsible? So that HEX would override // printing the enum's name and print raw hex instead? void toPrint (PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { BigInteger value = getBigInteger(location); Member map = (Member)valueToMember.get(value); if (map != null) @@ -96,7 +96,7 @@ public class EnumType extends IntegerTypeDecorator format.print(writer, location, this); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { writer.print("enum"); if (getName() != null) { writer.print(" "); diff --git a/frysk-core/frysk/value/FloatingPointType.java b/frysk-core/frysk/value/FloatingPointType.java index 63aa570..9baf827 100644 --- a/frysk-core/frysk/value/FloatingPointType.java +++ b/frysk-core/frysk/value/FloatingPointType.java @@ -56,7 +56,7 @@ public class FloatingPointType } public void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // double-dispatch. format.print(writer, location, this); } diff --git a/frysk-core/frysk/value/FunctionType.java b/frysk-core/frysk/value/FunctionType.java index 44efb9d..4a85845 100644 --- a/frysk-core/frysk/value/FunctionType.java +++ b/frysk-core/frysk/value/FunctionType.java @@ -58,23 +58,23 @@ public class FunctionType void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // XXX: Print the function's name? writer.print("0x"); BigInteger v = new BigInteger(1, location.get(memory.order())); writer.print(Long.toHexString(v.longValue())); } - public void toPrint(PrintWriter writer) { + public void toPrint(PrintWriter writer, int indent) { if (returnType == null) writer.print("void"); else - returnType.toPrint(writer); + returnType.toPrint(writer, 0); writer.print(" "); writer.print(this.getName()); writer.print(" ("); for (int i = 0; i < this.parmTypes.size(); i++) { - ((Type)this.parmTypes.get(i)).toPrint(writer); + ((Type)this.parmTypes.get(i)).toPrint(writer, 0); writer.print(" "); writer.print((String)this.parmNames.get(i)); if (i < this.parmTypes.size() - 1) diff --git a/frysk-core/frysk/value/IntegerType.java b/frysk-core/frysk/value/IntegerType.java index db9166b..2cf02ba 100644 --- a/frysk-core/frysk/value/IntegerType.java +++ b/frysk-core/frysk/value/IntegerType.java @@ -55,7 +55,7 @@ public abstract class IntegerType } void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format) { + ByteBuffer memory, Format format, int indent) { // double-dispatch. format.print(writer, location, this); } diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index f7805d8..0e6cad1 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -76,7 +76,7 @@ public class PointerType } void toPrint(PrintWriter writer, Location location, ByteBuffer memory, - Format format) { + Format format, int indent) { format.print(writer, location, this); hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Nov 19 20:27:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 19 Nov 2007 20:27:00 -0000 Subject: [SCM] master: Eliminate Type.isTypedef and Type.setTypedefFIXME. (5311) Message-ID: <20071119202712.29166.qmail@sourceware.org> The branch, master has been updated via e885dc3eb4142c9a1787b55c0dc33a30b7a07b1f (commit) from fd5a20b87a3d6c171fe8888b6d006b9241f1928c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e885dc3eb4142c9a1787b55c0dc33a30b7a07b1f Author: Stan Cox Date: Mon Nov 19 15:23:58 2007 -0500 Eliminate Type.isTypedef and Type.setTypedefFIXME. (5311) * Type.java (isTypedef): Delete. (setTypedefFIXME): Delete. * CompositeType.java (toPrint): Remove isTypedef reference. * TypeEntry.java (getType): Remove setTypedefFIXME from STRUCTURE_TYPE_. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ frysk-core/frysk/debuginfo/TypeEntry.java | 8 ++------ frysk-core/frysk/value/ChangeLog | 6 ++++++ frysk-core/frysk/value/CompositeType.java | 11 +---------- frysk-core/frysk/value/Type.java | 18 ------------------ 5 files changed, 13 insertions(+), 34 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index b21149f..511f81f 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-19 Stan Cox + + * TypeEntry.java (getType): Remove setTypedefFIXME from STRUCTURE_TYPE_. + 2007-11-17 Andrew Cagney * DebugInfo.java (printNoSymbolTable(String,boolean)): Delete. diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 5ba8c9a..8e7444a 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -325,12 +325,8 @@ public class TypeEntry break; } case DwTag.STRUCTURE_TYPE_: { - boolean noTypeDef = (typeDie.getType() == null); - String name = noTypeDef ? typeDie.getName() : typeDie.getType() - .getName(); - GccStructOrClassType classType = getGccStructOrClassType(type, name); - if (type != typeDie.getType() && noTypeDef == false) - classType.setTypedefFIXME(true); + GccStructOrClassType classType = + getGccStructOrClassType(type, typeDie.getName()); returnType = classType; break; } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 3b2cf17..a36eaef 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,11 @@ 2007-11-19 Stan Cox + * Type.java (isTypedef): Delete. + (setTypedefFIXME): Delete. + * CompositeType.java (toPrint): Remove isTypedef reference. + +2007-11-19 Stan Cox + * Type.java (toPrint(PrintWriter, Location, ByteBuffer, Format, int)): Add indent parameter. Change all implementers. (toPrint(PrintWriter writer, int indent)): Likewise. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 7bc3c43..27de857 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -283,13 +283,6 @@ public abstract class CompositeType } public void toPrint(PrintWriter writer, int indentation) { - // FIXME: going away. - if (this.isTypedef() && this.getName() != null - && this.getName().length() > 0) { - writer.print(this.getName()); - return; - } - if (indentation == 0) indentation = 2; String indentPrefix = ""; @@ -339,9 +332,7 @@ public abstract class CompositeType } } writer.print(indentPrefix); - if (member.type.isTypedef()) - writer.print(member.type.getName()); - else if (member.type instanceof ArrayType) { + if (member.type instanceof ArrayType) { // For handling int x[2] printName = false; ((ArrayType) member.type).toPrint(writer, member.name, indentation + 2); diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index 861e818..f9c16e7 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -58,13 +58,9 @@ public abstract class Type { // XXX: Is NAME a more target dependant attribute? private final String name; - // XXX: Not needed; made redundant by TypeDef. - private boolean isTypedef; - Type (String name, int size) { this.name = name; this.size = size; - this.isTypedef = false; } public int getSize() { @@ -176,20 +172,6 @@ public abstract class Type { throw new InvalidOperatorException(this, ""); } - public boolean isTypedef() - { - return isTypedef; - } - - /** - * FIXME: Instead of setting the typedef, a TypeDef type can be - * created. - */ - public void setTypedefFIXME(boolean isTypedef) - { - this.isTypedef = isTypedef; - } - /** * Pack this TYPE into bigSize and bitOffset. */ hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Mon Nov 19 21:58:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Mon, 19 Nov 2007 21:58:00 -0000 Subject: [SCM] master: Fix bz# 5351. Message-ID: <20071119215805.7354.qmail@sourceware.org> The branch, master has been updated via 3e6a814efd3e79779a6e472ba385e74513f0ca34 (commit) from e885dc3eb4142c9a1787b55c0dc33a30b7a07b1f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3e6a814efd3e79779a6e472ba385e74513f0ca34 Author: Rick Moseley Date: Mon Nov 19 15:57:44 2007 -0600 Fix bz# 5351. * CLI.java: Fix bz# 5351. * RunCommand.java: Ditto. * LoadCommand.java: Ditto. * AttachCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AttachCommand.java | 2 +- frysk-core/frysk/hpd/CLI.java | 12 ++++++---- frysk-core/frysk/hpd/ChangeLog | 7 ++++++ frysk-core/frysk/hpd/LoadCommand.java | 2 +- frysk-core/frysk/hpd/RunCommand.java | 34 +++++++++++++++--------------- 5 files changed, 33 insertions(+), 24 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AttachCommand.java b/frysk-core/frysk/hpd/AttachCommand.java index b19a6c9..90b014f 100644 --- a/frysk-core/frysk/hpd/AttachCommand.java +++ b/frysk-core/frysk/hpd/AttachCommand.java @@ -100,7 +100,7 @@ class AttachCommand extends ParameterizedCommand { cli.outWriter.println(pid); continue; } - cli.doAttach(findProc.proc, -1); + cli.doAttach(findProc.proc); } } diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index c996366..c7374e2 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -74,7 +74,9 @@ public class CLI { //Processes started with run command final HashSet runningProcs = new HashSet(); //Processes loaded with load command - final HashSet loadedProcs = new HashSet(); + final HashMap loadedProcs = new HashMap(); + //Task ID to use + int taskID = -1; private class TaskInfo { DebugInfoFrame frame; @@ -138,7 +140,7 @@ public class CLI { /* * Command handlers */ - public void doAttach(Proc proc, int procID) { + public void doAttach(Proc proc) { synchronized (this) { attached = -1; attachedLatch = new CountDownLatch(1); @@ -159,11 +161,11 @@ public class CLI { } steppingEngine.getBreakpointManager().manageProcess(proc); // If passed a taskID < 0, request a reserved ProcID - if (procID < 0) + if (this.taskID < 0) idManager.manageProc(proc, idManager.reserveProcID()); // Assign this proc to the passed in procID else - idManager.manageProcSelect(proc, procID); + idManager.manageProcSelect(proc, this.taskID); } final PrintWriter outWriter; @@ -448,7 +450,7 @@ public class CLI { * CLI object should be synchronized when using the set. * @return the set */ - public HashSet getLoadedProcs() { + public HashMap getLoadedProcs() { return loadedProcs; } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 29d6c82..7080fa4 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,10 @@ +2007-11-19 Rick Moseley + + * CLI.java: Fix bz #5351. + * RunCommand.java: Ditto. + * LoadCommand.java: Ditto. + * AttachCommand.java: Ditto. + 2007-11-17 Andrew Cagney * EvalCommands.java (Printer): New. diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index d3f61e9..38fd2d0 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -99,7 +99,7 @@ public class LoadCommand extends ParameterizedCommand { } } synchronized (cli) { - cli.getLoadedProcs().add(exeProc); + cli.getLoadedProcs().put(exeProc, new Integer(procID)); } } diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index e680334..3e9bba1 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -50,6 +50,8 @@ import frysk.util.CountDownLatch; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Set; class RunCommand extends Command { // Used to synchronize with updateAttached method @@ -133,21 +135,25 @@ class RunCommand extends Command { } /* If we made it here, a run command was given with no parameters - * and there are either running procs or loaded procs + * and there should be either running procs or loaded procs */ /* This is the case where there are loaded procs */ if (!cli.loadedProcs.isEmpty()) { - Iterator foo = cli.targetset.getTasks(); + Set procSet = cli.loadedProcs.entrySet(); + Iterator foo = procSet.iterator(); while (foo.hasNext()) { - Task task = (Task) foo.next(); - int taskID = cli.idManager.getProcID(task.getProc()); - cli.execCommand("run " + task.getProc().getExe() + " " + - Integer.toString(taskID)); - } - // Clear all of the loaded procs now that they have been run - synchronized(cli) { - cli.loadedProcs.clear(); + Map.Entry me = (Map.Entry)foo.next(); + Proc proc = (Proc) me.getKey(); + Integer taskid = (Integer)me.getValue(); + synchronized(cli) { + cli.taskID = taskid.intValue(); + } + cli.execCommand("run " + proc.getExe()); + procSet.remove(proc); + synchronized(cli) { + cli.taskID = -1; + } } } // Found no loaded procs, print usage message @@ -164,13 +170,7 @@ class RunCommand extends Command { return; } // register with SteppingEngine et.al. - // If a second parameter was passed, it was a specific ProcTaskID to use - if (cmd.size() > 1) - cli.doAttach(runner.launchedTask.getProc(), - Integer.parseInt(cmd.parameter(1))); - // If not, pass a -1 so a new ProcTaskID will be assigned - else - cli.doAttach(runner.launchedTask.getProc(), -1); + cli.doAttach(runner.launchedTask.getProc()); runner.launchedTask.requestUnblock(runner); } hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Tue Nov 20 03:50:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 20 Nov 2007 03:50:00 -0000 Subject: [SCM] master: Fix bz #5369. Message-ID: <20071120035028.27383.qmail@sourceware.org> The branch, master has been updated via 254811a3ee56ca12371db0ada5fb03187fbe44cd (commit) from 3e6a814efd3e79779a6e472ba385e74513f0ca34 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 254811a3ee56ca12371db0ada5fb03187fbe44cd Author: Rick Moseley Date: Mon Nov 19 21:50:18 2007 -0600 Fix bz #5369. * RunCommand.java: Fix bz# 5369; jazz up help message. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/RunCommand.java | 15 ++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 7080fa4..1fe6716 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,9 @@ 2007-11-19 Rick Moseley + * RunCommand.java: Fix bz# 5369; jazz up the help message. + +2007-11-19 Rick Moseley + * CLI.java: Fix bz #5351. * RunCommand.java: Ditto. * LoadCommand.java: Ditto. diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index 3e9bba1..c813b84 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -53,12 +53,17 @@ import java.util.List; import java.util.Map; import java.util.Set; -class RunCommand extends Command { +class RunCommand extends ParameterizedCommand { // Used to synchronize with updateAttached method RunCommand() { super("run program and immediately attach", - "run executable arguments*", - "run program and immediately attach"); + "run ", + "The run command alllows the debuger to run a(any) program(s)" + + " that has(have) been previously loaded via a load command" + + " if no parameters are given. To run an executable, just" + + " give the run command the path to the executable as a" + + " parameter. In either case the debugger attaches immediately" + + " to the process."); } private static class Runner implements TaskObserver.Attached { @@ -119,7 +124,7 @@ class RunCommand extends Command { } - public void interpret(CLI cli, Input cmd) { + public void interpret(CLI cli, Input cmd, Object options) { /* If the run command is given no args, check to see if any procs were loaded with the load command or loaded when fhpd was started */ @@ -174,7 +179,7 @@ class RunCommand extends Command { runner.launchedTask.requestUnblock(runner); } - int complete(CLI cli, Input input, int cursor, List completions) { + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeFileName(cli, input, cursor, completions); } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Tue Nov 20 15:27:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 20 Nov 2007 15:27:00 -0000 Subject: [SCM] master: Use word size of machine to create long type, instead of hard coded size of 8 bytes. Message-ID: <20071120152729.7701.qmail@sourceware.org> The branch, master has been updated via 3f179370e640e8f156df2f90a48855ed11446e34 (commit) from 254811a3ee56ca12371db0ada5fb03187fbe44cd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3f179370e640e8f156df2f90a48855ed11446e34 Author: Teresa Thomas Date: Tue Nov 20 10:24:28 2007 -0500 Use word size of machine to create long type, instead of hard coded size of 8 bytes. frysk-core/frysk/expr/ChangeLog 2007-11-20 Teresa Thomas * CExprEvaluator.g: Use word size of machine to create long type. * TestbedSymTab.java (getWordSize): Return machine word size. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 2 +- frysk-core/frysk/expr/ChangeLog | 7 +++++++ frysk-core/frysk/expr/TestbedSymTab.java | 6 +++++- 3 files changed, 13 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 5de32c6..976e8a4 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -111,7 +111,7 @@ options { // FIXME: The ExprSymTab can provide types such as this. shortType = new SignedType("short", ByteOrder.LITTLE_ENDIAN, 2); intType = new SignedType("int", ByteOrder.LITTLE_ENDIAN, 4); - longType = new SignedType("long", ByteOrder.LITTLE_ENDIAN, 8); + longType = new SignedType("long", ByteOrder.LITTLE_ENDIAN, exprSymTab.getWordSize()); floatType = new FloatingPointType("false", ByteOrder.LITTLE_ENDIAN, 4); doubleType = new FloatingPointType("double", ByteOrder.LITTLE_ENDIAN, 8); } diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 08a71da..eb3fbc5 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,10 @@ +2007-11-20 Teresa Thomas + + * CExprEvaluator.g: Use word size of machine to + create long type. + * TestbedSymTab.java (getWordSize): Return machine + word size. + 2007-11-18 Andrew Cagney * IncompleteMemberException.java: Update Type.complete renamed to diff --git a/frysk-core/frysk/expr/TestbedSymTab.java b/frysk-core/frysk/expr/TestbedSymTab.java index a39b2b1..9dab515 100644 --- a/frysk-core/frysk/expr/TestbedSymTab.java +++ b/frysk-core/frysk/expr/TestbedSymTab.java @@ -43,6 +43,8 @@ import java.util.Iterator; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; import java.util.List; + +import frysk.Config; import frysk.value.ObjectDeclaration; import frysk.value.Type; import frysk.value.Value; @@ -119,7 +121,9 @@ class TestbedSymTab implements ExprSymTab { * Return the wordsize. */ public int getWordSize() { - throw new RuntimeException("no word size"); + // Since no debugee word size available, return word size of + // debugger. Required for some expression evaluation, test cases. + return Config.getWordSize (); } public void complete(String incomplete, List candidates) { hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Tue Nov 20 16:55:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 20 Nov 2007 16:55:00 -0000 Subject: [SCM] master: Fix bz #5373. Message-ID: <20071120165510.25229.qmail@sourceware.org> The branch, master has been updated via c1fd6f37ec54c0d81fa3b56f4611832df6574dcd (commit) from 3f179370e640e8f156df2f90a48855ed11446e34 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c1fd6f37ec54c0d81fa3b56f4611832df6574dcd Author: Rick Moseley Date: Tue Nov 20 10:54:51 2007 -0600 Fix bz #5373. * RunCommand.java: Clear loadedProcs HashMap when done. * TestLoadCommand.java: Add test for the above change. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/RunCommand.java | 4 +++- frysk-core/frysk/hpd/TestLoadCommand.java | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 1fe6716..460da66 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-20 Rick Moseley + + * RunCommand.java: Clear loadedProcs HashMap when done. + * TestLoadCommand.java: Add test for the above change. + 2007-11-19 Rick Moseley * RunCommand.java: Fix bz# 5369; jazz up the help message. diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index c813b84..3f8a0b1 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -155,11 +155,13 @@ class RunCommand extends ParameterizedCommand { cli.taskID = taskid.intValue(); } cli.execCommand("run " + proc.getExe()); - procSet.remove(proc); synchronized(cli) { cli.taskID = -1; } } + synchronized (cli) { + cli.loadedProcs.clear(); + } } // Found no loaded procs, print usage message // XXX Need to fix, add core files and running proc handling diff --git a/frysk-core/frysk/hpd/TestLoadCommand.java b/frysk-core/frysk/hpd/TestLoadCommand.java index 10eeee4..cc709b6 100644 --- a/frysk-core/frysk/hpd/TestLoadCommand.java +++ b/frysk-core/frysk/hpd/TestLoadCommand.java @@ -87,4 +87,20 @@ public class TestLoadCommand extends TestLib { e.expect(5, "[1.0]*" + prompt); e.close(); } + + public void testLoadRunRun() { + e = new HpdTestbed(); + e.send("load " + Config.getPkgLibFile("funit-hello").getPath() + + "\n"); + e.expect(5, "Loaded executable file.*" + prompt); + e.send("load " + Config.getPkgLibFile("funit-hello").getPath() + + "\n"); + e.expect(5, "Loaded executable file.*" + prompt); + e.send("run\n"); + e.expect(5, "Attached to process*"); + e.expect(5, "Attached to process*"); + e.send("run\n"); + e.expect(5, "Error: missing program"); + e.close(); + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 17:23:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 17:23:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sourceware.org/git/frysk Message-ID: <20071120172317.14167.qmail@sourceware.org> The branch, master has been updated via 8789dff1d92139a71529b529fe30aa4200e846e7 (commit) via c5722b7dbd78021357932ea696a92c9224c24152 (commit) via ba5fdd9695f974212a4d6b07362c7cc3071b261d (commit) from c1fd6f37ec54c0d81fa3b56f4611832df6574dcd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8789dff1d92139a71529b529fe30aa4200e846e7 Merge: c5722b7dbd78021357932ea696a92c9224c24152 c1fd6f37ec54c0d81fa3b56f4611832df6574dcd Author: Andrew Cagney Date: Tue Nov 20 12:22:03 2007 -0500 Merge branch 'master' of ssh://sourceware.org/git/frysk commit c5722b7dbd78021357932ea696a92c9224c24152 Author: Andrew Cagney Date: Tue Nov 20 12:21:47 2007 -0500 Prune old releases. commit ba5fdd9695f974212a4d6b07362c7cc3071b261d Author: Andrew Cagney Date: Tue Nov 20 12:13:38 2007 -0500 Create sub-directories for old distros. ----------------------------------------------------------------------- Summary of changes: htdocs/build/{ => debian}/index.html | 0 htdocs/build/{ => fedora}/index.html | 0 htdocs/build/index.html | 128 ++++++++-------------------------- htdocs/build/{ => rhel}/index.html | 0 htdocs/build/{ => ubuntu}/index.html | 0 5 files changed, 29 insertions(+), 99 deletions(-) copy htdocs/build/{ => debian}/index.html (100%) copy htdocs/build/{ => fedora}/index.html (100%) copy htdocs/build/{ => rhel}/index.html (100%) copy htdocs/build/{ => ubuntu}/index.html (100%) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/debian/index.html similarity index 100% copy from htdocs/build/index.html copy to htdocs/build/debian/index.html diff --git a/htdocs/build/index.html b/htdocs/build/fedora/index.html similarity index 100% copy from htdocs/build/index.html copy to htdocs/build/fedora/index.html diff --git a/htdocs/build/index.html b/htdocs/build/index.html index c29f491..40062f2 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -56,14 +56,9 @@ Build or Test Question?
Frysk and Git

-Fedora 8
-Fedora 7
-Fedora Core 6
-Ubuntu - Gutsy
-Ubuntu - Edgy
-Ubuntu - Breezy
-RHEL 5
-RHEL 4
+Fedora
+Ubuntu
+RHEL
Debian

@@ -81,9 +76,7 @@ that all its prerequisites are met.

-
Fedora 8
Fedora -7
Fedora Core 6
RHEL -5
+
Fedora 8
@@ -100,37 +93,41 @@ sudo yum install -y \ For additional updates, check the Fedora -8, Fedora -7, Fedora Core -6, or RHEL -5 tracker bug. +8, tracker bug. + +
+ +For earlier Fedora releases check the Fedora +Page -
Red Hat Enterprise Linux 4
+
RHEL 5.1
-Red Hat Enterprise Linux 4 Update 3 and later include gcc4 -and frysk RPMs that contain everything needed to -build frysk from CVS; just install RPMs for the following: +You will need to install the following:
-transfig xmlto passivetex xmltex \
-gcc4 gcc4-c++ gcc4-java libgcj4-devel \
-sharutils frysk automake ghostscript yelp
+sudo yum install -y \
+    antlr jdom junit gcc-java gcc-c++ \
+    libglade-java-devel libvte-java-devel \
+    automake xmlto transfig eclipse-ecj dogtail \
+    sharutils git audit-libs-devel binutils-devel \
+    yelp libtool make
 
-(A broken dependency in transfig means that ghostscript must also be -explicitly specified.) -

For additional updates, check Red Hat Enterprise Linux 4's tracker -bug's dependency -tree. +For additional updates, RHEL 5 tracker +bug. + +
+ +For earlier RHEL releases check the RHEL Page.

-
Ubuntu (Gutsy Gibbon)
+
Ubuntu (Gutsy Gibbon)
Debian
@@ -150,77 +147,10 @@ For additional updates, check the Debian or Ubuntu tracker bug. -
- -
Ubuntu (Edgy Eft)
- -
- -Building frysk on this release is a big unknown, check the Breeze Badger notes for hints. - -

- -For additional updates, check Ubuntu' tracker bug's dependency -tree. - -

- -
Ubuntu (Breezy Badger)
- -
- -While it's a bit of a struggle, it is possible to build frysk -on Ubuntu: - -
    - -
  • gcc 4.0.1-4ubuntu9 has a number of serious bugs.
    -Download, build, and install a snapshot of the RHEL-4 gcc4 compiler -(found here).
  • - -
  • Make certain that automake-1.9 is installed and selected -as the default: -
    -$ sudo aptitude install automake1.9
    -$ sudo update-alternatives --display automake
    -$ sudo update-alternatives --set automake /usr/bin/automake-1.9
    -
    -
  • - -
  • Per Get -Java Gnome, append the line: -
    -http://www.natemccallum.com/uploads/debs/ ./
    -
    -to the file: -
    -/etc/apt/sources.list
    -
    -and then install the java-gnome stuff vis: -
    -$ sudo aptitude install libglade-java \
    -libgtk-java libglade2-dev libvte-dev
    -$ pkg-config --modversion gtk2-java
    -2.8.1
    -
    -
  • - -
  • jdom had problems building; there appears to be some -missing .jar dependencies.
    Grabbing the jdom out of the RHEL-4 -mega-rpm and building that worked.
  • - -
  • The libvte-java bindings are missing.
    You can hack around -this by disabling the code using vte (there isn't much)
  • - -
+
-For additional updates, check Ubuntu' tracker bug's dependency -tree. +For earlier Ubuntu releases check the Ubuntu +Page.
diff --git a/htdocs/build/index.html b/htdocs/build/rhel/index.html similarity index 100% copy from htdocs/build/index.html copy to htdocs/build/rhel/index.html diff --git a/htdocs/build/index.html b/htdocs/build/ubuntu/index.html similarity index 100% copy from htdocs/build/index.html copy to htdocs/build/ubuntu/index.html hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 17:34:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 17:34:00 -0000 Subject: [SCM] master: Strip out other OSs. Message-ID: <20071120173402.19984.qmail@sourceware.org> The branch, master has been updated via f0d4cdd233d60d14a8f249a0dbc475ac1de5dfa2 (commit) via 6b3637cd355ca8465d26d67011b28a3fe87a4fe3 (commit) from 8789dff1d92139a71529b529fe30aa4200e846e7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f0d4cdd233d60d14a8f249a0dbc475ac1de5dfa2 Author: Andrew Cagney Date: Tue Nov 20 12:32:35 2007 -0500 Strip out other OSs. commit 6b3637cd355ca8465d26d67011b28a3fe87a4fe3 Author: Andrew Cagney Date: Tue Nov 20 12:26:48 2007 -0500 Fix some relative paths. ----------------------------------------------------------------------- Summary of changes: htdocs/build/debian/index.html | 353 +-------------------------- htdocs/build/fedora/index.html | 519 ++-------------------------------------- htdocs/build/rhel/index.html | 498 ++------------------------------------ htdocs/build/ubuntu/index.html | 451 ++--------------------------------- 4 files changed, 69 insertions(+), 1752 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/debian/index.html b/htdocs/build/debian/index.html index c29f491..8d383f7 100644 --- a/htdocs/build/debian/index.html +++ b/htdocs/build/debian/index.html @@ -3,7 +3,7 @@ Frysk System Monitor / Debugger: Build - + @@ -12,32 +12,32 @@
- Frysk logo + Frysk logo - Home + Home  |  - Use Cases + Use Cases  |  - Work Flows + Work Flows  |  - FAQ + FAQ  |  - Get Involved + Get Involved  |  - Bugzilla + Bugzilla  |  Build  |  - Blog + Blog  |  - Documentation + Documentation
- triangle + triangle diff --git a/htdocs/build/fedora/index.html b/htdocs/build/fedora/index.html index c29f491..8397ee0 100644 --- a/htdocs/build/fedora/index.html +++ b/htdocs/build/fedora/index.html @@ -2,8 +2,8 @@ - Frysk System Monitor / Debugger: Build - + Frysk System Monitor / Debugger: Build: Fedora + @@ -12,32 +12,32 @@
@@ -226,337 +226,6 @@ tree. -

Check out frysk from Git

- -

Normally you would use:

- -
-$ git-clone git://sourceware.org/git/frysk.git
-
- -

If you have Git write access to the Frysk repository then:

- -
-$ git-clone ssh://sourceware.org/git/frysk.git
-
- -

Configure and Build

-
-
  • On X86 or X86_64. -
    -$ ( mkdir build && cd build && ../frysk/autogen.sh && make -j2 )
    -
    -
  • - -
  • On a 32-bit-default 64-bit system, such as the PPC64, a 64-bit -build environment needs to be passed to autoconf's -configure as command line arguments, letting -configure save them as part of the configuration process. -This is done by specifying them on autogen.sh's command line, -vis: - -
    -$ ( mkdir build && cd build && ../frysk/autogen.sh \
    -  PKG_CONFIG_PATH=/usr/lib64/pkgconfig \
    -  CC='gcc -m64 -mminimal-toc' \
    -  GCJ='gcj -m64 -mminimal-toc' \
    -  GCJLINK='gcj -m64 -mminimal-toc' \
    -  CXX='g++ -m64 -mminimal-toc' \
    -  && make -j2 )
    -
    -configure then saves them as part of the configuration -
  • -
    - -

    Verify the build environment (optional)

    - -

    Both the frysk-imports and frysk-gtk directories -include tests to ensure that the build system (compiler, kernel, and -libraries) are working correctly. Any FAILing tests should be -investigated (XFAIL and XPASS tests are OK).

    - -
    -$ ( cd build/frysk-imports/tests && make check )
    -$ ( cd build/frysk-gtk/tests && make check )
    -
    - -

    Build

    - -
    $ ( cd build && make -j2 )
    - -

    Test

    - -

    On Fedora Core 5, there should be no failures.

    - -
    -$ ( cd build && make check )
    -
    - -

    Run

    - -

    frysk can then either be run from the build tree ...

    - -
    -$ ./build/frysk-gui/frysk/gui/FryskGui
    -
    - -

    ... or installed and run from there

    - -
    -$ ( cd build && sudo make install )
    -$ frysk
    -
    - -

    Frysk and Git

    -

    - frysk has switched to Git from CVS. See this page for an introduction to frysk and Git.

    - -

    Developer Questions, such as building and testing -frysk, and using CVS; with -answers

    - -

    Building and Testing Questions

    - -
    - -
    How do I add, rename, or delete a Java file?
      -
    • Add, rename, or delete the file.
    • Run ./bootstrap.sh -
    - -
    How do I build under eclipse?
      -
    • Go to Window->Preferences...->General->Workspace->Linked Resources. -
    • Create a new linked resource called "build" and link it to a directory -where you want to build frysk. -
    • Select Project->Build Project or Project->Clean to rebuild the project. -
    • If you already have a build in that directory you can refresh your -project and the jars will be found. -
    - -
    How do I add a Java program that should be installed into -bin/?
    • in the frysk/pkgbindir/ -directory, create .java and .xml files named to -match the installed binary
    • run ./bootstrap.sh
    • -
    For instance, the files frysk/pkgbindir/ftrace.java and -frysk/pkgbindir/ftrace.xml are installed into bin/ -and share/man/ respectively.
    - -
    How do I add a JUnit test-case?
    Following the JUnit -convention:
    • create the test file named -TestBLAH.java
    • add a test method with -signature public void testBLAH () for each test
    • -
    • run ./bootstrap.sh
    - -
    Why do JUnit test-cases live in the same directory as the -code?
    The JUnit documentation may discuss this, but anyway: -
    • so that the test is in the same package as the code being -tested giving fuller access to the packages methods and classes
    • -
    • so that the tests are not missed or burried in a completly -separate source tree
    - -
    How do I do blah blah blah with TestRunner or -funit?
    The command line options accepted by installed -program funit, and described in funit's man page, -are also accepted by the build-tree program TestRunner. For -instance:
     TestRunner -console frysk=FINEST frysk.proc.TestClass 
    runs just -the tests from frysk.proc.TestClass with trace logging -written to the screen.
    Also
     TestRunner frysk.proc.TestClass.testName 
    -
    and
     TestRunner testName(frysk.proc.TestClass) 
    will both -run specific tests.
    - -
    How do I refer to an external executable or data file in a -test?
    Use:
    -
    frysk.junit.Paths.getExecPrefix()
    Which will -refer to either the installed lib{,64}/frysk/ or build tree -frysk/pkglibdir
    -
    frysk.junit.Paths.getDataPrefix()
    Which will -refer to either the installed share/frysk/ or build tree -frysk/pkgdatadir
    - -
    The tesets in the frysk-imports/tests/ and -frysk-gtk/tests/ directories exercise bugs in components such -as the kernel, GCJ and CLASSPATH, and Java-GNOME, and not -frysk. Why?
    Risk Management.
    To ensure onging -stability in the complex and emerging technologies on which -frysk depends, the frysk build tree retains locally -regression tests for bugs reported against those components.
    - -
    Are both gcj and ecj required when building -frysk? If so, why, or why not?
    A frysk -build only requires and always uses gcj when compiling Java -code.
    In addition, to maintaining a high level of code quality, and -ensure that the gcj is only presented with correct Java -source, frysk's build system lints its Java code base using -ecj when that compiler is also available.
    Note that -frysk's build system does not use ecj as the build -compiler as that would result in a non-deterministic build - one that -changes dependant on the presence or absence of ecj.
    - -
    How do I write accessible code that can be seen by dogtail?
    -
    See this link: accessible -tutorial
    - -
    Why are @libdir@ and @pkglibdir@ not permitted in man-pages?
    -
    Because the path is not identical across 32-bit (e.g., -/usr/lib/frysk) and 64-bit (e.g., /usr/lib64/frysk) systems. Instead -manual pages explicitly refer to @pkglib32dir@ and/or -@pkglib64dir@.
    - -
    Using valgrind to debug frysk
    Rick writes.
    As -mentioned in our meeting today, valgrind can be used to help debug -gcj-compiled code, but it helps if a "suppression file" is pointed to -when activated to help filter out errors that are expected due to some -garbage collection tricks. Tom Tromey wrote an article on using -valgrind and is located here. -In this article, Tom points out this -website which has some useful information. And this website in turn -points top a website that has the "suppression file" that should be -used with valgrind. If the suppression file is not used, the output -from valgrind when used on gcj-generated code is several times larger -and contains useless information.***NOTE*** The suppression file in -the last link assumes libgcj.so.6.0.0 is being used. If that file -is to be used with the current version of libgcj all occurrences of -"libgcj.so.6.0.0" must be changed to "libgcj.so.7.0.0" or else no -suppression will take place.
    - -
    - -

    CVS Questions, with Answers

    - -
    - -

    This needs to be rewritten for Git.

    - -
    How do I cut a branch?
    -
    First choose a name for your branch, it should include both your -user name, a terse hint as to the branches purpose, and todays date. -For instance pmuldoon-fcore-20061101, or -cagney-triage12345-20061122. Two tags will be created, -first one for the branch point, and second one for the branch: - -
    -$ cvs -d:.. rtag BRANCH-branchpoint frysk
    -$ cvs -d... rtag -r BRANCH-branchpoint -b BRANCH-branch frysk
    -
    -
    - -
    How do I do import a third-party (vendor) package into -frysk-imports?
    Lets say you want to import the thirds party -sources for elfutils into frysk-imports/elfutils: - -
      - -
    • Obtain a pristine copy of the sources from the vendor -(a.k.a. upstream).
      Typically the official sources come as a tar -ball, download and unpack them in a new directory. For -elfutils, since upstream is the source rpm, rpmbuild --bp on the source rpm is used.
    • - -
    • Change into the top-level directory of the pristine source -tree.
      For instance, for elfutils 0.125, that means -changing into the directory elfutils-0.125, for instance: - -
      -$ pwd
      -.../elfutils-0.125
      -
      -
    • - -
    • Pick a vendor branch (VENDOR_TAG) and release tags -(RELEASE_TAG).
      Make certain that they are meaningful, for instance: - -
      -$ VENDOR=elfutils
      -$ VERSION=0.125
      -$ VENDOR_TAG=ELFUTILS
      -$ RELEASE_TAG=elfutils_0_125
      -
      - -Note that the vendor and release tags can not contain periods.
    • - -
    • Perform the import using a command like:
      -
      -$ cvs -d :ext:${USER}@sourceware.org:/cvs/frysk \
      -    import -m "Import of ${VENDOR} version ${VERSION}" \
      -    frysk-imports/${VENDOR} \
      -    ${VENDOR_TAG} \
      -    ${RELEASE_TAG}
      -
      -For instance: -
      -$ pwd
      -..../elfutils-0.125
      -$ cvs -d :ext:MYNAME@sourceware.org:/cvs/frysk \
      -    import -m "Importing elfutils version 0.125" \
      -    frysk-imports/elfutils \
      -    ELFUTILS \
      -    elfutils_0_125
      -
      -
    -
    - -
    How do I update a third party package in frysk-imports?
    -
    The steps are similar to the initial import above but with a few -key differences. Again elfutils is used as an example. - -
      - -
    • Checkout a copy of the current sources.
    • - -
    • Tag the current sources.
      This is is so that, should things go -wrong, it is possible to quickly get back to the pre-merge version. -Use a tag like: pre-${RELEASE_TAG}-merge, for instance -pre-elfutils_0_125-merge.
    • - -
    • Force a commit to the current sources.
      Please note that this -critical step is missing from the CVS documentation. Without -it, unmodified files will switch to the new import before you are -ready.
      Do this using a command like: - -
      -$ cvs -f commit -f -R -m "Touching all ${VENDOR} files" frysk-imports/elfutils
      -
      -
    • - -
    • Obtain and unpack a pristine copy of the sources.
      See -above.
    • - -
    • Import the pristine copy of the sources onto the vendor -branch.
      See above. Be sure to use the same VENDOR_TAG.
    • - -
    • Note that cvs will automatically add any new files to HEAD, immediately after a cvs import remove those new files until you are ready to merge.
    • - -
    • Check out a merged copy of the imported directory.
      In a new -directory, enter something like: -
      -$ cvs -d ... \
      -    checkout -j ${OLD_RELEASE_TAG} -j ${NEW_RELEASE_TAG} \
      -    frysk-imports/${VENDOR}
      -
      -For instance: -
      -$ cvs -d ... \
      -    checkout -j elfutils_0_120 -j elfutils_0_125 \
      -    frysk-imports/elfutils
      -
      -This will apply all changes between the old and new releases to the
      -mainline.  Fix all clashes.
      -
    • - -
    • Move the updated tree into a full cvs checkout and re-merge, and -commit
    • - -
    • Re-tag with something like post-${RELEASE_TAG}-merge, -e.g. post-elfutils_0_125-merge. - -
    -
    - - -

     

    - Frysk logo + Frysk logo - Home + Home  |  - Use Cases + Use Cases  |  - Work Flows + Work Flows  |  - FAQ + FAQ  |  - Get Involved + Get Involved  |  - Bugzilla + Bugzilla  |  Build  |  - Blog + Blog  |  - Documentation + Documentation
    - triangle + triangle @@ -63,6 +63,8 @@ Fedora systems.

    Fedora 8
    Fedora 7
    Fedora Core 6 +

    + You will need to install the following:

    diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html
    index 32a8e3a..4d0ec81 100644
    --- a/htdocs/build/rhel/index.html
    +++ b/htdocs/build/rhel/index.html
    @@ -45,7 +45,7 @@
     	    
                 

    @@ -63,6 +63,8 @@ RHEL systems.

    RHEL 5 +

    + You will need to install the following:

    @@ -80,6 +82,8 @@ bug.
     
     

    Red Hat Enterprise Linux 4

    +

    + Red Hat Enterprise Linux 4 Update 3 and later include gcc4 and frysk RPMs that contain everything needed to build frysk from CVS; just install RPMs for the following: diff --git a/htdocs/build/ubuntu/index.html b/htdocs/build/ubuntu/index.html index 8bb7b5e..419a05b 100644 --- a/htdocs/build/ubuntu/index.html +++ b/htdocs/build/ubuntu/index.html @@ -45,7 +45,7 @@

    @@ -63,6 +63,8 @@ Ubuntu systems..

    Ubuntu (Gutsy Gibbon)
    Debian

    +

    + You will need to install the following packages:

    @@ -80,6 +82,8 @@ For additional updates, check the
     
     

    Ubuntu (Edgy Eft)

    +

    + Building frysk on this release is a big unknown, check the Breeze Badger notes for hints. @@ -91,6 +95,8 @@ tree.

    Ubuntu (Breezy Badger)

    +

    + While it's a bit of a struggle, it is possible to build frysk on Ubuntu: hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 17:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 17:40:00 -0000 Subject: [SCM] master: More typo's - stray dt> Message-ID: <20071120174056.22858.qmail@sourceware.org> The branch, master has been updated via 5570a66960bf83f7b1a2183af84f01981a294ee1 (commit) from fba9485b006c8aa73fd180f677f042899534be97 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5570a66960bf83f7b1a2183af84f01981a294ee1 Author: Andrew Cagney Date: Tue Nov 20 12:39:43 2007 -0500 More typo's - stray dt> ----------------------------------------------------------------------- Summary of changes: htdocs/build/fedora/index.html | 10 +++++++--- htdocs/build/rhel/index.html | 12 ++++++++---- htdocs/build/ubuntu/index.html | 2 ++ 3 files changed, 17 insertions(+), 7 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/fedora/index.html b/htdocs/build/fedora/index.html index eef29e5..342b7ef 100644 --- a/htdocs/build/fedora/index.html +++ b/htdocs/build/fedora/index.html @@ -57,11 +57,13 @@

    @@ -52,40 +52,16 @@
    -

    -Build or Test Question?
    -Frysk and Git
    -
    -Fedora 8
    -Fedora 7
    -Fedora Core 6
    -Ubuntu - Gutsy
    -Ubuntu - Edgy
    -Ubuntu - Breezy
    -RHEL 5
    -RHEL 4
    -Debian
    -

    -

    This page provides guidelines for building frysk, checked -out from Git, on a number of systems.

    +

    This page provides guidelines for building frysk on older +Fedora systems.

    -

    Set up your system's build environment

    - -

    First you will need to set up your system's build environment so -that all its prerequisites are met.

    - -
    - -
    Fedora 8
    Fedora -7
    Fedora Core 6
    RHEL -5
    - -
    +

    Fedora 8
    Fedora +7
    Fedora Core 6 You will need to install the following: @@ -98,465 +74,12 @@ sudo yum install -y \ yelp libtool make hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 17:37:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 17:37:00 -0000 Subject: [SCM] master: Fix html typos. Message-ID: <20071120173736.21512.qmail@sourceware.org> The branch, master has been updated via fba9485b006c8aa73fd180f677f042899534be97 (commit) via 00a14b14142b8633ff096b997d454e65996de96e (commit) from f0d4cdd233d60d14a8f249a0dbc475ac1de5dfa2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit fba9485b006c8aa73fd180f677f042899534be97 Author: Andrew Cagney Date: Tue Nov 20 12:36:23 2007 -0500 Fix html typos. commit 00a14b14142b8633ff096b997d454e65996de96e Author: Andrew Cagney Date: Tue Nov 20 12:33:49 2007 -0500 Delete unreachable file. ----------------------------------------------------------------------- Summary of changes: htdocs/build/debian/index.html | 244 ---------------------------------------- htdocs/build/fedora/index.html | 4 +- htdocs/build/rhel/index.html | 6 +- htdocs/build/ubuntu/index.html | 8 +- 4 files changed, 15 insertions(+), 247 deletions(-) delete mode 100644 htdocs/build/debian/index.html First 500 lines of diff: diff --git a/htdocs/build/debian/index.html b/htdocs/build/debian/index.html deleted file mode 100644 index 8d383f7..0000000 --- a/htdocs/build/debian/index.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - Frysk System Monitor / Debugger: Build - - - - - - - - - - - -
    - Frysk logo - - Home -  |  - Use Cases -  |  - Work Flows -  |  - FAQ -  |  - Get Involved -  |  - Bugzilla -  |  - Build -  |  - Blog -  |  - Documentation -
    -
    -
    - triangle - - - - - - - - - -
    -   - - -

    Build and Test frysk From Source

    - -
    - -

    -Build or Test Question?
    -Frysk and Git
    -
    -Fedora 8
    -Fedora 7
    -Fedora Core 6
    -Ubuntu - Gutsy
    -Ubuntu - Edgy
    -Ubuntu - Breezy
    -RHEL 5
    -RHEL 4
    -Debian
    -

    - -
    - - -

    This page provides guidelines for building frysk, checked -out from Git, on a number of systems.

    - -

    Set up your system's build environment

    - -

    First you will need to set up your system's build environment so -that all its prerequisites are met.

    - -
    - -
    Fedora 8
    Fedora -7
    Fedora Core 6
    RHEL -5
    - -
    - -You will need to install the following: - -
    -sudo yum install -y \
    -    antlr jdom junit gcc-java gcc-c++ \
    -    libglade-java-devel libvte-java-devel \
    -    automake xmlto transfig eclipse-ecj dogtail \
    -    sharutils git audit-libs-devel binutils-devel \
    -    yelp libtool make
    -
    - -For additional updates, check -the Fedora -8, Fedora -7, Fedora Core -6, or RHEL -5 tracker bug. - -
    - -
    Red Hat Enterprise Linux 4
    - -
    - -Red Hat Enterprise Linux 4 Update 3 and later include gcc4 -and frysk RPMs that contain everything needed to -build frysk from CVS; just install RPMs for the following: - -
    -transfig xmlto passivetex xmltex \
    -gcc4 gcc4-c++ gcc4-java libgcj4-devel \
    -sharutils frysk automake ghostscript yelp
    -
    - -(A broken dependency in transfig means that ghostscript must also be -explicitly specified.) -

    For additional updates, check Red Hat Enterprise Linux 4's tracker -bug's dependency -tree. - -

    - -
    Ubuntu (Gutsy Gibbon)
    -Debian
    - -
    - -You will need to install the following packages: - -
    -g++ binutils-dev make gcj java-gcj-compat-dev \
    -libglade-java-dev libvte-java-dev antlr libjdom1-java \
    -automake libtool pkg-config autotools-dev libaudit-dev \
    -sharutils transfig libxml2-utils xmlto gs-gpl yelp
    -
    - -

    - -For additional updates, check the -Debian or -Ubuntu tracker bug. - -

    - -
    Ubuntu (Edgy Eft)
    - -
    - -Building frysk on this release is a big unknown, check the Breeze Badger notes for hints. - -

    - -For additional updates, check Ubuntu' tracker bug's dependency -tree. - -

    - -
    Ubuntu (Breezy Badger)
    - -
    - -While it's a bit of a struggle, it is possible to build frysk -on Ubuntu: - -
      - -
    • gcc 4.0.1-4ubuntu9 has a number of serious bugs.
      -Download, build, and install a snapshot of the RHEL-4 gcc4 compiler -(found here).
    • - -
    • Make certain that automake-1.9 is installed and selected -as the default: -
      -$ sudo aptitude install automake1.9
      -$ sudo update-alternatives --display automake
      -$ sudo update-alternatives --set automake /usr/bin/automake-1.9
      -
      -
    • - -
    • Per Get -Java Gnome, append the line: -
      -http://www.natemccallum.com/uploads/debs/ ./
      -
      -to the file: -
      -/etc/apt/sources.list
      -
      -and then install the java-gnome stuff vis: -
      -$ sudo aptitude install libglade-java \
      -libgtk-java libglade2-dev libvte-dev
      -$ pkg-config --modversion gtk2-java
      -2.8.1
      -
      -
    • - -
    • jdom had problems building; there appears to be some -missing .jar dependencies.
      Grabbing the jdom out of the RHEL-4 -mega-rpm and building that worked.
    • - -
    • The libvte-java bindings are missing.
      You can hack around -this by disabling the code using vte (there isn't much)
    • - -
    - -For additional updates, check Ubuntu' tracker bug's dependency -tree. - -
    - -
    - - -

     

    -
    -
    -
    - - - - -
    - - diff --git a/htdocs/build/fedora/index.html b/htdocs/build/fedora/index.html index 8397ee0..eef29e5 100644 --- a/htdocs/build/fedora/index.html +++ b/htdocs/build/fedora/index.html @@ -45,7 +45,7 @@

    -

    Build and Test frysk From Source

    +

    Build and Test frysk on Fedora

    -

    Build and Test frysk From Source

    +

    Build and Test frysk on RHEL

    -

    Build and Test frysk From Source

    +

    Build and Test frysk on Ubuntu

    -

    This page provides guidelines for building frysk on older -Fedora systems.

    +

    + +This page provides guidelines for building frysk on older +Fedora systems.

    Fedora 8
    Fedora -7
    Fedora Core 6 +7
    Fedora Core 6

    @@ -76,6 +78,8 @@ sudo yum install -y \ yelp libtool make +

    + For additional updates, check the Fedora 8, Fedora 7, -

    RHEL 5 +

    RHEL 5

    @@ -94,11 +94,15 @@ gcc4 gcc4-c++ gcc4-java libgcj4-devel \ sharutils frysk automake ghostscript yelp +

    + (A broken dependency in transfig means that ghostscript must also be explicitly specified.) -

    For additional updates, check Red Hat Enterprise Linux 4's tracker -bug's dependency + +

    + +For additional updates, check Red Hat Enterprise Linux 4's tracker +bug's dependency tree. diff --git a/htdocs/build/ubuntu/index.html b/htdocs/build/ubuntu/index.html index 419a05b..4f6f736 100644 --- a/htdocs/build/ubuntu/index.html +++ b/htdocs/build/ubuntu/index.html @@ -144,6 +144,8 @@ this by disabling the code using vte (there isn't much) +

    + For additional updates, check Ubuntu' tracker bug's dependency tree. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 17:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 17:42:00 -0000 Subject: [SCM] master: Missing

    Message-ID: <20071120174230.23220.qmail@sourceware.org> The branch, master has been updated via 41b077c1832668f78e4a3e3503bf919ea6472ac6 (commit) from 5570a66960bf83f7b1a2183af84f01981a294ee1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 41b077c1832668f78e4a3e3503bf919ea6472ac6 Author: Andrew Cagney Date: Tue Nov 20 12:41:17 2007 -0500 Missing

    ----------------------------------------------------------------------- Summary of changes: htdocs/build/rhel/index.html | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html index 244296c..a20eea2 100644 --- a/htdocs/build/rhel/index.html +++ b/htdocs/build/rhel/index.html @@ -60,7 +60,6 @@

    This page provides guidelines for building frysk on older RHEL systems.

    -

    RHEL 5

    @@ -76,6 +75,8 @@ sudo yum install -y \ yelp libtool make +

    + For additional updates, check the RHEL 5 tracker bug. hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Tue Nov 20 20:01:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Tue, 20 Nov 2007 20:01:00 -0000 Subject: [SCM] master: swagiaal: DeclarationSearchEngine throws an exception when an object is not found Message-ID: <20071120200059.6105.qmail@sourceware.org> The branch, master has been updated via f81881effcd7fc9c9d35bc20fbac346ca4eaa088 (commit) via 3dc414b91a043a1692b7caec0e03ff9d2563eb0a (commit) from 41b077c1832668f78e4a3e3503bf919ea6472ac6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f81881effcd7fc9c9d35bc20fbac346ca4eaa088 Author: Sami Wagiaalla Date: Tue Nov 20 14:46:48 2007 -0500 swagiaal: DeclarationSearchEngine throws an exception when an object is not found frysk-core/frysk/debuginfo/ChangeLog +2007-11-20 Sami Wagiaalla + + * ObjectDeclarationSearchEngine.java (getVariable): Now throws + ObjectDeclaratioinNotFoundException instead of returning null. + * TestObjectDeclarationSearchEngine.java (verifyVariable): Updated. + * ObjectDeclaratioinNotFoundException.java: New file. + commit 3dc414b91a043a1692b7caec0e03ff9d2563eb0a Author: Sami Wagiaalla Date: Tue Nov 20 14:10:05 2007 -0500 swagiaal: function parameter values are no longer printed frysk-core/frysk/bindir/ChangeLog +2007-11-20 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashC): Removed check for + param values. + (testBackTraceWithDashA): Ditto. + frysk-core/frysk/scopes/ChangeLog +2007-11-20 Sami Wagiaalla + + * Scope.java (toPrint): Added printing for variable + value. + frysk-core/frysk/value/ChangeLog +2007-11-20 Sami Wagiaalla + + * Variable.java (toPrint): No longer prints variable values; + values must now be printed explicitly. + (printValue): Prints variable values. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 6 ++++++ frysk-core/frysk/bindir/TestFstack.java | 4 ++-- frysk-core/frysk/debuginfo/ChangeLog | 7 +++++++ ...va => ObjectDeclaratioinNotFoundException.java} | 7 ++++++- .../debuginfo/ObjectDeclarationSearchEngine.java | 2 +- .../TestObjectDeclarationSearchEngine.java | 10 ++++++++-- frysk-core/frysk/scopes/ChangeLog | 5 +++++ frysk-core/frysk/scopes/Scope.java | 2 ++ frysk-core/frysk/value/ChangeLog | 6 ++++++ frysk-core/frysk/value/Variable.java | 11 +++++------ 10 files changed, 48 insertions(+), 12 deletions(-) copy frysk-core/frysk/debuginfo/{ValueUavailableException.java => ObjectDeclaratioinNotFoundException.java} (92%) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index b936499..4dbced2 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,9 @@ +2007-11-20 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashC): Removed check for + param values. + (testBackTraceWithDashA): Ditto. + 2007-11-19 Phil Muldoon * TestFhd.java (testHpdCore): Remove unresolved. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index 58f1323..d45899d 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -115,7 +115,7 @@ public class TestFstack public void testBackTraceWithDashA () { Expect e = fstack("funit-stack-outlined", new String[] { "-a" }); - e.expect("\\#0 .* in third\\(int arg3 = 3\\)" + e.expect("\\#0 .* in third\\(int arg3\\)" + ".*" + Config.getRootSrcDir() + ".*" + "funit-stack-outlined" + "\\.c#" + ".*int var3.*"); @@ -124,7 +124,7 @@ public class TestFstack public void testBackTraceWithDashC () { Expect e = fstack("funit-stack-outlined", new String[] { "-c" }); - e.expect("\\#0 .* in third\\(int arg3 = 3\\)" + e.expect("\\#0 .* in third\\(int arg3\\)" + ".*" + Config.getRootSrcDir() + ".*" + "funit-stack-outlined" + "\\.c#"); e.expect("\\#1"); diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 511f81f..76f2ed8 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,10 @@ +2007-11-20 Sami Wagiaalla + + * ObjectDeclarationSearchEngine.java (getVariable): Now throws + ObjectDeclaratioinNotFoundException instead of returning null. + * TestObjectDeclarationSearchEngine.java (verifyVariable): Updated. + * ObjectDeclaratioinNotFoundException.java: New file. + 2007-11-19 Stan Cox * TypeEntry.java (getType): Remove setTypedefFIXME from STRUCTURE_TYPE_. diff --git a/frysk-core/frysk/debuginfo/ValueUavailableException.java b/frysk-core/frysk/debuginfo/ObjectDeclaratioinNotFoundException.java similarity index 92% copy from frysk-core/frysk/debuginfo/ValueUavailableException.java copy to frysk-core/frysk/debuginfo/ObjectDeclaratioinNotFoundException.java index 3b73bee..29df295 100644 --- a/frysk-core/frysk/debuginfo/ValueUavailableException.java +++ b/frysk-core/frysk/debuginfo/ObjectDeclaratioinNotFoundException.java @@ -39,11 +39,16 @@ package frysk.debuginfo; -public class ValueUavailableException extends RuntimeException { +public class ObjectDeclaratioinNotFoundException extends RuntimeException { + + public ObjectDeclaratioinNotFoundException(String name) { + super("Object "+ name + " was not found"); + } /** * */ private static final long serialVersionUID = 1L; + } diff --git a/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java b/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java index 62864b0..363569c 100644 --- a/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java +++ b/frysk-core/frysk/debuginfo/ObjectDeclarationSearchEngine.java @@ -92,7 +92,7 @@ public class ObjectDeclarationSearchEngine implements ExprSymTab{ scope = scope.getOuter(); } - return null; + throw new ObjectDeclaratioinNotFoundException(name); } public Type getType(Variable variable) { diff --git a/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java b/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java index b861250..804e8bd 100644 --- a/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java +++ b/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java @@ -166,8 +166,14 @@ public class TestObjectDeclarationSearchEngine extends TestLib{ assertTrue("Found the correct variable", variable.getLineNumber() == variableLine); //Negative test: - variable = (Variable) objectDeclarationSearchEngine.getVariable("NOT"+variableName); - assertNull("Bogus object was not found", variable); + try { + variable = (Variable) objectDeclarationSearchEngine.getVariable("NOT"+variableName); + assertTrue("Exception was thrown", false); + } catch (ObjectDeclaratioinNotFoundException e) { + // exception was thrown + } + + } } diff --git a/frysk-core/frysk/scopes/ChangeLog b/frysk-core/frysk/scopes/ChangeLog index 499343f..2f114b5 100644 --- a/frysk-core/frysk/scopes/ChangeLog +++ b/frysk-core/frysk/scopes/ChangeLog @@ -1,3 +1,8 @@ +2007-11-20 Sami Wagiaalla + + * Scope.java (toPrint): Added printing for variable + value. + 2007-11-09 Sami Wagiaalla * Composite.java (getType): New function. diff --git a/frysk-core/frysk/scopes/Scope.java b/frysk-core/frysk/scopes/Scope.java index 0008ba4..d30d068 100644 --- a/frysk-core/frysk/scopes/Scope.java +++ b/frysk-core/frysk/scopes/Scope.java @@ -197,6 +197,8 @@ public class Scope writer.println(); writer.print(indentString + " "); variable.toPrint(writer, frame); + writer.print(" = "); + variable.printValue(writer, frame); writer.print(" "); variable.printLineCol(writer); writer.flush(); diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index a36eaef..da2438c 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,9 @@ +2007-11-20 Sami Wagiaalla + + * Variable.java (toPrint): No longer prints variable values; + values must now be printed explicitly. + (printValue): Prints variable values. + 2007-11-19 Stan Cox * Type.java (isTypedef): Delete. diff --git a/frysk-core/frysk/value/Variable.java b/frysk-core/frysk/value/Variable.java index 297eeca..c8050f6 100644 --- a/frysk-core/frysk/value/Variable.java +++ b/frysk-core/frysk/value/Variable.java @@ -51,10 +51,6 @@ import frysk.debuginfo.TypeEntry; import frysk.debuginfo.ValueUavailableException; import frysk.debuginfo.VariableOptimizedOutException; import frysk.isa.ISA; -import frysk.value.ObjectDeclaration; -import frysk.value.Format; -import frysk.value.Type; -import frysk.value.Value; /** * This class contains the static information corresponding to a @@ -109,7 +105,10 @@ public class Variable extends ObjectDeclaration{ type.toPrint(printWriter, 0); printWriter.print(" "); printWriter.print(this.getName()); - printWriter.print(" = "); + + } + + public void printValue(PrintWriter printWriter, DebugInfoFrame frame){ try { Value value = getValue(frame); value.toPrint(printWriter, frame.getTask().getMemory(), @@ -122,7 +121,7 @@ public class Variable extends ObjectDeclaration{ printWriter.print("< ERROR >"); } } - + public void printLineCol(PrintWriter printWriter) { printWriter.print("line#"); try { hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Nov 20 22:05:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 20 Nov 2007 22:05:00 -0000 Subject: [SCM] master: Remove BaseTypes.java. Message-ID: <20071120220535.7314.qmail@sourceware.org> The branch, master has been updated via e9a2510db6ab13d940120d232caa347cdabc6b93 (commit) via dfc486258b2df2dd8e4c5f1fa146017a21f7422e (commit) from f81881effcd7fc9c9d35bc20fbac346ca4eaa088 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e9a2510db6ab13d940120d232caa347cdabc6b93 Author: Stan Cox Date: Tue Nov 20 17:00:21 2007 -0500 Remove BaseTypes.java. * BaseTypes.java: Remove. commit dfc486258b2df2dd8e4c5f1fa146017a21f7422e Author: Stan Cox Date: Tue Nov 20 16:53:44 2007 -0500 Remove BaseTypes.java. * TypeEntry.java (getType): Remove reference to DwarfDie.getBaseType(). * BaseTypes.java: Remove. * DwarfDie.java (getBaseType): Remove. * cni/DwarfDie.cxx (DwarfDie:::get_base_type): Remove ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 + frysk-core/frysk/debuginfo/TypeEntry.java | 67 +++++-------- frysk-sys/lib/dwfl/BaseTypes.java | 156 ----------------------------- frysk-sys/lib/dwfl/ChangeLog | 6 + frysk-sys/lib/dwfl/DwarfDie.java | 31 +----- frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 59 ----------- 6 files changed, 38 insertions(+), 285 deletions(-) delete mode 100644 frysk-sys/lib/dwfl/BaseTypes.java First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 76f2ed8..a088723 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-20 Stan Cox + + * TypeEntry.java (getType): Remove reference to DwarfDie.getBaseType(). + 2007-11-20 Sami Wagiaalla * ObjectDeclarationSearchEngine.java (getVariable): Now throws diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 8e7444a..0af1b45 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -63,9 +63,9 @@ import inua.eio.ByteOrder; import java.util.ArrayList; import java.util.HashMap; -import lib.dwfl.BaseTypes; import lib.dwfl.DwAccess; import lib.dwfl.DwAt; +import lib.dwfl.DwAte; import lib.dwfl.DwAttributeNotFoundException; import lib.dwfl.DwTag; import lib.dwfl.DwarfDie; @@ -333,8 +333,8 @@ public class TypeEntry case DwTag.ENUMERATION_TYPE_: { DwarfDie subrange = type.getChild(); EnumType enumType = new EnumType(typeDie.getName(), - byteorder, - type.getAttrConstant(DwAt.BYTE_SIZE)); + byteorder, + getByteSize(type)); while (subrange != null) { enumType.addMember(subrange.getName(), subrange .getAttrConstant(DwAt.CONST_VALUE)); @@ -351,49 +351,31 @@ public class TypeEntry returnType = new ConstType(getType(type.getType())); break; } - case DwTag.BASE_TYPE_: { - switch (type.getBaseType()) { - case BaseTypes.baseTypeLong: - returnType = new SignedType(type.getName(), byteorder, 8); + case DwTag.BASE_TYPE_: + switch (type.getAttrConstant(DwAt.ENCODING)) { + case DwAte.SIGNED_: + returnType = new SignedType(type.getName(), byteorder, + getByteSize(type)); + break; + case DwAte.SIGNED_CHAR_: + returnType = new CharType(type.getName(), byteorder, + getByteSize(type), true); break; - case BaseTypes.baseTypeUnsignedLong: - returnType = new UnsignedType(type.getName(), byteorder, 8); - break; - case BaseTypes.baseTypeInteger: - returnType = new SignedType(type.getName(), byteorder, 4); - break; - case BaseTypes.baseTypeUnsignedInteger: - returnType = new UnsignedType(type.getName(), byteorder, 4); - break; - case BaseTypes.baseTypeShort: - returnType = new SignedType(type.getName(), byteorder, 2); - break; - case BaseTypes.baseTypeUnsignedShort: - returnType = new UnsignedType(type.getName(), byteorder, 2); - break; - case BaseTypes.baseTypeByte: - returnType = new SignedType(type.getName(), byteorder, 1); - break; - case BaseTypes.baseTypeUnsignedByte: - returnType = new UnsignedType(type.getName(), byteorder, 1); - break; - case BaseTypes.baseTypeChar: - returnType = new CharType(type.getName(), byteorder, - type.getAttrConstant(DwAt.BYTE_SIZE), false); - break; - case BaseTypes.baseTypeUnsignedChar: - returnType = new CharType(type.getName(), byteorder, - type.getAttrConstant(DwAt.BYTE_SIZE), true); - break; - case BaseTypes.baseTypeFloat: - returnType = StandardTypes.getFloatType(byteorder); - break; - case BaseTypes.baseTypeDouble: - returnType = StandardTypes.getDoubleType(byteorder); + case DwAte.UNSIGNED_: + returnType = new UnsignedType(type.getName(), byteorder, + getByteSize(type)); + break; + case DwAte.UNSIGNED_CHAR_: + returnType = new CharType(type.getName(), byteorder, + getByteSize(type), false); break; + case DwAte.FLOAT_: + if (getByteSize(type) == 4) + returnType = StandardTypes.getFloatType(byteorder); + else if (getByteSize(type) == 8) + returnType = StandardTypes.getDoubleType(byteorder); } } - } if (returnType != null) { dieHash.put(new Integer(type.getOffset()), returnType); @@ -402,5 +384,4 @@ public class TypeEntry else return new UnknownType(typeDie.getName()); } - } diff --git a/frysk-sys/lib/dwfl/BaseTypes.java b/frysk-sys/lib/dwfl/BaseTypes.java deleted file mode 100644 index 448ae11..0000000 --- a/frysk-sys/lib/dwfl/BaseTypes.java +++ /dev/null @@ -1,156 +0,0 @@ - -// This file is part of the program FRYSK. -// -// Copyright 2005, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -/** - * Location of a variable. - */ -package lib.dwfl; - -// This is a good candidate for 1.5 enum -public final class BaseTypes { - public final static int baseTypeByte = 1, - baseTypeUnsignedByte = 2, - baseTypeChar = 3, - baseTypeUnsignedChar = 4, - baseTypeShort = 5, - baseTypeUnsignedShort = 6, - baseTypeUnicode = 7, - baseTypeInteger = 8, - baseTypeUnsignedInteger = 9, - baseTypeLong = 10, - baseTypeUnsignedLong = 11, - baseTypeFloat = 12, - baseTypeDouble = 13, - baseTypeLongDouble = 14; - - public final static int getTypeSize(int type) - { - switch (type) - { - case baseTypeByte: - return 1; - case baseTypeUnsignedByte: - return 1; - case baseTypeChar: - return 2; - case baseTypeUnsignedChar: - return 2; - case baseTypeShort: - return 2; - case baseTypeUnsignedShort: - return 2; - case baseTypeInteger: - return 4; - case baseTypeUnsignedInteger: - return 4; - case baseTypeLong: - return 8; - case baseTypeUnsignedLong: - return 8; - case baseTypeFloat: - return 4; - case baseTypeDouble: - return 8; - case baseTypeLongDouble: - return 16; - default: - return 0; - } - } - - /** - * @param type - * @return true if type is a byte, short, or int. - */ - public final static boolean isInteger(int type) - { - switch (type) - { - case baseTypeByte: - case baseTypeUnsignedByte: - case baseTypeShort: - case baseTypeUnsignedShort: - case baseTypeInteger: - case baseTypeUnsignedInteger: - return true; - default: - return false; - } - } - - /** - * @param type - * @return true if type is a byte, short, int, or long. - */ - public final static boolean isLong(int type) - { - switch (type) - { - case baseTypeByte: - case baseTypeUnsignedByte: - case baseTypeShort: - case baseTypeUnsignedShort: - case baseTypeInteger: - case baseTypeUnsignedInteger: - case baseTypeLong: - case baseTypeUnsignedLong: - return true; - default: - return false; - } - } - - /** - * @param type - * @return true if type is a float or double. - */ - public final static boolean isFloat(int type) - { - switch (type) - { - case baseTypeFloat: - case baseTypeDouble: - case baseTypeLongDouble: - return true; - default: - return false; - } - } -} diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 010d55b..7debe8b 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,9 @@ +2007-11-20 Stan Cox + + * BaseTypes.java: Remove. + * DwarfDie.java (getBaseType): Remove. + * cni/DwarfDie.cxx (DwarfDie:::get_base_type): Remove + 2007-11-15 Sami Wagiaalla * DwAttributeNotFoundException.java: New file. diff --git a/frysk-sys/lib/dwfl/DwarfDie.java b/frysk-sys/lib/dwfl/DwarfDie.java index 63e7cfe..0868d42 100644 --- a/frysk-sys/lib/dwfl/DwarfDie.java +++ b/frysk-sys/lib/dwfl/DwarfDie.java @@ -226,13 +226,6 @@ abstract public class DwarfDie { return die; } - /** - * @return the scalar type for this type die. - */ - public int getBaseType() { - return get_base_type(this.getPointer()); - } - public boolean getAttrBoolean(DwAt attr) { return get_attr_boolean(this.getPointer(), attr.hashCode()); } @@ -325,25 +318,11 @@ abstract public class DwarfDie { } public String toString() { - String typeStr; + StringBuilder stringBuilder= new StringBuilder(); DwarfDie type = getUltimateType(); - if (type == null) - typeStr = "void"; - else if (type.getBaseType() == BaseTypes.baseTypeLong) - typeStr = "long"; - else if (type.getBaseType() == BaseTypes.baseTypeInteger) - typeStr = "int"; - else if (type.getBaseType() == BaseTypes.baseTypeShort) - typeStr = "short"; - else if (type.getBaseType() == BaseTypes.baseTypeByte) - typeStr = "short"; - else if (type.getBaseType() == BaseTypes.baseTypeFloat) - typeStr = "float"; - else if (type.getBaseType() == BaseTypes.baseTypeDouble) - typeStr = "double"; - else - typeStr = ""; - return typeStr; + stringBuilder.append(this.getTag() + " Name: " + this.getName()); + stringBuilder.append(" Type: " + type.toString()); + return stringBuilder.toString(); } public StringBuilder toPrint(){ @@ -436,8 +415,6 @@ abstract public class DwarfDie { private native long get_sibling (long addr); - private native int get_base_type (long addr); - private native boolean get_attr_boolean (long addr, int attr); private native int get_attr_constant (long addr, int attr); diff --git a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx index af9ab88..810882e 100644 --- a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx +++ b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx @@ -47,7 +47,6 @@ #include #include "lib/dwfl/DwarfDie.h" -#include "lib/dwfl/BaseTypes.h" #include "lib/dwfl/DwarfDieFactory.h" #include "lib/dwfl/DwarfException.h" #include "lib/dwfl/DwAttributeNotFoundException.h" @@ -399,64 +398,6 @@ lib::dwfl::DwarfDie::get_original_die (jlong var_die) } jint -lib::dwfl::DwarfDie::get_base_type (jlong var_die) -{ - Dwarf_Die *type_die = (Dwarf_Die*) var_die; - Dwarf_Attribute type_attr; - while (type_die && (dwarf_tag (type_die) == DW_TAG_volatile_type - || (dwarf_tag (type_die) == DW_TAG_const_type))) - { - dwarf_attr_integrate (type_die, DW_AT_type, &type_attr); - dwarf_formref_die (&type_attr, type_die); - } - - if (dwarf_tag (type_die) == DW_TAG_base_type) - { - Dwarf_Word byte_size; - Dwarf_Word encoding; - Dwarf_Attribute type_attr; - if (dwarf_attr_integrate (type_die, DW_AT_byte_size, &type_attr)) - dwarf_formudata (&type_attr, &byte_size); - else return 0; - if (dwarf_attr_integrate (type_die, DW_AT_encoding, &type_attr)) - dwarf_formudata (&type_attr, &encoding); - switch (byte_size) - { - case 1: - switch (encoding) - { - case DW_ATE_signed: return lib::dwfl::BaseTypes::baseTypeByte; - case DW_ATE_unsigned: return lib::dwfl::BaseTypes::baseTypeUnsignedByte; - case DW_ATE_signed_char: return lib::dwfl::BaseTypes::baseTypeChar; - case DW_ATE_unsigned_char: return lib::dwfl::BaseTypes::baseTypeUnsignedChar; - } - case 2: - switch (encoding) - { - case DW_ATE_signed: return lib::dwfl::BaseTypes::baseTypeShort; - case DW_ATE_unsigned: return lib::dwfl::BaseTypes::baseTypeUnsignedShort; - case DW_ATE_unsigned_char: return lib::dwfl::BaseTypes::baseTypeUnicode; - } - case 4: - switch (encoding) - { - case DW_ATE_signed: return lib::dwfl::BaseTypes::baseTypeInteger; - case DW_ATE_unsigned: return lib::dwfl::BaseTypes::baseTypeUnsignedInteger; - case DW_ATE_float: return lib::dwfl::BaseTypes::baseTypeFloat; - } - case 8: - switch (encoding) - { - case DW_ATE_signed: return lib::dwfl::BaseTypes::baseTypeLong; - case DW_ATE_unsigned: return lib::dwfl::BaseTypes::baseTypeUnsignedLong; - case DW_ATE_float: return lib::dwfl::BaseTypes::baseTypeDouble; - } - } - } - return 0; -} - -jint lib::dwfl::DwarfDie::get_tag (jlong die_p) { Dwarf_Die *die = (Dwarf_Die*)die_p; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 20 22:32:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 20 Nov 2007 22:32:00 -0000 Subject: [SCM] master: frysk-core/frysk/isa/ChangeLog Message-ID: <20071120223223.23132.qmail@sourceware.org> The branch, master has been updated via 6f7c27b1111dfb66c7fcc05999f8b491a411daad (commit) from e9a2510db6ab13d940120d232caa347cdabc6b93 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6f7c27b1111dfb66c7fcc05999f8b491a411daad Author: Andrew Cagney Date: Tue Nov 20 17:31:25 2007 -0500 frysk-core/frysk/isa/ChangeLog 2007-11-20 Andrew Cagney * X8664Registers.java (XMM0, XMM1, XMM2, XMM3, XMM4, XMM5) (XMM6, XMM7, XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14) (XMM15, FS_BASE, GS_BASE): Define. frysk-core/frysk/proc/ChangeLog 2007-11-20 Andrew Cagney * X86BankRegisters.java: Use X8664Registers.XMM0 et.al., ORIG_RAX, RFLAGS, GS_BASE, FS_BASE. frysk-core/frysk/util/ChangeLog 2007-11-20 Andrew Cagney * X8664LinuxElfCorefile.java: Fix typo; "eflags" -> "rflags". ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 8 ++++ frysk-core/frysk/isa/X8664Registers.java | 40 ++++++++++++++++++++ frysk-core/frysk/proc/ChangeLog | 5 +++ frysk-core/frysk/proc/X86BankRegisters.java | 42 +++++++++++----------- frysk-core/frysk/util/ChangeLog | 4 ++ frysk-core/frysk/util/X8664LinuxElfCorefile.java | 2 +- 6 files changed, 79 insertions(+), 22 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 195f4bc..3545ad6 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,7 +1,15 @@ +2007-11-20 Andrew Cagney + + * X8664Registers.java (XMM0, XMM1, XMM2, XMM3, XMM4, XMM5) + (XMM6, XMM7, XMM8, XMM9, XMM10, XMM11, XMM12, XMM13, XMM14) + (XMM15, FS_BASE, GS_BASE): Define. + 2007-11-10 Jose Flavio Aguilar Paulino + * PPC64Registers.java: Fixing Power64 registers and groups. 2007-11-09 Jose Flavio Aguilar Paulino + * Fixing Power32 ISA. Patching the registers and creating register group diff --git a/frysk-core/frysk/isa/X8664Registers.java b/frysk-core/frysk/isa/X8664Registers.java index d76efba..29eb635 100644 --- a/frysk-core/frysk/isa/X8664Registers.java +++ b/frysk-core/frysk/isa/X8664Registers.java @@ -100,6 +100,46 @@ public class X8664Registers extends Registers { public static final Register SS = new Register("ss", StandardTypes.INT16L_T); + public static final Register FS_BASE + = new Register("fs_base", StandardTypes.INT64L_T); + public static final Register GS_BASE + = new Register("gs_base", StandardTypes.INT64L_T); + + // Multi-media registers. + + public static final Register XMM0 + = new Register("xmm0", StandardTypes.INT64L_T); + public static final Register XMM1 + = new Register("xmm1", StandardTypes.INT64L_T); + public static final Register XMM2 + = new Register("xmm2", StandardTypes.INT64L_T); + public static final Register XMM3 + = new Register("xmm3", StandardTypes.INT64L_T); + public static final Register XMM4 + = new Register("xmm4", StandardTypes.INT64L_T); + public static final Register XMM5 + = new Register("xmm5", StandardTypes.INT64L_T); + public static final Register XMM6 + = new Register("xmm6", StandardTypes.INT64L_T); + public static final Register XMM7 + = new Register("xmm7", StandardTypes.INT64L_T); + public static final Register XMM8 + = new Register("xmm8", StandardTypes.INT64L_T); + public static final Register XMM9 + = new Register("xmm9", StandardTypes.INT64L_T); + public static final Register XMM10 + = new Register("xmm10", StandardTypes.INT64L_T); + public static final Register XMM11 + = new Register("xmm11", StandardTypes.INT64L_T); + public static final Register XMM12 + = new Register("xmm12", StandardTypes.INT64L_T); + public static final Register XMM13 + = new Register("xmm13", StandardTypes.INT64L_T); + public static final Register XMM14 + = new Register("xmm14", StandardTypes.INT64L_T); + public static final Register XMM15 + = new Register("xmm15", StandardTypes.INT64L_T); + public static final Register DR0 = new Register("dr0", StandardTypes.INT32L_T); public static final Register DR1 diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index b0238b2..a4c2635 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-11-20 Andrew Cagney + + * X86BankRegisters.java: Use X8664Registers.XMM0 et.al., ORIG_RAX, + RFLAGS, GS_BASE, FS_BASE. + 2007-11-15 Petr Machata * TestTaskObserverCode.java (testCodeOverFork): New test. diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/proc/X86BankRegisters.java index 0c49c65..fdb383b 100644 --- a/frysk-core/frysk/proc/X86BankRegisters.java +++ b/frysk-core/frysk/proc/X86BankRegisters.java @@ -119,16 +119,16 @@ public class X86BankRegisters { .add(new BankRegister(0, 8, 8, X8664Registers.R14)) .add(new BankRegister(0, 0, 8, X8664Registers.R15)) .add(new BankRegister(0, 128, 8, X8664Registers.RIP)) - .add(new BankRegister(0, 144, 8, "eflags")) + .add(new BankRegister(0, 144, 8, X8664Registers.RFLAGS)) .add(new BankRegister(0, 136, 8, "cs")) .add(new BankRegister(0, 160, 8, "ss")) .add(new BankRegister(0, 184, 8, "ds")) .add(new BankRegister(0, 192, 8, "es")) .add(new BankRegister(0, 200, 8, "fs")) .add(new BankRegister(0, 208, 8, "gs")) - .add(new BankRegister(0, 120, 8, "orig_rax")) - .add(new BankRegister(0, 168, 8, "fs_base")) - .add(new BankRegister(0, 176, 8, "gs_base")) + .add(new BankRegister(0, 120, 8, X8664Registers.ORIG_RAX)) + .add(new BankRegister(0, 168, 8, X8664Registers.FS_BASE)) + .add(new BankRegister(0, 176, 8, X8664Registers.GS_BASE)) .add(new BankRegister(1, 0, 2, "cwd")) .add(new BankRegister(1, 2, 2, "swd")) .add(new BankRegister(1, 4, 2, "ftw")) @@ -145,22 +145,22 @@ public class X86BankRegisters { .add(new BankRegister(1, 112, 10, X87Registers.ST5)) .add(new BankRegister(1, 128, 10, X87Registers.ST6)) .add(new BankRegister(1, 144, 10, X87Registers.ST7)) - .add(new BankRegister(1, 160, 16, "xmm0")) - .add(new BankRegister(1, 176, 16, "xmm1")) - .add(new BankRegister(1, 192, 16, "xmm2")) - .add(new BankRegister(1, 208, 16, "xmm3")) - .add(new BankRegister(1, 224, 16, "xmm4")) - .add(new BankRegister(1, 240, 16, "xmm5")) - .add(new BankRegister(1, 256, 16, "xmm6")) - .add(new BankRegister(1, 272, 16, "xmm7")) - .add(new BankRegister(1, 288, 16, "xmm8")) - .add(new BankRegister(1, 304, 16, "xmm9")) - .add(new BankRegister(1, 320, 16, "xmm10")) - .add(new BankRegister(1, 336, 16, "xmm11")) - .add(new BankRegister(1, 352, 16, "xmm12")) - .add(new BankRegister(1, 368, 16, "xmm13")) - .add(new BankRegister(1, 384, 16, "xmm14")) - .add(new BankRegister(1, 400, 16, "xmm15")) + .add(new BankRegister(1, 160, 16, X8664Registers.XMM0)) + .add(new BankRegister(1, 176, 16, X8664Registers.XMM1)) + .add(new BankRegister(1, 192, 16, X8664Registers.XMM2)) + .add(new BankRegister(1, 208, 16, X8664Registers.XMM3)) + .add(new BankRegister(1, 224, 16, X8664Registers.XMM4)) + .add(new BankRegister(1, 240, 16, X8664Registers.XMM5)) + .add(new BankRegister(1, 256, 16, X8664Registers.XMM6)) + .add(new BankRegister(1, 272, 16, X8664Registers.XMM7)) + .add(new BankRegister(1, 288, 16, X8664Registers.XMM8)) + .add(new BankRegister(1, 304, 16, X8664Registers.XMM9)) + .add(new BankRegister(1, 320, 16, X8664Registers.XMM10)) + .add(new BankRegister(1, 336, 16, X8664Registers.XMM11)) + .add(new BankRegister(1, 352, 16, X8664Registers.XMM12)) + .add(new BankRegister(1, 368, 16, X8664Registers.XMM13)) + .add(new BankRegister(1, 384, 16, X8664Registers.XMM14)) + .add(new BankRegister(1, 400, 16, X8664Registers.XMM15)) .add(new BankRegister(2, 848, 8, "d0")) .add(new BankRegister(2, 856, 8, "d1")) .add(new BankRegister(2, 864, 8, "d2")) @@ -188,7 +188,7 @@ public class X86BankRegisters { .add("ss", "gs") .add("orig_eax", "orig_rax") .add("eip", "rip") - .add("eflags","eflags") + .add("eflags","rflags") .add("esp", "rsp") .add("cwd", "cwd") .add("swd", "swd") diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index d1fc9f9..0c48a08 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-11-20 Andrew Cagney + + * X8664LinuxElfCorefile.java: Fix typo; "eflags" -> "rflags". + 2007-11-09 Jose Flavio Aguilar Paulino * LinuxElfCorefileFactory.java: Removed Power little endian. diff --git a/frysk-core/frysk/util/X8664LinuxElfCorefile.java b/frysk-core/frysk/util/X8664LinuxElfCorefile.java index f342fdc..02b474a 100644 --- a/frysk-core/frysk/util/X8664LinuxElfCorefile.java +++ b/frysk-core/frysk/util/X8664LinuxElfCorefile.java @@ -178,7 +178,7 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile { // gap between frysk and core file register order. String regMap[] = { "r15", "r14", "r13", "r12", "rbp", "rbx", "r11", "r10", "r9", "r8", "rax", "rcx", "rdx", "rsi", - "rdi", "orig_rax", "rip", "cs", "eflags", "rsp", + "rdi", "orig_rax", "rip", "cs", "rflags", "rsp", "ss", "fs_base", "gs_base", "ds", "es", "fs", "gs" }; hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Nov 20 22:47:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 20 Nov 2007 22:47:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071120224737.27402.qmail@sourceware.org> The branch, master has been updated via 25d68f5c3c6ad80284c5542dd5e31101265e40ae (commit) via efe9edfdc7bf60a52b68a456ca2b73594cb9244f (commit) from 6f7c27b1111dfb66c7fcc05999f8b491a411daad (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 25d68f5c3c6ad80284c5542dd5e31101265e40ae Merge: efe9edfdc7bf60a52b68a456ca2b73594cb9244f 6f7c27b1111dfb66c7fcc05999f8b491a411daad Author: Stan Cox Date: Tue Nov 20 17:44:17 2007 -0500 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit efe9edfdc7bf60a52b68a456ca2b73594cb9244f Author: Stan Cox Date: Tue Nov 20 17:43:44 2007 -0500 Remove unneeded reference to now removed BaseTypes. * CExprEvaluator.g: Remove lib.dwfl.BaseTypes; ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExprEvaluator.g | 1 - frysk-core/frysk/expr/ChangeLog | 4 ++++ 2 files changed, 4 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 976e8a4..1cb0c25 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -88,7 +88,6 @@ header import frysk.value.Value; import frysk.expr.ExprSymTab; import inua.eio.ByteOrder; - import lib.dwfl.BaseTypes; } class CExprEvaluator extends TreeParser; diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index eb3fbc5..655400e 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,7 @@ +2007-11-20 Stan Cox + + * CExprEvaluator.g: Remove lib.dwfl.BaseTypes; + 2007-11-20 Teresa Thomas * CExprEvaluator.g: Use word size of machine to hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Wed Nov 21 05:08:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Wed, 21 Nov 2007 05:08:00 -0000 Subject: [SCM] master: Fix bz# 5380. Message-ID: <20071121050844.30445.qmail@sourceware.org> The branch, master has been updated via c6b2144b5562906445054a6fb3d991afa4356a7c (commit) from 25d68f5c3c6ad80284c5542dd5e31101265e40ae (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c6b2144b5562906445054a6fb3d991afa4356a7c Author: Rick Moseley Date: Tue Nov 20 23:08:28 2007 -0600 Fix bz# 5380. * PeekCommand.java: Fix bz# 5380(make peek command work with all types of Hosts). * LoadCommand.java: Ditto. * CLI.java; Ditto. * TestPeekCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 23 --------- frysk-core/frysk/hpd/ChangeLog | 8 +++ frysk-core/frysk/hpd/LoadCommand.java | 3 +- frysk-core/frysk/hpd/PeekCommand.java | 73 ++++++++++++++++------------- frysk-core/frysk/hpd/TestPeekCommand.java | 32 +++++++++--- 5 files changed, 73 insertions(+), 66 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index c7374e2..1c5ef5c 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -55,7 +55,6 @@ import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; import frysk.proc.Proc; import frysk.proc.Task; -import frysk.proc.Host; import frysk.rt.ProcTaskIDManager; import frysk.stepping.SteppingEngine; import frysk.stepping.TaskStepEngine; @@ -468,26 +467,4 @@ public class CLI { } return ptset; } - - /** - * Sets the LinuxExeHost for an executable file so we can access its memory - * via the "peek" command. - * - */ - Host exeHost; - - public void setExeHost (Host host) { - this.exeHost = host; - } - - /** - * Sets the LinuxExeProc for an executable file so we can access its memory - * via the "peek" command. - * - */ - Proc exeProc; - - public void setExeProc (Proc proc) { - this.exeProc = proc; - } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 460da66..26827e1 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,13 @@ 2007-11-20 Rick Moseley + * PeekCommand.java: Fix bz# 5380(make peek command + work with all types of Hosts). + * LoadCommand.java: Ditto. + * CLI.java; Ditto. + * TestLoadCommand.java: Ditto. + +2007-11-20 Rick Moseley + * RunCommand.java: Clear loadedProcs HashMap when done. * TestLoadCommand.java: Add test for the above change. diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index 38fd2d0..8ec7fd8 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -78,8 +78,7 @@ public class LoadCommand extends ParameterizedCommand { Host exeHost = new LinuxExeHost(Manager.eventLoop, executableFile); Proc exeProc = frysk.util.Util.getProcFromExeFile(exeHost); - cli.setExeHost(exeHost); - cli.setExeProc(exeProc); + int procID = cli.idManager.reserveProcID(); cli.idManager.manageProc(exeProc, procID); diff --git a/frysk-core/frysk/hpd/PeekCommand.java b/frysk-core/frysk/hpd/PeekCommand.java index 6cf1580..22d8db4 100644 --- a/frysk-core/frysk/hpd/PeekCommand.java +++ b/frysk-core/frysk/hpd/PeekCommand.java @@ -39,17 +39,14 @@ package frysk.hpd; -import java.io.PrintWriter; import inua.eio.ByteBuffer; -import frysk.proc.Proc; -import frysk.proc.ProcId; import frysk.proc.Task; +import java.util.Iterator; import java.util.List; /** * PeekCommand handles the "peek memory-location" command on the fhpd - * commandline. This command is only used after a "load" command has - * been issued. + * commandline. * */ @@ -57,40 +54,50 @@ public class PeekCommand extends ParameterizedCommand { PeekCommand() { super("peek", "peek ", - "peek at an executable file's memory"); + "peek at a process' memory"); } void interpret(CLI cli, Input cmd, Object options) { - final PrintWriter output = cli.getPrintWriter(); - if (cmd.size() > 1 ) { - throw new InvalidCommandException("Too many parameters"); + if (cmd.size() > 1) { + throw new InvalidCommandException("Too many parameters."); } - if (cli.exeHost == null) { - throw new InvalidCommandException("No executable loaded"); - } - - Proc proc = cli.exeHost.getProc(new ProcId(0)); - Task task = proc.getMainTask(); - - ByteBuffer buffer = task.getMemory(); - String memposition = cmd.parameter(0); - int radix = 10; - if (memposition.lastIndexOf("x") != -1) { - radix = 16; - memposition = memposition.substring(memposition.lastIndexOf("x") + 1); - if (memposition.lastIndexOf("L") != -1) - memposition = memposition.substring(0, memposition.lastIndexOf("L")); - } - - try { - long value = Long.parseLong(memposition.trim(), radix); - buffer.position(value); - output.println("The value at " + memposition + " = " + buffer.getUByte()); - } catch (NumberFormatException nfe) { - System.out.println("NumberFormatException: " + nfe.getMessage()); + PTSet ptset = cli.getCommandPTSet(cmd); + Iterator taskIter = ptset.getTaskData(); + while (taskIter.hasNext()) { + TaskData taskData = (TaskData) taskIter.next(); + Task task = taskData.getTask(); + + ByteBuffer buffer = task.getMemory(); + + cli.outWriter.print("["); + cli.outWriter.print(taskData.getParentID()); + cli.outWriter.print("."); + cli.outWriter.print(taskData.getID()); + cli.outWriter.println("]"); + + String memposition = cmd.parameter(0); + int radix = 10; + if (memposition.lastIndexOf("x") != -1) { + radix = 16; + memposition = memposition.substring(memposition + .lastIndexOf("x") + 1); + if (memposition.lastIndexOf("L") != -1) + memposition = memposition.substring(0, memposition + .lastIndexOf("L")); + } + + try { + long value = Long.parseLong(memposition.trim(), radix); + buffer.position(value); + cli.outWriter.println("The value at " + memposition + " = " + + buffer.getUByte()); + } catch (NumberFormatException nfe) { + cli.addMessage("NumberFormatException: " + + nfe.getMessage(), Message.TYPE_ERROR); + } } - + } int completer(CLI cli, Input input, int cursor, List completions) { diff --git a/frysk-core/frysk/hpd/TestPeekCommand.java b/frysk-core/frysk/hpd/TestPeekCommand.java index c49bc7a..545717f 100644 --- a/frysk-core/frysk/hpd/TestPeekCommand.java +++ b/frysk-core/frysk/hpd/TestPeekCommand.java @@ -48,17 +48,33 @@ import frysk.Config; public class TestPeekCommand extends TestLib { public void testPeekCommand() { e = new HpdTestbed(); - e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), - "Loaded executable file.*"); - e.sendCommandExpectPrompt("peek 0x08048000L", - "The value at 08048000 = 127.*"); + e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); + e.expect(5,"Loaded executable file.*"); + e.send("peek 0x08048000L\n"); + e.expect(5, "The value at 08048000 = 127.*"); + e.close(); } public void testPeekCommandError() { e = new HpdTestbed(); - e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), - "Loaded executable file.*"); - e.sendCommandExpectPrompt("peek 08048000", - "Cannot find memory in exe file.*"); + e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); + e.expect(5, "Loaded executable file.*"); + e.send("peek 08048000\n"); + e.expect(5, "Cannot find memory in exe file.*"); + e.close(); + } + + public void testTwoLoadedPeekCommand() { + e = new HpdTestbed(); + e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); + e.expect(5, "Loaded executable file.*"); + e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); + e.expect(5, "Loaded executable file.*"); + e.send("peek 0x08048000L\n"); + e.expect(5, "[0.0]"); + e.expect(5, "The value at 08048000 = 127.*"); + e.expect(5, "[0.1]"); + e.expect(5, "The value at 08048000 = 127.*"); + e.close(); } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 21 10:03:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 21 Nov 2007 10:03:00 -0000 Subject: [SCM] master: Fix #5383. Peek without arguments causes NPE. Message-ID: <20071121100304.5750.qmail@sourceware.org> The branch, master has been updated via f8936dca409520dc5833354037912026ab2a9a7b (commit) from c6b2144b5562906445054a6fb3d991afa4356a7c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f8936dca409520dc5833354037912026ab2a9a7b Author: Phil Muldoon Date: Wed Nov 21 10:02:54 2007 +0000 Fix #5383. Peek without arguments causes NPE. 2007-11-21 Phil Muldoon * PeekCommand.java (interpret): Check that arguments are > 0. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/PeekCommand.java | 3 +++ 2 files changed, 7 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 26827e1..56c1b6c 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,7 @@ +2007-11-21 Phil Muldoon + + * PeekCommand.java (interpret): Check that arguments are > 0. + 2007-11-20 Rick Moseley * PeekCommand.java: Fix bz# 5380(make peek command diff --git a/frysk-core/frysk/hpd/PeekCommand.java b/frysk-core/frysk/hpd/PeekCommand.java index 22d8db4..9c9ec52 100644 --- a/frysk-core/frysk/hpd/PeekCommand.java +++ b/frysk-core/frysk/hpd/PeekCommand.java @@ -58,6 +58,9 @@ public class PeekCommand extends ParameterizedCommand { } void interpret(CLI cli, Input cmd, Object options) { + if (cmd.size() < 1) + throw new InvalidCommandException("Not enough " + + "parameters. Please specify an addess to peek at."); if (cmd.size() > 1) { throw new InvalidCommandException("Too many parameters."); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 21 16:45:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 21 Nov 2007 16:45:00 -0000 Subject: [SCM] master: Re-split configure and build steps. Message-ID: <20071121164512.15011.qmail@sourceware.org> The branch, master has been updated via 721bffc34da9240d6b8cf707a48753990c77ba1b (commit) from f8936dca409520dc5833354037912026ab2a9a7b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 721bffc34da9240d6b8cf707a48753990c77ba1b Author: Andrew Cagney Date: Wed Nov 21 11:45:06 2007 -0500 Re-split configure and build steps. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 40062f2..6992ab0 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -170,11 +170,11 @@ $ git-clone git://sourceware.org/git/frysk.git $ git-clone ssh://sourceware.org/git/frysk.git -

    Configure and Build

    +

    Configure

  • On X86 or X86_64.
    -$ ( mkdir build && cd build && ../frysk/autogen.sh && make -j2 )
    +$ ( mkdir build && cd build && ../frysk/autogen.sh )
     
  • @@ -191,11 +191,11 @@ $ ( mkdir build && cd build && ../frysk/autogen.sh \ CC='gcc -m64 -mminimal-toc' \ GCJ='gcj -m64 -mminimal-toc' \ GCJLINK='gcj -m64 -mminimal-toc' \ - CXX='g++ -m64 -mminimal-toc' \ - && make -j2 ) + CXX='g++ -m64 -mminimal-toc' ) -configure then saves them as part of the configuration + +

    Verify the build environment (optional)

    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 21 16:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 21 Nov 2007 16:51:00 -0000 Subject: [SCM] master: Mention tab-completion and field stuff. Message-ID: <20071121165111.16303.qmail@sourceware.org> The branch, master has been updated via 87b91e7ae7c2e392a0ce9fb24626e202835e4d99 (commit) from 721bffc34da9240d6b8cf707a48753990c77ba1b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 87b91e7ae7c2e392a0ce9fb24626e202835e4d99 Author: Andrew Cagney Date: Wed Nov 21 11:51:04 2007 -0500 Mention tab-completion and field stuff. ----------------------------------------------------------------------- Summary of changes: htdocs/index.html | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/htdocs/index.html b/htdocs/index.html index 2e02019..4a25a68 100644 --- a/htdocs/index.html +++ b/htdocs/index.html @@ -73,11 +73,21 @@ available as both a research and development platform.

    News

    -

    A paper on frysk is going to be presented at OLS, -see you there.

    +

    -

    More papers to follow!

    +The fhpd's tab completer is expanding options and fields: + +
    +(fhpd) print my_cars_ptr->
    +audi    lexus   skoda
    +(fhpd) print my_cars_ptr->skoda -
    +-format     -location   -raw        -tree
    +-type       -value
    +(fhpd) print my_cars_ptr->skoda -location
    +[0.0]
    +Address 0x80497cc - 8 byte(s)
    +(fhpd)
    +

    Where Next?

    hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 21 20:13:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 21 Nov 2007 20:13:00 -0000 Subject: [SCM] master: Slice operation for array types. Message-ID: <20071121201356.26370.qmail@sourceware.org> The branch, master has been updated via b1e11394a6989b141abfb1c708d3c0566bfb5847 (commit) via 525ef64021a632e20ccd48f6e3c18d1b97b5a1ce (commit) from 87b91e7ae7c2e392a0ce9fb24626e202835e4d99 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b1e11394a6989b141abfb1c708d3c0566bfb5847 Author: Teresa Thomas Date: Wed Nov 21 15:13:09 2007 -0500 Slice operation for array types. frysk-core/frysk/value/ChangeLog 2007-11-21 Teresa Thomas * ArrayType.java (slice): New. * Type.java (slice): New. * TypeDecorator.java (slice): New. * TestArray.java (testSlice): New test. frysk-core/frysk/expr/ChangeLog 2007-11-21 Teresa Thomas * CExprEvaluator.g (SLICE): New. * CExpr.g: Add grammar for slice operation. commit 525ef64021a632e20ccd48f6e3c18d1b97b5a1ce Author: Teresa Thomas Date: Wed Nov 21 11:27:52 2007 -0500 Commenting and reindentation. frysk-core/frysk/value/ChangeLog 2007-11-21 Teresa Thomas * Type.java: Comments added. * TypeDecorator.java: Re-indent. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/expr/CExpr.g | 10 ++- frysk-core/frysk/expr/CExprEvaluator.g | 7 ++- frysk-core/frysk/expr/ChangeLog | 5 ++ frysk-core/frysk/value/ArrayType.java | 39 ++++++++++++ frysk-core/frysk/value/ChangeLog | 11 ++++ frysk-core/frysk/value/TestArray.java | 16 +++++ frysk-core/frysk/value/Type.java | 22 +++++++- frysk-core/frysk/value/TypeDecorator.java | 93 +++++++++++++++-------------- 8 files changed, 152 insertions(+), 51 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/expr/CExpr.g b/frysk-core/frysk/expr/CExpr.g index 3ed9860..037ba18 100644 --- a/frysk-core/frysk/expr/CExpr.g +++ b/frysk-core/frysk/expr/CExpr.g @@ -115,6 +115,7 @@ imaginaryTokenDefinitions MEMBER SIZEOF INDEX + SLICE ; /** @@ -321,9 +322,12 @@ postfix_expression! astPostExpr = #(#[MEMBER, "Member"], #astPostExpr, #id_expr2); } ) - | LSQUARE arrExpr1:expressionList RSQUARE - { astPostExpr = #(#[INDEX, "Index"], #astPostExpr, #arrExpr1); - } + | LSQUARE arrExpr1:expressionList + ( RSQUARE { astPostExpr = #(#[INDEX, "Index"], + #astPostExpr, #arrExpr1); } + | COLON arrExpr2:expressionList RSQUARE { astPostExpr = #(#[SLICE, "Slice"], + #astPostExpr, #arrExpr1, #arrExpr2); } + ) | LPAREN! expressionList RPAREN! | PLUSPLUS { astPostExpr = #(PLUSPLUS, #astPostExpr); diff --git a/frysk-core/frysk/expr/CExprEvaluator.g b/frysk-core/frysk/expr/CExprEvaluator.g index 1cb0c25..d751de3 100644 --- a/frysk-core/frysk/expr/CExprEvaluator.g +++ b/frysk-core/frysk/expr/CExprEvaluator.g @@ -132,7 +132,7 @@ identifier returns [String idSpelling=null] : ident:IDENT {idSpelling=ident.getText();} ; expr returns [Value returnVar=null] -{ Value v1, v2, log_expr; String s1; } +{ Value v1, v2, v3, log_expr; String s1; } : #(PLUS v1=expr v2=expr) { returnVar = v1.getType().getALU(v2.getType(), exprSymTab.getWordSize()) @@ -382,7 +382,10 @@ expr returns [Value returnVar=null] } | #(INDEX v1=expr v2=expr) { returnVar = v1.getType().index(v1, v2, exprSymTab.taskMemory()); - } + } + | #(SLICE v1=expr v2=expr v3=expr) { + returnVar = v1.getType().slice(v1, v2, v3, exprSymTab.taskMemory()); + } | ident:IDENT { returnVar = ((Value)exprSymTab.getValue(ident.getText())); } diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 655400e..5fea450 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,8 @@ +2007-11-21 Teresa Thomas + + * CExprEvaluator.g (SLICE): New. + * CExpr.g: Add grammar for slice operation. + 2007-11-20 Stan Cox * CExprEvaluator.g: Remove lib.dwfl.BaseTypes; diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index c5e7b06..0011ead 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -160,6 +160,45 @@ public class ArrayType } /** + * Slice returns a slice of an array. For example: + * SLICE[1:2] on {9, 8, 7, 6} returns {8, 7} + * SLICE[1:2] on { {11, 11}, {0, 0}, {9, 9} } returns { {0, 0}, {9, 9} } + * + * Note: j should be greater than i. + */ + public Value slice (Value v, Value i, Value j, ByteBuffer taskMem) + { + int len = (int)(j.asLong() - i.asLong() + 1); + + // FIXME: Allow this case instead of throwing error? + if (len < 0) { + throw new RuntimeException("Error: Index 1 should be less than Index 2"); + } + + // Create a new dimensions list + ArrayList dims = new ArrayList(); + // Length of elements at 0th dimension changes. + // Rest remain same. + dims.add(new Integer(len-1)); + for (int k=1; k + + * ArrayType.java (slice): New. + * Type.java (slice): New. + * TypeDecorator.java (slice): New. + * TestArray.java (testSlice): New test. + + * Type.java: Comments added. + * TypeDecorator.java: Re-indent. + (slice): New. + 2007-11-20 Sami Wagiaalla * Variable.java (toPrint): No longer prints variable values; diff --git a/frysk-core/frysk/value/TestArray.java b/frysk-core/frysk/value/TestArray.java index 25015c6..1147d10 100644 --- a/frysk-core/frysk/value/TestArray.java +++ b/frysk-core/frysk/value/TestArray.java @@ -100,6 +100,22 @@ public class TestArray extends TestCase { } /** + * Test slice operation for 1-d array. + */ + public void testSlice() { + ArrayList dims = new ArrayList(); + dims.add(new Integer(4 - 1)); + ArrayType arrayType = new ArrayType(int4_t, buf.length , dims); + Value arr = new Value(arrayType, new ScratchLocation(buf)); + Location l1 = new ScratchLocation(new byte[] { 1 }); + Location l2 = new ScratchLocation(new byte[] { 3 }); + IntegerType t = new UnsignedType("type", ByteOrder.BIG_ENDIAN, 1); + Value idx1 = new Value(t, l1); + Value idx2 = new Value(t, l2); + assertEquals("Array[idx1:idx2]", "{84281096,151653132,219025168}", arrayType.slice(arr, idx1, idx2, null).toPrint()); + } + + /** * Test add operation for 1-d array. */ public void testAdd() { diff --git a/frysk-core/frysk/value/Type.java b/frysk-core/frysk/value/Type.java index f9c16e7..e2e4018 100644 --- a/frysk-core/frysk/value/Type.java +++ b/frysk-core/frysk/value/Type.java @@ -146,17 +146,29 @@ public abstract class Type { public ArithmeticUnit getALU(int wordSize) { throw new RuntimeException("Invalid Arithmetic Unit"); } - + + /** + * Evaluates the address of a variable. + */ public Value addressOf(Value var1, ByteOrder order, int wordSize) { PointerType pType = new PointerType("AddressPtr", order, wordSize, this); return pType.createValue(var1.getLocation().getAddress()); } + /** + * Implements dereference operation for a pointer type. + */ public Value dereference(Value var1, ByteBuffer taskMem) { throw new InvalidOperatorException(this, "*"); } + /** + * Implements dot operation on a composite type. + */ public Value member(Value var1, String member) { throw new InvalidOperatorException(this, "."); } + /** + * Implements subscript operation for a pointer or array type. + */ public Value index(Value var1, Value var2, ByteBuffer taskMem) { // In C, var1[var2] = var2[var1] if (var2.getType() instanceof ArrayType || @@ -165,6 +177,14 @@ public abstract class Type { throw new InvalidOperatorException(this, "[]"); } + /** + * Implements slice operation for a pointer or array type - slice + * the array from index I to index J. + */ + public Value slice(Value var, Value i, Value j, ByteBuffer taskMem) { + throw new InvalidOperatorException(this, "slice"); + } + /** * Assign VALUE to LOCATION; possibly performing type-conversion. */ diff --git a/frysk-core/frysk/value/TypeDecorator.java b/frysk-core/frysk/value/TypeDecorator.java index a597ccc..307ad4d 100644 --- a/frysk-core/frysk/value/TypeDecorator.java +++ b/frysk-core/frysk/value/TypeDecorator.java @@ -49,56 +49,59 @@ import inua.eio.ByteBuffer; */ abstract class TypeDecorator extends Type { - private Type decorated; - TypeDecorator(String name, Type decorated) { - super(name, decorated.getSize()); - this.decorated = decorated; - } + private Type decorated; + TypeDecorator(String name, Type decorated) { + super(name, decorated.getSize()); + this.decorated = decorated; + } - public String toString() { - return ("{" - + super.toString() - + ",decorated=" + decorated.toString() - + "}"); - } + public String toString() { + return ("{" + + super.toString() + + ",decorated=" + decorated.toString() + + "}"); + } - public Type getUltimateType() { - return decorated.getUltimateType(); - } + public Type getUltimateType() { + return decorated.getUltimateType(); + } - public int getSize() { - return decorated.getSize(); - } + public int getSize() { + return decorated.getSize(); + } - void toPrint(PrintWriter writer, Location location, - ByteBuffer memory, Format format, int indent) { - decorated.toPrint(writer, location, memory, format, 0); + void toPrint(PrintWriter writer, Location location, + ByteBuffer memory, Format format, int indent) { + decorated.toPrint(writer, location, memory, format, 0); + } + /** + * A guess; sub classes should override. + */ + public void toPrint(PrintWriter writer, int indent) { + if (getUltimateType() instanceof PointerType) { + decorated.toPrint(writer, 0); + writer.print(" " + getName()); } - /** - * A guess; sub classes should override. - */ - public void toPrint(PrintWriter writer, int indent) { - if (getUltimateType() instanceof PointerType) { - decorated.toPrint(writer, 0); - writer.print(" " + getName()); - } - else { - writer.print(getName()); - writer.print(" "); - decorated.toPrint(writer, 0); - } + else { + writer.print(getName()); + writer.print(" "); + decorated.toPrint(writer, 0); } + } - void assign(Location location, Value value) { - decorated.assign(location, value); - } - public Type pack(int bitSize, int bitOffset) { - return decorated.pack(bitSize, bitOffset); - } - public Value member(Value var1, String member) { - return decorated.member(var1, member); - } - public Value index(Value var1, Value var2, ByteBuffer taskMem) { - return decorated.index(var1, var2, taskMem); - } + void assign(Location location, Value value) { + decorated.assign(location, value); + } + public Type pack(int bitSize, int bitOffset) { + return decorated.pack(bitSize, bitOffset); + } + public Value member(Value var1, String member) { + return decorated.member(var1, member); + } + public Value index(Value var1, Value var2, ByteBuffer taskMem) { + return decorated.index(var1, var2, taskMem); + } + public Value slice(Value var1, Value var2, Value var3, ByteBuffer taskMem) { + return decorated.slice(var1, var2, var3, taskMem); + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 21 20:28:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 21 Nov 2007 20:28:00 -0000 Subject: [SCM] master: Use X8664Registers.DR0..DR7; eliminate "d6". Message-ID: <20071121202842.32280.qmail@sourceware.org> The branch, master has been updated via 04406050f6a4910464c1dd4756121123c9a3708b (commit) from b1e11394a6989b141abfb1c708d3c0566bfb5847 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 04406050f6a4910464c1dd4756121123c9a3708b Author: Andrew Cagney Date: Wed Nov 21 15:25:20 2007 -0500 Use X8664Registers.DR0..DR7; eliminate "d6". frysk-core/frysk/proc/ChangeLog 2007-11-21 Andrew Cagney * IsaX8664.java: Use X8664Registers.DR6 instead of "d6". * X86BankRegisters.java: Use X8664Registers.DR0 .. DR7. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/X8664Registers.java | 16 ++++++------ frysk-core/frysk/proc/ChangeLog | 5 ++++ frysk-core/frysk/proc/IsaX8664.java | 6 +--- frysk-core/frysk/proc/X86BankRegisters.java | 32 +++++++++++++------------- 4 files changed, 31 insertions(+), 28 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/X8664Registers.java b/frysk-core/frysk/isa/X8664Registers.java index 29eb635..cdbc06d 100644 --- a/frysk-core/frysk/isa/X8664Registers.java +++ b/frysk-core/frysk/isa/X8664Registers.java @@ -141,21 +141,21 @@ public class X8664Registers extends Registers { = new Register("xmm15", StandardTypes.INT64L_T); public static final Register DR0 - = new Register("dr0", StandardTypes.INT32L_T); + = new Register("dr0", StandardTypes.INT64L_T); public static final Register DR1 - = new Register("dr1", StandardTypes.INT32L_T); + = new Register("dr1", StandardTypes.INT64L_T); public static final Register DR2 - = new Register("dr2", StandardTypes.INT32L_T); + = new Register("dr2", StandardTypes.INT64L_T); public static final Register DR3 - = new Register("dr3", StandardTypes.INT32L_T); + = new Register("dr3", StandardTypes.INT64L_T); public static final Register DR4 - = new Register("dr4", StandardTypes.INT32L_T); + = new Register("dr4", StandardTypes.INT64L_T); public static final Register DR5 - = new Register("dr5", StandardTypes.INT32L_T); + = new Register("dr5", StandardTypes.INT64L_T); public static final Register DR6 - = new Register("dr6", StandardTypes.INT32L_T); + = new Register("dr6", StandardTypes.INT64L_T); public static final Register DR7 - = new Register("dr7", StandardTypes.INT32L_T); + = new Register("dr7", StandardTypes.INT64L_T); // Magic; on Linux contains EAX (or syscall number) at the start // of a system call. diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index a4c2635..ba69afb 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-11-21 Andrew Cagney + + * IsaX8664.java: Use X8664Registers.DR6 instead of "d6". + * X86BankRegisters.java: Use X8664Registers.DR0 .. DR7. + 2007-11-20 Andrew Cagney * X86BankRegisters.java: Use X8664Registers.XMM0 et.al., ORIG_RAX, diff --git a/frysk-core/frysk/proc/IsaX8664.java b/frysk-core/frysk/proc/IsaX8664.java index e29be4b..b3f3521 100644 --- a/frysk-core/frysk/proc/IsaX8664.java +++ b/frysk-core/frysk/proc/IsaX8664.java @@ -124,11 +124,9 @@ public class IsaX8664 implements Isa * This resets the stepping flag. */ public boolean isTaskStepped(Task task) { - // FIXME: There's a name screwup - d6 vs dr6. - BankRegister d6 = task.getRegisterBanks().getBankRegister("d6"); - long value = d6.getFIXME(task); + long value = task.getRegister(X8664Registers.DR6); boolean stepped = (value & 0x4000) != 0; - d6.putFIXME(task, value & ~0x4000); + task.setRegister(X8664Registers.DR6, value & ~0x4000); return stepped; } diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/proc/X86BankRegisters.java index fdb383b..9b6d6e0 100644 --- a/frysk-core/frysk/proc/X86BankRegisters.java +++ b/frysk-core/frysk/proc/X86BankRegisters.java @@ -161,14 +161,14 @@ public class X86BankRegisters { .add(new BankRegister(1, 368, 16, X8664Registers.XMM13)) .add(new BankRegister(1, 384, 16, X8664Registers.XMM14)) .add(new BankRegister(1, 400, 16, X8664Registers.XMM15)) - .add(new BankRegister(2, 848, 8, "d0")) - .add(new BankRegister(2, 856, 8, "d1")) - .add(new BankRegister(2, 864, 8, "d2")) - .add(new BankRegister(2, 872, 8, "d3")) - .add(new BankRegister(2, 880, 8, "d4")) - .add(new BankRegister(2, 888, 8, "d5")) - .add(new BankRegister(2, 896, 8, "d6")) - .add(new BankRegister(2, 904, 8, "d7")) + .add(new BankRegister(2, 848, 8, X8664Registers.DR0)) + .add(new BankRegister(2, 856, 8, X8664Registers.DR1)) + .add(new BankRegister(2, 864, 8, X8664Registers.DR2)) + .add(new BankRegister(2, 872, 8, X8664Registers.DR3)) + .add(new BankRegister(2, 880, 8, X8664Registers.DR4)) + .add(new BankRegister(2, 888, 8, X8664Registers.DR5)) + .add(new BankRegister(2, 896, 8, X8664Registers.DR6)) + .add(new BankRegister(2, 904, 8, X8664Registers.DR7)) ; public static BankRegisterMap IA32_ON_X8664 @@ -213,13 +213,13 @@ public class X86BankRegisters { .add("xmm5") .add("xmm6") .add("xmm7") - .add("d0", "d0") - .add("d1", "d1") - .add("d2", "d2") - .add("d3", "d3") - .add("d4", "d4") - .add("d5", "d5") - .add("d6", "d6") - .add("d7", "d7") + .add("d0", "dr0") + .add("d1", "dr1") + .add("d2", "dr2") + .add("d3", "dr3") + .add("d4", "dr4") + .add("d5", "dr5") + .add("d6", "dr6") + .add("d7", "dr7") ; } hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Thu Nov 22 09:07:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Thu, 22 Nov 2007 09:07:00 -0000 Subject: [SCM] master: Add a test testMemoryBufferCapacity() to TestByteBuffer.java Message-ID: <20071122090733.7335.qmail@sourceware.org> The branch, master has been updated via 77939fcf72c66c6891797c90a0e4a19ec9e013e4 (commit) from 04406050f6a4910464c1dd4756121123c9a3708b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 77939fcf72c66c6891797c90a0e4a19ec9e013e4 Author: Zhao Shujing Date: Thu Nov 22 16:52:37 2007 +0800 Add a test testMemoryBufferCapacity() to TestByteBuffer.java ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 4 ++++ frysk-core/frysk/proc/live/TestByteBuffer.java | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 81d75eb..04e2937 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Zhao Shujing + + * TestByteBuffer.java(testMemoryBufferCapacity()): New test. + 2007-10-29 Mark Wielaard * LinuxTaskState.java (sendContinue): Add logging. diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index 07625f1..f49bb83 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -58,12 +58,13 @@ public class TestByteBuffer private ByteBuffer[] addressBuffers; private ByteBuffer[] registerBuffers; + private ByteBuffer memorySpaceByteBuffer; + public void setUp () throws Exception { int pid; ByteBuffer addressSpaceByteBufferText; ByteBuffer addressSpaceByteBufferData; - ByteBuffer memorySpaceByteBuffer; ByteBuffer usrByteBuffer; ByteBuffer registerByteBuffer; ByteBuffer fpregisterByteBuffer; @@ -265,6 +266,11 @@ public class TestByteBuffer verifyPeeks(registerBuffers[i], addr, origBytes); } } + + public void testMemoryBufferCapacity() + { + assertEquals("Memory Buffer Capacity: ", -1L, memorySpaceByteBuffer.capacity()); + } private class AsyncPeeks implements Runnable { hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Thu Nov 22 10:18:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 22 Nov 2007 10:18:00 -0000 Subject: [SCM] vendor/LIBUNWIND: Import of libunwind version libunwind-20071122 Message-ID: <20071122101835.11252.qmail@sourceware.org> The branch, vendor/LIBUNWIND has been updated via 61307753916c524ccff305032b4c0ee45643eaea (commit) from 9c75a1c8427fa3d444b388ef0f23e90f2af422d0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 61307753916c524ccff305032b4c0ee45643eaea Author: Mark Wielaard Date: Thu Nov 22 11:17:00 2007 +0100 Import of libunwind version libunwind-20071122 ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/AUTHORS | 2 +- frysk-imports/libunwind/NEWS | 4 ++++ frysk-imports/libunwind/README | 18 ++++++++---------- frysk-imports/libunwind/config/mkinstalldirs | 2 +- frysk-imports/libunwind/configure | 14 +++++++------- frysk-imports/libunwind/configure.in | 2 +- frysk-imports/libunwind/src/ia64/Ginit.c | 5 ----- frysk-imports/libunwind/src/mi/init.c | 2 +- frysk-imports/libunwind/src/os-linux.h | 4 ++-- frysk-imports/libunwind/src/x86/init.h | 2 +- 10 files changed, 26 insertions(+), 29 deletions(-) mode change 100755 => 100644 frysk-imports/libunwind/config/compile mode change 100755 => 100644 frysk-imports/libunwind/config/config.guess mode change 100755 => 100644 frysk-imports/libunwind/config/config.sub mode change 100755 => 100644 frysk-imports/libunwind/config/depcomp mode change 100755 => 100644 frysk-imports/libunwind/config/install-sh mode change 100755 => 100644 frysk-imports/libunwind/config/missing mode change 100755 => 100644 frysk-imports/libunwind/config/mkinstalldirs mode change 100644 => 100755 frysk-imports/libunwind/scripts/kernel-diff.sh mode change 100644 => 100755 frysk-imports/libunwind/scripts/make-L-files mode change 100755 => 100644 frysk-imports/libunwind/tests/check-namespace.sh.in First 500 lines of diff: diff --git a/frysk-imports/libunwind/AUTHORS b/frysk-imports/libunwind/AUTHORS index 912a7d9..719eee5 100644 --- a/frysk-imports/libunwind/AUTHORS +++ b/frysk-imports/libunwind/AUTHORS @@ -1 +1 @@ -David Mosberger +David Mosberger diff --git a/frysk-imports/libunwind/NEWS b/frysk-imports/libunwind/NEWS index 7498694..83ac810 100644 --- a/frysk-imports/libunwind/NEWS +++ b/frysk-imports/libunwind/NEWS @@ -8,6 +8,10 @@ * News for v0.98.6: ** Fix address-leak triggered by invalid byte-order. Fixed by Andreas Schwab. +** On ia64, get_static_proc_name() no longer uses a weak reference to + _Uelf64_get_proc_name(), since that was causing problems with archive + libraries and no longer served any apparent purpose. Fixed by + Curt Wohlgemuth. * News for v0.98.5: diff --git a/frysk-imports/libunwind/README b/frysk-imports/libunwind/README index 7a33afd..180edd2 100644 --- a/frysk-imports/libunwind/README +++ b/frysk-imports/libunwind/README @@ -187,16 +187,14 @@ commands: Please direct all questions regarding this library to: - libunwind@linux.hpl.hp.com + libunwind-devel@nongnu.org -For spam protection, you'll have to subscribe to this list before -posting a question. You can do this by sending a mail to -libunwind-request@linux.hpl.hp.com with a body of: +You can do this by sending a mail to libunwind-request@nongnu.org with +a body of: - subscribe libunwind + subscribe libunwind-devel -Note: the host that is running this list is behind a firewall, so -you'll not be able to use the Web interface to manage your -subscription. Send a mail containing "help" to -libunwind-request@linux.hpl.hp.com for information on how to manage -your subscription via email. +or you can subscribe and manage your subscription via the +web-interface at: + + https://savannah.nongnu.org/mail/?group=libunwind diff --git a/frysk-imports/libunwind/config/compile b/frysk-imports/libunwind/config/compile old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/config.guess b/frysk-imports/libunwind/config/config.guess old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/config.sub b/frysk-imports/libunwind/config/config.sub old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/depcomp b/frysk-imports/libunwind/config/depcomp old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/install-sh b/frysk-imports/libunwind/config/install-sh old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/missing b/frysk-imports/libunwind/config/missing old mode 100755 new mode 100644 diff --git a/frysk-imports/libunwind/config/mkinstalldirs b/frysk-imports/libunwind/config/mkinstalldirs old mode 100755 new mode 100644 index a3459e2..4f58503 --- a/frysk-imports/libunwind/config/mkinstalldirs +++ b/frysk-imports/libunwind/config/mkinstalldirs @@ -4,7 +4,7 @@ # Created: 1993-05-16 # Public domain -# $Id: mkinstalldirs,v 1.1.1.1 2007/03/12 15:32:23 npremji Exp $ +# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 diff --git a/frysk-imports/libunwind/configure b/frysk-imports/libunwind/configure index 3b14cda..0156c45 100755 --- a/frysk-imports/libunwind/configure +++ b/frysk-imports/libunwind/configure @@ -2,7 +2,7 @@ # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for libunwind 0.99-alpha. # -# Report bugs to . +# Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. @@ -730,7 +730,7 @@ PACKAGE_NAME='libunwind' PACKAGE_TARNAME='libunwind' PACKAGE_VERSION='0.99-alpha' PACKAGE_STRING='libunwind 0.99-alpha' -PACKAGE_BUGREPORT='libunwind@linux.hpl.hp.com' +PACKAGE_BUGREPORT='libunwind-devel@nongnu.org' ac_unique_file="src/mi/backtrace.c" # Factoring default headers for most tests. @@ -1546,7 +1546,7 @@ Some influential environment variables: Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to . +Report bugs to . _ACEOF ac_status=$? fi @@ -5751,7 +5751,7 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >& echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------- ## -## Report this to libunwind@linux.hpl.hp.com ## +## Report this to libunwind-devel@nongnu.org ## ## ----------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -19645,7 +19645,7 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >& echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------- ## -## Report this to libunwind@linux.hpl.hp.com ## +## Report this to libunwind-devel@nongnu.org ## ## ----------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -19980,7 +19980,7 @@ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >& echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ----------------------------------------- ## -## Report this to libunwind@linux.hpl.hp.com ## +## Report this to libunwind-devel@nongnu.org ## ## ----------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 @@ -21018,7 +21018,7 @@ ARCH=`echo $target_arch | tr a-z A-Z` PKG_MAJOR=0 PKG_MINOR=99 PKG_EXTRA=-alpha -PKG_MAINTAINER=libunwind@linux.hpl.hp.com +PKG_MAINTAINER=libunwind-devel@nongnu.org diff --git a/frysk-imports/libunwind/configure.in b/frysk-imports/libunwind/configure.in index a179069..bf44eaa 100644 --- a/frysk-imports/libunwind/configure.in +++ b/frysk-imports/libunwind/configure.in @@ -1,7 +1,7 @@ define(pkg_major, 0) define(pkg_minor, 99) define(pkg_extra, -alpha) -define(pkg_maintainer, libunwind@linux.hpl.hp.com) +define(pkg_maintainer, libunwind-devel@nongnu.org) define(mkvers, $1.$2$3) dnl Process this file with autoconf to produce a configure script. AC_INIT(libunwind, mkvers(pkg_major, pkg_minor, pkg_extra), pkg_maintainer) diff --git a/frysk-imports/libunwind/scripts/kernel-diff.sh b/frysk-imports/libunwind/scripts/kernel-diff.sh old mode 100644 new mode 100755 diff --git a/frysk-imports/libunwind/scripts/make-L-files b/frysk-imports/libunwind/scripts/make-L-files old mode 100644 new mode 100755 diff --git a/frysk-imports/libunwind/src/ia64/Ginit.c b/frysk-imports/libunwind/src/ia64/Ginit.c index 0ba9554..5afa9ab 100644 --- a/frysk-imports/libunwind/src/ia64/Ginit.c +++ b/frysk-imports/libunwind/src/ia64/Ginit.c @@ -348,11 +348,6 @@ get_static_proc_name (unw_addr_space_t as, unw_word_t ip, char *buf, size_t buf_len, unw_word_t *offp, void *arg) { -#ifndef _UNW_LOCAL_ONLY -# pragma weak _Uelf64_get_proc_name - if (!_Uelf64_get_proc_name) - return -UNW_EINVAL; -#endif return _Uelf64_get_proc_name (as, getpid (), ip, buf, buf_len, offp); } diff --git a/frysk-imports/libunwind/src/mi/init.c b/frysk-imports/libunwind/src/mi/init.c index 5e58363..4bf97c4 100644 --- a/frysk-imports/libunwind/src/mi/init.c +++ b/frysk-imports/libunwind/src/mi/init.c @@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ HIDDEN intrmask_t unwi_full_mask; static const char rcsid[] UNUSED = - "$Id: init.c,v 1.1.1.1 2007/03/12 15:32:29 npremji Exp $"; + "$Id: " PACKAGE_STRING " --- report bugs to " PACKAGE_BUGREPORT " $"; #if UNW_DEBUG diff --git a/frysk-imports/libunwind/src/os-linux.h b/frysk-imports/libunwind/src/os-linux.h index 57c5723..b2c9a8b 100644 --- a/frysk-imports/libunwind/src/os-linux.h +++ b/frysk-imports/libunwind/src/os-linux.h @@ -228,7 +228,7 @@ maps_next (struct map_iterator *mi, { /* copy down the remaining bytes, if any */ if (bytes_left > 0) - memcpy (mi->buf_end - mi->buf_size, mi->buf, bytes_left); + memmove (mi->buf_end - mi->buf_size, mi->buf, bytes_left); mi->buf = mi->buf_end - mi->buf_size; nread = read (mi->fd, mi->buf + bytes_left, @@ -240,7 +240,7 @@ maps_next (struct map_iterator *mi, /* Move contents to the end of the buffer so we maintain the invariant that all bytes between mi->buf and mi->buf_end are valid. */ - memcpy (mi->buf_end - nread - bytes_left, mi->buf, + memmove (mi->buf_end - nread - bytes_left, mi->buf, nread + bytes_left); mi->buf = mi->buf_end - nread - bytes_left; } diff --git a/frysk-imports/libunwind/src/x86/init.h b/frysk-imports/libunwind/src/x86/init.h index 61a2f02..675b77e 100644 --- a/frysk-imports/libunwind/src/x86/init.h +++ b/frysk-imports/libunwind/src/x86/init.h @@ -36,7 +36,7 @@ common_init (struct cursor *c) c->dwarf.loc[EBX] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EBX); c->dwarf.loc[ESP] = DWARF_REG_LOC (&c->dwarf, UNW_X86_ESP); c->dwarf.loc[EBP] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EBP); - c->dwarf.loc[ESI] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EDI); + c->dwarf.loc[ESI] = DWARF_REG_LOC (&c->dwarf, UNW_X86_ESI); c->dwarf.loc[EDI] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EDI); c->dwarf.loc[EIP] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EIP); c->dwarf.loc[EFLAGS] = DWARF_REG_LOC (&c->dwarf, UNW_X86_EFLAGS); diff --git a/frysk-imports/libunwind/tests/check-namespace.sh.in b/frysk-imports/libunwind/tests/check-namespace.sh.in old mode 100755 new mode 100644 hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Thu Nov 22 11:43:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Thu, 22 Nov 2007 11:43:00 -0000 Subject: [SCM] master: Renaming CR reg and adding register for original r3 (arg). Message-ID: <20071122114317.15697.qmail@sourceware.org> The branch, master has been updated via d493569a34db466c257c88071d35432e20859f66 (commit) from 77939fcf72c66c6891797c90a0e4a19ec9e013e4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d493569a34db466c257c88071d35432e20859f66 Author: Jose Flavio Aguilar Paulino Date: Thu Nov 22 09:42:59 2007 -0200 Renaming CR reg and adding register for original r3 (arg). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 7 +++++++ frysk-core/frysk/isa/PPC32Registers.java | 14 +++++++++----- frysk-core/frysk/isa/PPC64Registers.java | 6 +++--- 3 files changed, 19 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 3545ad6..66ed1aa 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,10 @@ +2007-11-20 Jose Flavio Aguilar Paulino + + * PPC64Registers.java: Renaming CR register to CCR, + to be compliant with PPC32. + + * PPC32Registers.java: Add ARG register as in PTRACE (orig_r3). + 2007-11-20 Andrew Cagney * X8664Registers.java (XMM0, XMM1, XMM2, XMM3, XMM4, XMM5) diff --git a/frysk-core/frysk/isa/PPC32Registers.java b/frysk-core/frysk/isa/PPC32Registers.java index 8387e61..f8f0ea2 100644 --- a/frysk-core/frysk/isa/PPC32Registers.java +++ b/frysk-core/frysk/isa/PPC32Registers.java @@ -113,17 +113,21 @@ public class PPC32Registers extends Registers { = new Register("gpr31", StandardTypes.INT32B_T); /* Special registers */ + public static final Register ARG + = new Register("arg", StandardTypes.INT32B_T); + /* Counter reg */ public static final Register CTR - = new Register("counterreg", StandardTypes.INT32B_T); + = new Register("ctr", StandardTypes.INT32B_T); + /* Fixed-point status and control register */ public static final Register XER - = new Register("fixedstatuscontrolreg", StandardTypes.INT32B_T); + = new Register("xer", StandardTypes.INT32B_T); public static final Register CCR - = new Register("conditionreg", StandardTypes.INT32B_T); + = new Register("ccr", StandardTypes.INT32B_T); public static final Register LR - = new Register("linkreg", StandardTypes.VOIDPTR32B_T); + = new Register("lr", StandardTypes.VOIDPTR32B_T); public static final Register FPSCR - = new Register("floatingstatuscontrolreg", StandardTypes.INT32B_T); + = new Register("fpscr", StandardTypes.INT32B_T); public static final Register FPR0 = new Register("fpr0", StandardTypes.FLOAT64B_T); diff --git a/frysk-core/frysk/isa/PPC64Registers.java b/frysk-core/frysk/isa/PPC64Registers.java index f93fcb1..e980166 100644 --- a/frysk-core/frysk/isa/PPC64Registers.java +++ b/frysk-core/frysk/isa/PPC64Registers.java @@ -180,8 +180,8 @@ public class PPC64Registers extends Registers { = new Register("ctr", StandardTypes.INT64B_T); public static final Register ARG = new Register("arg", StandardTypes.INT64B_T); - public static final Register CR - = new Register("cr", StandardTypes.INT64B_T); + public static final Register CCR + = new Register("ccr", StandardTypes.INT64B_T); public static final Register XER = new Register("xer", StandardTypes.INT64B_T); @@ -218,7 +218,7 @@ public class PPC64Registers extends Registers { public static final RegisterGroup SPECIAL = new RegisterGroup("special", - new Register[] { LR, CTR, ARG, CR, XER, + new Register[] { LR, CTR, ARG, CCR, XER, VRSAVE, VSCR, SPEACC, SPEFSCR, FRP, NIP }); hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Thu Nov 22 11:48:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Thu, 22 Nov 2007 11:48:00 -0000 Subject: [SCM] master: Fixing PPC32on64 bank registers. Message-ID: <20071122114802.18080.qmail@sourceware.org> The branch, master has been updated via adc15992c27aee3dc62efd09149a9c930f41a4a2 (commit) from d493569a34db466c257c88071d35432e20859f66 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit adc15992c27aee3dc62efd09149a9c930f41a4a2 Author: Jose Flavio Aguilar Paulino Date: Thu Nov 22 09:47:40 2007 -0200 Fixing PPC32on64 bank registers. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 +++ frysk-core/frysk/proc/PPCBankRegisters.java | 37 +++++++++++--------------- 2 files changed, 20 insertions(+), 21 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index ba69afb..f467745 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Jose Flavio Aguilar Paulino + + * PPCBankRegisters.java: Correcting the bank registers PPC32on64. + 2007-11-21 Andrew Cagney * IsaX8664.java: Use X8664Registers.DR6 instead of "d6". diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java index 1eecc0f..d6a9565 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/proc/PPCBankRegisters.java @@ -81,7 +81,7 @@ public class PPCBankRegisters { .add(new BankRegister(0, 124, 4, PPC32Registers.GPR31)) .add(new BankRegister(0, 128, 4, "result")) .add(new BankRegister(0, 132, 4, "msr")) - .add(new BankRegister(0, 136, 4, "orig_r3")) + .add(new BankRegister(0, 136, 4, PPC32Registers.ARG)) //orig_r3 .add(new BankRegister(0, 140, 4, PPC32Registers.CTR)) .add(new BankRegister(0, 144, 4, PPC32Registers.LR)) .add(new BankRegister(0, 148, 4, PPC32Registers.XER)) @@ -160,11 +160,11 @@ public class PPCBankRegisters { .add(new BankRegister(0, 248, 8, PPC64Registers.GPR31)) .add(new BankRegister(0, 256, 8, PPC64Registers.NIP)) .add(new BankRegister(0, 264, 8, "msr")) - .add(new BankRegister(0, 272, 8, "orig_r3")) - .add(new BankRegister(0, 280, 8, "ctr")) - .add(new BankRegister(0, 288, 8, "lnk")) - .add(new BankRegister(0, 296, 8, "xer")) - .add(new BankRegister(0, 304, 8, "ccr")) + .add(new BankRegister(0, 272, 8, PPC64Registers.ARG)) //old orig_r3 + .add(new BankRegister(0, 280, 8, PPC64Registers.CTR)) + .add(new BankRegister(0, 288, 8, PPC64Registers.LR)) + .add(new BankRegister(0, 296, 8, PPC64Registers.XER)) + .add(new BankRegister(0, 304, 8, PPC64Registers.CCR)) .add(new BankRegister(0, 312, 8, "softe")) .add(new BankRegister(0, 320, 8, "trap")) .add(new BankRegister(0, 328, 8, "dar")) @@ -239,21 +239,16 @@ public class PPCBankRegisters { .add("gpr29") .add("gpr30") .add("gpr31") - // XXX: No such register on PPC32 - //.add("nip") - .add("msr") - .add("orig_r3") - // XXX: No such register on PPC32 - //.add("ctr") - //.add("lnk") - //.add("xer") - //.add("ccr") - // No such register on ppc64. - // .add("mq")) - .add("trap") - .add("dar") - .add("dsisr") - .add("result") + .add("result") + .add("msr") + .add("arg") + .add("ctr") + .add("lr") + .add("xer") + .add("ccr") + .add("trap") + .add("dar") + .add("dsisr") .add("fpr0") .add("fpr1") .add("fpr2") hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Thu Nov 22 13:41:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 22 Nov 2007 13:41:00 -0000 Subject: [SCM] master: Merge branch 'master' of git://sourceware.org/git/frysk Message-ID: <20071122134123.10143.qmail@sourceware.org> The branch, master has been updated via e968bea4004ca57402fc394bfa30edbf82756362 (commit) via 7bac227a0595411ff3e883939fcd30d6ab831e9b (commit) via 61307753916c524ccff305032b4c0ee45643eaea (commit) from adc15992c27aee3dc62efd09149a9c930f41a4a2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e968bea4004ca57402fc394bfa30edbf82756362 Merge: 7bac227a0595411ff3e883939fcd30d6ab831e9b adc15992c27aee3dc62efd09149a9c930f41a4a2 Author: Mark Wielaard Date: Thu Nov 22 14:39:07 2007 +0100 Merge branch 'master' of git://sourceware.org/git/frysk commit 7bac227a0595411ff3e883939fcd30d6ab831e9b Merge: 77939fcf72c66c6891797c90a0e4a19ec9e013e4 61307753916c524ccff305032b4c0ee45643eaea Author: Mark Wielaard Date: Thu Nov 22 14:26:09 2007 +0100 Merge branch 'vendor/LIBUNWIND' Conflicts: frysk-imports/libunwind/config/mkinstalldirs frysk-imports/libunwind/configure frysk-imports/libunwind/configure.in frysk-imports/libunwind/src/ia64/Ginit.c frysk-imports/libunwind/src/mi/init.c ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/AUTHORS | 2 +- frysk-imports/libunwind/NEWS | 4 ++++ frysk-imports/libunwind/README | 18 ++++++++---------- frysk-imports/libunwind/src/ia64/Ginit.c | 6 ------ frysk-imports/libunwind/src/mi/init.c | 2 +- frysk-imports/libunwind/src/os-linux.h | 4 ++-- 6 files changed, 16 insertions(+), 20 deletions(-) mode change 100644 => 100755 frysk-imports/libunwind/scripts/kernel-diff.sh mode change 100644 => 100755 frysk-imports/libunwind/scripts/make-L-files mode change 100755 => 100644 frysk-imports/libunwind/tests/check-namespace.sh.in First 500 lines of diff: diff --git a/frysk-imports/libunwind/AUTHORS b/frysk-imports/libunwind/AUTHORS index 912a7d9..719eee5 100644 --- a/frysk-imports/libunwind/AUTHORS +++ b/frysk-imports/libunwind/AUTHORS @@ -1 +1 @@ -David Mosberger +David Mosberger diff --git a/frysk-imports/libunwind/NEWS b/frysk-imports/libunwind/NEWS index 7498694..83ac810 100644 --- a/frysk-imports/libunwind/NEWS +++ b/frysk-imports/libunwind/NEWS @@ -8,6 +8,10 @@ * News for v0.98.6: ** Fix address-leak triggered by invalid byte-order. Fixed by Andreas Schwab. +** On ia64, get_static_proc_name() no longer uses a weak reference to + _Uelf64_get_proc_name(), since that was causing problems with archive + libraries and no longer served any apparent purpose. Fixed by + Curt Wohlgemuth. * News for v0.98.5: diff --git a/frysk-imports/libunwind/README b/frysk-imports/libunwind/README index 7a33afd..180edd2 100644 --- a/frysk-imports/libunwind/README +++ b/frysk-imports/libunwind/README @@ -187,16 +187,14 @@ commands: Please direct all questions regarding this library to: - libunwind@linux.hpl.hp.com + libunwind-devel@nongnu.org -For spam protection, you'll have to subscribe to this list before -posting a question. You can do this by sending a mail to -libunwind-request@linux.hpl.hp.com with a body of: +You can do this by sending a mail to libunwind-request@nongnu.org with +a body of: - subscribe libunwind + subscribe libunwind-devel -Note: the host that is running this list is behind a firewall, so -you'll not be able to use the Web interface to manage your -subscription. Send a mail containing "help" to -libunwind-request@linux.hpl.hp.com for information on how to manage -your subscription via email. +or you can subscribe and manage your subscription via the +web-interface at: + + https://savannah.nongnu.org/mail/?group=libunwind diff --git a/frysk-imports/libunwind/scripts/kernel-diff.sh b/frysk-imports/libunwind/scripts/kernel-diff.sh old mode 100644 new mode 100755 diff --git a/frysk-imports/libunwind/scripts/make-L-files b/frysk-imports/libunwind/scripts/make-L-files old mode 100644 new mode 100755 diff --git a/frysk-imports/libunwind/src/ia64/Ginit.c b/frysk-imports/libunwind/src/ia64/Ginit.c index 010a23e..3c5f7ad 100644 --- a/frysk-imports/libunwind/src/ia64/Ginit.c +++ b/frysk-imports/libunwind/src/ia64/Ginit.c @@ -348,13 +348,7 @@ get_static_proc_name (unw_addr_space_t as, unw_word_t ip, char *buf, size_t buf_len, unw_word_t *offp, void *arg) { -#ifndef _UNW_LOCAL_ONLY -# pragma weak _Uelf64_get_proc_name - if (!_Uelf64_get_proc_name) - return -UNW_EINVAL; -#endif return _Uelf64_get_proc_name (as, getpid (), ip, buf, buf_len, offp, arg); - return _Uelf64_get_proc_name (as, getpid (), ip, buf, buf_len, offp); } HIDDEN void diff --git a/frysk-imports/libunwind/src/mi/init.c b/frysk-imports/libunwind/src/mi/init.c index b49aa9a..4bf97c4 100644 --- a/frysk-imports/libunwind/src/mi/init.c +++ b/frysk-imports/libunwind/src/mi/init.c @@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ HIDDEN intrmask_t unwi_full_mask; static const char rcsid[] UNUSED = - "$Id: init.c,v 1.4 2007/10/11 11:21:43 mark Exp $"; + "$Id: " PACKAGE_STRING " --- report bugs to " PACKAGE_BUGREPORT " $"; #if UNW_DEBUG diff --git a/frysk-imports/libunwind/src/os-linux.h b/frysk-imports/libunwind/src/os-linux.h index cc36bf7..dba788e 100644 --- a/frysk-imports/libunwind/src/os-linux.h +++ b/frysk-imports/libunwind/src/os-linux.h @@ -228,7 +228,7 @@ maps_next (struct map_iterator *mi, { /* copy down the remaining bytes, if any */ if (bytes_left > 0) - memcpy (mi->buf_end - mi->buf_size, mi->buf, bytes_left); + memmove (mi->buf_end - mi->buf_size, mi->buf, bytes_left); mi->buf = mi->buf_end - mi->buf_size; nread = read (mi->fd, mi->buf + bytes_left, @@ -240,7 +240,7 @@ maps_next (struct map_iterator *mi, /* Move contents to the end of the buffer so we maintain the invariant that all bytes between mi->buf and mi->buf_end are valid. */ - memcpy (mi->buf_end - nread - bytes_left, mi->buf, + memmove (mi->buf_end - nread - bytes_left, mi->buf, nread + bytes_left); mi->buf = mi->buf_end - nread - bytes_left; } diff --git a/frysk-imports/libunwind/tests/check-namespace.sh.in b/frysk-imports/libunwind/tests/check-namespace.sh.in old mode 100755 new mode 100644 hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 22 15:29:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 22 Nov 2007 15:29:00 -0000 Subject: [SCM] master: swagiaal: fstack now takes a -n option. Message-ID: <20071122152921.2938.qmail@sourceware.org> The branch, master has been updated via 3f968fbe46d1ba360e37d072921d716e147f6826 (commit) from e968bea4004ca57402fc394bfa30edbf82756362 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3f968fbe46d1ba360e37d072921d716e147f6826 Author: Sami Wagiaalla Date: Wed Nov 21 14:30:05 2007 -0500 swagiaal: fstack now takes a -n option. frysk-core/frysk/bindir/ChangeLog +2007-11-21 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashN): New test. + (testBackTraceWithDashNDashA): New test. + * fstack.java (Stacker.Stacker): Added number-of-frames option + and handling. + frysk-core/frysk/debuginfo/ChangeLog +2007-11-21 Sami Wagiaalla + + * DebugInfoStackFactory.java (printTaskStackTrace): Added + numberOfFrames argument. + (printVirtualTaskStackTrace): Ditto. + frysk-core/frysk/stack/ChangeLog +2007-11-21 Sami Wagiaalla + + * StackFactory.java (printTaskStackTrace): Added number of + frames check. + frysk-core/frysk/util/ChangeLog +2007-11-21 Sami Wagiaalla + + * StacktraceAction.java: Now passes numberOfFrames argument. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 7 ++++ frysk-core/frysk/bindir/TestFstack.java | 37 ++++++++++++++++++++ frysk-core/frysk/bindir/fstack.java | 30 ++++++++++++---- frysk-core/frysk/debuginfo/ChangeLog | 6 +++ .../frysk/debuginfo/DebugInfoStackFactory.java | 10 +++-- frysk-core/frysk/debuginfo/TestFrameDebugInfo.java | 2 +- frysk-core/frysk/proc/dead/TestLinuxCore.java | 36 ++++++++++--------- frysk-core/frysk/stack/ChangeLog | 5 +++ frysk-core/frysk/stack/StackFactory.java | 10 ++++- frysk-core/frysk/util/ChangeLog | 4 ++ frysk-core/frysk/util/StacktraceAction.java | 16 +++++--- frysk-core/frysk/util/StressTestFStack.java | 2 +- frysk-core/frysk/util/TestFStack.java | 8 ++-- 13 files changed, 131 insertions(+), 42 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 4dbced2..3ca398a 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,10 @@ +2007-11-21 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashN): New test. + (testBackTraceWithDashNDashA): New test. + * fstack.java (Stacker.Stacker): Added number-of-frames option + and handling. + 2007-11-20 Sami Wagiaalla * TestFstack.java (testBackTraceWithDashC): Removed check for diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index d45899d..fa0f4a4 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -138,4 +138,41 @@ public class TestFstack e.expect("\\#3 .*main"); } + public void testBackTraceWithDashN () { + Expect e = fstack("funit-long-stack", new String[]{"-n","5"}); + e.expect("\\#0 .*crash[^\\r\\n]*"); + e.expect("\\#1 .*first[^\\r\\n]*"); + e.expect("\\#2 .*first[^\\r\\n]*"); + e.expect("\\#3 .*first[^\\r\\n]*"); + e.expect("\\#4 .*first[^\\r\\n]*"); + e.expect("..."); + e.close(); + + e = fstack("funit-long-stack", new String[]{"-n","4"}); + e.expect("\\#0 .*crash[^\\r\\n]*"); + e.expect("\\#1 .*first[^\\r\\n]*"); + e.expect("\\#2 .*first[^\\r\\n]*"); + e.expect("\\#3 .*first[^\\r\\n]*"); + e.expect("..."); + e.close(); + + e = fstack("funit-long-stack", new String[]{"-n","0"}); + e.expect("\\#51 .*first[^\\r\\n]*"); + e.close(); + + } + + public void testBackTraceWithDashNDashA () { + Expect e = fstack("funit-long-stack", new String[]{"-n","5", "-a"}); + e.expect("\\#0 .*crash[^\\r\\n]*"); + e.expect("\\#1 .*first[^\\r\\n]*"); + e.expect("\\#2 .*first[^\\r\\n]*"); + e.expect("\\#3 .*first[^\\r\\n]*"); + e.expect("\\#4 .*first[^\\r\\n]*"); + e.expect("..."); + e.close(); + } + + + } diff --git a/frysk-core/frysk/bindir/fstack.java b/frysk-core/frysk/bindir/fstack.java index 2889f39..bb4f250 100644 --- a/frysk-core/frysk/bindir/fstack.java +++ b/frysk-core/frysk/bindir/fstack.java @@ -51,11 +51,11 @@ import frysk.proc.ProcBlockAction; import frysk.proc.ProcCoreAction; import frysk.proc.ProcId; import frysk.util.CommandlineParser; +import frysk.util.CoreExePair; import frysk.util.StacktraceAction; import frysk.util.Util; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; -import frysk.util.CoreExePair; public final class fstack { @@ -67,6 +67,7 @@ public final class fstack private static PrintWriter printWriter = new PrintWriter(System.out); + static int numberOfFrames; static boolean virtualFrames = false; static boolean elfOnly = true; static boolean printParameters = false; @@ -78,11 +79,11 @@ public final class fstack { Proc proc; - public Stacker (PrintWriter printWriter, Proc theProc, Event theEvent,boolean elfOnly, boolean virtualFrames, + public Stacker (PrintWriter printWriter, Proc theProc, Event theEvent,int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath, boolean printSourceLibrary) { - super(printWriter, theProc, theEvent, elfOnly,virtualFrames, printParameters, printScopes, fullpath,printSourceLibrary); + super(printWriter, theProc, theEvent, numberOfFrames, elfOnly,virtualFrames, printParameters, printScopes, fullpath,printSourceLibrary); this.proc = theProc; } @@ -141,7 +142,7 @@ public final class fstack { Proc proc = Util.getProcFromCoreExePair(coreExePair); - stacker = new Stacker(printWriter, proc, new PrintEvent(),elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); + stacker = new Stacker(printWriter, proc, new PrintEvent(), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); new ProcCoreAction(proc, stacker); Manager.eventLoop.run(); } @@ -149,13 +150,14 @@ public final class fstack private static void stackPid (ProcId procId) { Proc proc = Util.getProcFromPid(procId); - stacker = new Stacker(printWriter, proc, new AbandonPrintEvent(proc),elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); + stacker = new Stacker(printWriter, proc, new AbandonPrintEvent(proc), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); new ProcBlockAction(proc, stacker); Manager.eventLoop.run(); } public static void main (String[] args) { + parser = new CommandlineParser("fstack") { //@Override @@ -168,12 +170,26 @@ public final class fstack //@Override public void parsePids (ProcId[] pids) { + for (int i = 0; i < pids.length; i++) stackPid(pids[i]); } - }; - + }; + + parser.add(new Option("number-of-frames", 'n', "number of frames to print. Use -n 0 or" + + " -n all to print all frames.", "") { + public void parsed(String arg) throws OptionException { + if(arg.equals("all")){ + numberOfFrames = 0; + }else{ + numberOfFrames = Integer.parseInt(arg); + return; + } + } + }); + + parser.add(new Option("all", 'a', "print all information that can currently be retrieved" + "about the stack\n" + "this is equivalent to -p functions,params,scopes,fullpath"){ diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index a088723..54ca18b 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +2007-11-21 Sami Wagiaalla + + * DebugInfoStackFactory.java (printTaskStackTrace): Added + numberOfFrames argument. + (printVirtualTaskStackTrace): Ditto. + 2007-11-20 Stan Cox * TypeEntry.java (getType): Remove reference to DwarfDie.getBaseType(). diff --git a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java index 325c389..83a0cb3 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java +++ b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java @@ -97,22 +97,22 @@ public class DebugInfoStackFactory { return innermostFrame; } - public static final void printTaskStackTrace (PrintWriter printWriter, Task task, boolean printParameters, boolean printScopes, boolean fullpath) + public static final void printTaskStackTrace (PrintWriter printWriter, Task task, int numberOfFrames, boolean printParameters, boolean printScopes, boolean fullpath) { if (task != null){ printWriter.println("Task #" + task.getTid()); DebugInfoFrame frame = createDebugInfoStackTrace(task); - printStackTrace(printWriter, frame, 20, printParameters,printScopes,fullpath); + printStackTrace(printWriter, frame, numberOfFrames, printParameters,printScopes,fullpath); } printWriter.flush(); } - public static final void printVirtualTaskStackTrace (PrintWriter printWriter, Task task, boolean printParameters, boolean printScopes, boolean fullpath) + public static final void printVirtualTaskStackTrace (PrintWriter printWriter, Task task, int numberOfFrames, boolean printParameters, boolean printScopes, boolean fullpath) { if (task != null){ printWriter.println("Task #" + task.getTid()); DebugInfoFrame frame = createVirtualStackTrace(task); - printStackTrace(printWriter,frame, 20, printParameters,printScopes,fullpath); + printStackTrace(printWriter,frame, numberOfFrames, printParameters,printScopes,fullpath); } printWriter.flush(); } @@ -124,6 +124,8 @@ public class DebugInfoStackFactory { boolean printScopes, boolean fullpath) { + System.out.println("DebugInfoStackFactory.printStackTrace() numberOfFrames " + numberOfFrames); + int count = 0; for (DebugInfoFrame frame = topFrame; frame != null; frame = frame.getOuterDebugInfoFrame()) { diff --git a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java index 8342b3c..3cf8375 100644 --- a/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java +++ b/frysk-core/frysk/debuginfo/TestFrameDebugInfo.java @@ -188,7 +188,7 @@ public class TestFrameDebugInfo Task task = (new DaemonBlockedAtSignal("funit-stack-inlined")).getMainTask(); StringWriter stringWriter = new StringWriter(); - DebugInfoStackFactory.printVirtualTaskStackTrace(new PrintWriter(stringWriter), task, true, true, true); + DebugInfoStackFactory.printVirtualTaskStackTrace(new PrintWriter(stringWriter), task,0, true, true, true); assertTrue("contains inline", stringWriter.getBuffer().toString().contains("inline")); assertTrue("contains first", stringWriter.getBuffer().toString().contains("first")); diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 9eaf26d..8d41403 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -39,34 +39,36 @@ package frysk.proc.dead; -import frysk.Config; import inua.eio.ByteBuffer; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; + +import lib.dwfl.Dwfl; +import lib.dwfl.DwflModule; +import lib.dwfl.SymbolBuilder; +import frysk.Config; +import frysk.dwfl.DwflCache; +import frysk.event.Event; +import frysk.event.RequestStopEvent; import frysk.isa.IA32Registers; import frysk.proc.Action; -import frysk.proc.Task; -import frysk.proc.Proc; -import frysk.proc.Host; import frysk.proc.Auxv; -import frysk.testbed.DaemonBlockedAtSignal; -import frysk.testbed.TestLib; -import frysk.proc.ProcId; +import frysk.proc.Host; import frysk.proc.Manager; import frysk.proc.MemoryMap; -import frysk.proc.TaskObserver; -import frysk.util.CoredumpAction; -import frysk.util.StacktraceAction; -import frysk.event.Event; -import frysk.event.RequestStopEvent; +import frysk.proc.Proc; import frysk.proc.ProcBlockAction; import frysk.proc.ProcCoreAction; +import frysk.proc.ProcId; +import frysk.proc.Task; +import frysk.proc.TaskObserver; +import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.LegacyOffspring; - -import lib.dwfl.*; -import frysk.dwfl.*; +import frysk.testbed.TestLib; +import frysk.util.CoredumpAction; +import frysk.util.StacktraceAction; public class TestLinuxCore extends TestLib @@ -156,7 +158,7 @@ public class TestLinuxCore // Create a Stacktrace of the blocked live process liveStacktrace = new StacktraceAction(new PrintWriter(liveStackOutput), testProc, - new RequestStopEvent(Manager.eventLoop), + new RequestStopEvent(Manager.eventLoop),0, true, false, false, false, false, false) { @@ -187,7 +189,7 @@ public class TestLinuxCore // Create a stackktrace of a the corefile process coreStacktrace = new StacktraceAction(new PrintWriter(coreStackOutput), coreProc, - new PrintEvent(), + new PrintEvent(),0, true, false, false, false , false, false) { diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 110edfe..2684148 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,8 @@ +2007-11-21 Sami Wagiaalla + + * StackFactory.java (printTaskStackTrace): Added number of + frames check. + 2007-11-19 Mark Wielaard * LibunwindFrame.java (getAddress): Don't do a proc name lookup, diff --git a/frysk-core/frysk/stack/StackFactory.java b/frysk-core/frysk/stack/StackFactory.java index 106f38f..0bdaced 100644 --- a/frysk-core/frysk/stack/StackFactory.java +++ b/frysk-core/frysk/stack/StackFactory.java @@ -87,13 +87,19 @@ public class StackFactory public static final void printTaskStackTrace(PrintWriter writer, Task task, - boolean printSourceLibrary) { + boolean printSourceLibrary, int numberOfFrames) { if (task != null) { writer.print("Task #"); writer.print(task.getTid()); writer.println(); Frame frame = StackFactory.createFrame(task); - for (; frame != null; frame = frame.getOuter()) { + for (int i = 0; frame != null; frame = frame.getOuter(),i++) { + + if (numberOfFrames > 0 && i >= numberOfFrames) { + writer.println("..."); + break; + } + frame.printLevel(writer); writer.print(" "); frame.toPrint(writer, printSourceLibrary); diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 0c48a08..5c50a53 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-11-21 Sami Wagiaalla + + * StacktraceAction.java: Now passes numberOfFrames argument. + 2007-11-20 Andrew Cagney * X8664LinuxElfCorefile.java: Fix typo; "eflags" -> "rflags". diff --git a/frysk-core/frysk/util/StacktraceAction.java b/frysk-core/frysk/util/StacktraceAction.java index 51087e7..2418dc7 100644 --- a/frysk-core/frysk/util/StacktraceAction.java +++ b/frysk-core/frysk/util/StacktraceAction.java @@ -79,6 +79,7 @@ public abstract class StacktraceAction private Event event; boolean elfOnly; + private final int numberOfFrames; boolean printParameters; boolean printScopes; boolean fullpath; @@ -93,6 +94,7 @@ public abstract class StacktraceAction * @param theProc the process to run the stack trace on. * @param theEvent an event to run on completion of the stack trace. For * example: Stop the eventLoop and exit the program. + * @param numberOfFrames number of frames to print pass value <=0 to print all frames. * @param elfOnly if true print an elf only stack back trace not referring to any * stack debug information. Otherwise, print a rich stack trace using * debug information. @@ -104,10 +106,11 @@ public abstract class StacktraceAction * file path is printed other wise only the name of the file is printed. * @throws ProcException */ - public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent,boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath, boolean printSourceLibrary) + public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent, int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath, boolean printSourceLibrary) { event = theEvent; - + + this.numberOfFrames = numberOfFrames; this.virtualFrames = virtualFrames; this.elfOnly = elfOnly; this.printParameters = printParameters; @@ -116,7 +119,7 @@ public abstract class StacktraceAction this.printSourceLibrary = printSourceLibrary; this.printWriter = printWriter; - Manager.eventLoop.add(new InterruptEvent(theProc)); + Manager.eventLoop.add(new InterruptEvent(theProc)); } public final void existingTask (Task task) @@ -150,14 +153,15 @@ public abstract class StacktraceAction Task task = (Task) iter.next(); if(elfOnly){ - StackFactory.printTaskStackTrace(printWriter,task,printSourceLibrary); + StackFactory.printTaskStackTrace(printWriter,task,printSourceLibrary, numberOfFrames); }else{ if(virtualFrames){ - DebugInfoStackFactory.printVirtualTaskStackTrace(printWriter,task,printParameters,printScopes,fullpath); + DebugInfoStackFactory.printVirtualTaskStackTrace(printWriter,task,numberOfFrames, printParameters,printScopes,fullpath); }else{ - DebugInfoStackFactory.printTaskStackTrace(printWriter,task,printParameters,printScopes,fullpath); + DebugInfoStackFactory.printTaskStackTrace(printWriter,task,numberOfFrames, printParameters,printScopes,fullpath); } } + printWriter.println(); } logger.log(Level.FINE, "{0} exiting printTasks\n", this); } diff --git a/frysk-core/frysk/util/StressTestFStack.java b/frysk-core/frysk/util/StressTestFStack.java index 49cb8bb..deb2b88 100644 --- a/frysk-core/frysk/util/StressTestFStack.java +++ b/frysk-core/frysk/util/StressTestFStack.java @@ -88,7 +88,7 @@ public class StressTestFStack { proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); } - }, true,false, false, false, false,true) + },0, true,false, false, false, false,true) { public void addFailed (Object observable, Throwable w) diff --git a/frysk-core/frysk/util/TestFStack.java b/frysk-core/frysk/util/TestFStack.java index c2fe417..42b5df8 100644 --- a/frysk-core/frysk/util/TestFStack.java +++ b/frysk-core/frysk/util/TestFStack.java @@ -93,18 +93,18 @@ public class TestFStack + "#[\\d]+ 0x[\\da-f]+ in server \\(\\).*\n" + "#[\\d]+ 0x[\\da-f]+ in main \\(\\).*\n" + "#[\\d]+ 0x[\\da-f]+ in __libc_start_main \\(\\).*\n" - + "#[\\d]+ 0x[\\da-f]+ in _start \\(\\).*\n"; + + "#[\\d]+ 0x[\\da-f]+ in _start \\(\\).*\n\n"; String thread = "Task #\\d+\n" + "(#[\\d]+ 0x[\\da-f]+ in .*\n)*" + "#[\\d]+ 0x[\\da-f]+ in server \\(\\).*\n" + "#[\\d]+ 0x[\\da-f]+ in start_thread \\(\\).*\n" - + "#[\\d]+ 0x[\\da-f]+ in (__)?clone \\(\\).*\n"; + + "#[\\d]+ 0x[\\da-f]+ in (__)?clone \\(\\).*\n\n"; final Proc proc = ackProc.assertFindProcAndTasks(); StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop), true, false,false, false, false,true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, false,true) { public void addFailed (Object observable, Throwable w) @@ -145,7 +145,7 @@ public class TestFStack Proc proc = (Proc) iter.next(); StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop), true, false,false, false, false,true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, false,true) { public void addFailed (Object observable, Throwable w) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 17:36:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 17:36:00 -0000 Subject: [SCM] master: Add IndirectBankRegisterMap.add(Register) and .add(Register,Register). Message-ID: <20071122173602.6789.qmail@sourceware.org> The branch, master has been updated via e4d4f7379e787d9b94795ea76f08994923eae8f9 (commit) from 3f968fbe46d1ba360e37d072921d716e147f6826 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e4d4f7379e787d9b94795ea76f08994923eae8f9 Author: Andrew Cagney Date: Thu Nov 22 11:57:00 2007 -0500 Add IndirectBankRegisterMap.add(Register) and .add(Register,Register). frysk-core/frysk/proc/ChangeLog 2007-11-22 Andrew Cagney * IndirectBankRegisterMap.java (add(Register)): New. (add(Register,Register)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 5 ++++ frysk-core/frysk/proc/IndirectBankRegisterMap.java | 21 ++++++++++++++++++++ 2 files changed, 26 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index f467745..d64c8f1 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * IndirectBankRegisterMap.java (add(Register)): New. + (add(Register,Register)): New. + 2007-11-22 Jose Flavio Aguilar Paulino * PPCBankRegisters.java: Correcting the bank registers PPC32on64. diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/proc/IndirectBankRegisterMap.java index 069922e..81aadf5 100644 --- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/proc/IndirectBankRegisterMap.java @@ -40,6 +40,7 @@ package frysk.proc; import inua.eio.ByteOrder; +import frysk.isa.Register; /** * Mapping between bank registers, in particular a 32-bit register's @@ -76,6 +77,26 @@ class IndirectBankRegisterMap extends BankRegisterMap { return this; } + IndirectBankRegisterMap add(Register reg32, Register reg64) { + BankRegister map32reg = map32.get(reg32); + if (reg32 == null) + throw new RuntimeException("unknown 32-bit register: " + reg32); + BankRegister map64reg = map64.get(reg64); + if (map64reg == null) + throw new RuntimeException("unknown 64-bit register: " + reg64); + return add(map32reg, map64reg); + } + + IndirectBankRegisterMap add(Register reg32) { + BankRegister map32reg = map32.get(reg32); + if (reg32 == null) + throw new RuntimeException("unknown 32-bit register: " + reg32); + BankRegister map64reg = map64.get(reg32.getName()); + if (map64reg == null) + throw new RuntimeException("unknown 64-bit register: " + reg32); + return add(map32reg, map64reg); + } + IndirectBankRegisterMap add(String map32Name, String map64Name) { BankRegister reg32 = map32.get(map32Name); if (reg32 == null) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 17:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 17:51:00 -0000 Subject: [SCM] master: Add preliminary RHEL 4 configure notes. Message-ID: <20071122175115.11597.qmail@sourceware.org> The branch, master has been updated via f3a7416e830b9fbeacddac5c90183389e5b64136 (commit) from e4d4f7379e787d9b94795ea76f08994923eae8f9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f3a7416e830b9fbeacddac5c90183389e5b64136 Author: Andrew Cagney Date: Thu Nov 22 12:50:38 2007 -0500 Add preliminary RHEL 4 configure notes. ----------------------------------------------------------------------- Summary of changes: htdocs/build/rhel/index.html | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html index a20eea2..78a3dfe 100644 --- a/htdocs/build/rhel/index.html +++ b/htdocs/build/rhel/index.html @@ -90,18 +90,31 @@ and frysk RPMs that contain everything needed to build frysk from CVS; just install RPMs for the following:
    -transfig xmlto passivetex xmltex \
    -gcc4 gcc4-c++ gcc4-java libgcj4-devel \
    -sharutils frysk automake ghostscript yelp
    +up2date make transfig \
    +    gcc4 gcc4-c++ gcc4-java libgcj4-devel \
    +    autoconf automake \
    +    xmlto prelink sharutils audit-libs-devel gawk \
    +    frysk pkgconfig ghostscript yelp
     

    -(A broken dependency in transfig means that ghostscript must also be -explicitly specified.) +in addition, the following rpms can be obtained from the EPEL repository: + +

    +git-core
    +

    +To configure frysk use: + +

    +( mkdir build && cd build && ../frysk/configure \
    +     PKG_CONFIG_PATH=/usr/lib/frysk/pkgconfig:/usr/lib/pkgconfig )
    +
    + For additional updates, check Red Hat Enterprise Linux 4's tracker bug's dependency tree. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 17:53:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 17:53:00 -0000 Subject: [SCM] master: Delete unused import of subprocess. Message-ID: <20071122175330.12211.qmail@sourceware.org> The branch, master has been updated via cb32a788e5ece3e8775f3def07d86e13ee14a64f (commit) from f3a7416e830b9fbeacddac5c90183389e5b64136 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cb32a788e5ece3e8775f3def07d86e13ee14a64f Author: Andrew Cagney Date: Thu Nov 22 12:58:36 2007 -0500 Delete unused import of subprocess. frysk-core/frysk/debuginfo/ChangeLog 2007-11-22 Andrew Cagney * gen-type-expect-tests.py: Do not import "subprocess". frysk-core/frysk/pkglibdir/ChangeLog 2007-11-22 Andrew Cagney * gen-type-funit-tests.py: Do not import "subprocess". ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ .../frysk/debuginfo/gen-type-expect-tests.py | 1 - frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 1 - 4 files changed, 8 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 54ca18b..728e5bb 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Andrew Cagney + + * gen-type-expect-tests.py: Do not import "subprocess". + 2007-11-21 Sami Wagiaalla * DebugInfoStackFactory.java (printTaskStackTrace): Added diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index c8197e2..58593ce 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -41,7 +41,6 @@ import os,posix,sys import re -from subprocess import * from os.path import * ######################################################################## diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index d383139..1e149f8 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Andrew Cagney + + * gen-type-funit-tests.py: Do not import "subprocess". + 2007-11-19 Stan Cox * gen-type-funit-tests.py (main): Allow for improved formatting of diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index 123d477..e4fc9c9 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -1,6 +1,5 @@ #!/usr/bin/python import os,posix,sys -from subprocess import * from os.path import * ######################################################################## hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 17:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 17:54:00 -0000 Subject: [SCM] master: Convert more "register" to Register.REGISTER. Message-ID: <20071122175447.13297.qmail@sourceware.org> The branch, master has been updated via 133f583505e712fc4911f624e42262833a37e468 (commit) from cb32a788e5ece3e8775f3def07d86e13ee14a64f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 133f583505e712fc4911f624e42262833a37e468 Author: Andrew Cagney Date: Thu Nov 22 12:51:30 2007 -0500 Convert more "register" to Register.REGISTER. frysk-core/frysk/proc/ChangeLog 2007-11-22 Andrew Cagney * X86BankRegisters.java (IA32_ON_X8664): Use IndirectBankRegisterMap .add(Register) and .add(Register,Register). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 ++ frysk-core/frysk/proc/X86BankRegisters.java | 70 +++++++++++++------------- 2 files changed, 39 insertions(+), 35 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index d64c8f1..f451009 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,9 @@ 2007-11-22 Andrew Cagney + * X86BankRegisters.java (IA32_ON_X8664): Use + IndirectBankRegisterMap .add(Register) and + .add(Register,Register). + * IndirectBankRegisterMap.java (add(Register)): New. (add(Register,Register)): New. diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/proc/X86BankRegisters.java index 9b6d6e0..b28c1e7 100644 --- a/frysk-core/frysk/proc/X86BankRegisters.java +++ b/frysk-core/frysk/proc/X86BankRegisters.java @@ -173,23 +173,23 @@ public class X86BankRegisters { public static BankRegisterMap IA32_ON_X8664 = new IndirectBankRegisterMap(ByteOrder.LITTLE_ENDIAN, IA32, X8664) - .add("eax", "rax") - .add("ebx", "rbx") - .add("ecx", "rcx") - .add("edx", "rdx") - .add("esi", "rsi") - .add("edi", "rdi") - .add("ebp", "rbp") + .add(IA32Registers.EAX, X8664Registers.RAX) + .add(IA32Registers.EBX, X8664Registers.RBX) + .add(IA32Registers.ECX, X8664Registers.RCX) + .add(IA32Registers.EDX, X8664Registers.RDX) + .add(IA32Registers.ESI, X8664Registers.RSI) + .add(IA32Registers.EDI, X8664Registers.RDI) + .add(IA32Registers.EBP, X8664Registers.RBP) .add("cs", "cs") .add("ds", "ds") .add("es", "es") .add("fs", "fs") .add("gs", "gs") .add("ss", "gs") - .add("orig_eax", "orig_rax") - .add("eip", "rip") - .add("eflags","rflags") - .add("esp", "rsp") + .add(IA32Registers.ORIG_EAX, X8664Registers.ORIG_RAX) + .add(IA32Registers.EIP, X8664Registers.RIP) + .add(IA32Registers.EFLAGS,X8664Registers.RFLAGS) + .add(IA32Registers.ESP, X8664Registers.RSP) .add("cwd", "cwd") .add("swd", "swd") .add("twd", "ftw") @@ -197,29 +197,29 @@ public class X86BankRegisters { .add("fcs", 0) .add("foo", "rdp") .add("fos", 0) - .add("st0") - .add("st1") - .add("st2") - .add("st3") - .add("st4") - .add("st5") - .add("st6") - .add("st7") - .add("xmm0") - .add("xmm1") - .add("xmm2") - .add("xmm3") - .add("xmm4") - .add("xmm5") - .add("xmm6") - .add("xmm7") - .add("d0", "dr0") - .add("d1", "dr1") - .add("d2", "dr2") - .add("d3", "dr3") - .add("d4", "dr4") - .add("d5", "dr5") - .add("d6", "dr6") - .add("d7", "dr7") + .add(X87Registers.ST0) + .add(X87Registers.ST1) + .add(X87Registers.ST2) + .add(X87Registers.ST3) + .add(X87Registers.ST4) + .add(X87Registers.ST5) + .add(X87Registers.ST6) + .add(X87Registers.ST7) + .add(IA32Registers.XMM0) + .add(IA32Registers.XMM1) + .add(IA32Registers.XMM2) + .add(IA32Registers.XMM3) + .add(IA32Registers.XMM4) + .add(IA32Registers.XMM5) + .add(IA32Registers.XMM6) + .add(IA32Registers.XMM7) + .add(IA32Registers.D0, X8664Registers.DR0) + .add(IA32Registers.D1, X8664Registers.DR1) + .add(IA32Registers.D2, X8664Registers.DR2) + .add(IA32Registers.D3, X8664Registers.DR3) + .add(IA32Registers.D4, X8664Registers.DR4) + .add(IA32Registers.D5, X8664Registers.DR5) + .add(IA32Registers.D6, X8664Registers.DR6) + .add(IA32Registers.D7, X8664Registers.DR7) ; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 18:10:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 18:10:00 -0000 Subject: [SCM] master: Mark up unresolved tests. Message-ID: <20071122181036.27766.qmail@sourceware.org> The branch, master has been updated via d4cb4466214f91e8742535701baae43d6e71a611 (commit) from 133f583505e712fc4911f624e42262833a37e468 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d4cb4466214f91e8742535701baae43d6e71a611 Author: Andrew Cagney Date: Thu Nov 22 13:09:59 2007 -0500 Mark up unresolved tests. frysk-core/frysk/bindir/ChangeLog 2007-11-22 Andrew Cagney * TestFstack.java (testBackTraceWithDashN()) (testBackTraceWithDashNDashA()): Mark as unresolved, bug 5394. frysk-core/frysk/proc/live/ChangeLog 2007-11-22 Andrew Cagney * TestByteBuffer.java (testMemoryBufferCapacity()): Mark as unresolved, bug 5394.: ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/TestFstack.java | 4 ++++ frysk-core/frysk/proc/live/ChangeLog | 5 +++++ frysk-core/frysk/proc/live/TestByteBuffer.java | 9 ++++++--- 4 files changed, 20 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 3ca398a..cbc2542 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * TestFstack.java (testBackTraceWithDashN()) + (testBackTraceWithDashNDashA()): Mark as unresolved, bug 5394. + 2007-11-21 Sami Wagiaalla * TestFstack.java (testBackTraceWithDashN): New test. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index fa0f4a4..5248d24 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -139,6 +139,8 @@ public class TestFstack } public void testBackTraceWithDashN () { + if (unresolved(5395)) + return; Expect e = fstack("funit-long-stack", new String[]{"-n","5"}); e.expect("\\#0 .*crash[^\\r\\n]*"); e.expect("\\#1 .*first[^\\r\\n]*"); @@ -163,6 +165,8 @@ public class TestFstack } public void testBackTraceWithDashNDashA () { + if (unresolved(5394)) + return; Expect e = fstack("funit-long-stack", new String[]{"-n","5", "-a"}); e.expect("\\#0 .*crash[^\\r\\n]*"); e.expect("\\#1 .*first[^\\r\\n]*"); diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 04e2937..0e8ba0d 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * TestByteBuffer.java (testMemoryBufferCapacity()): Mark as + unresolved, bug 5394.: + 2007-11-22 Zhao Shujing * TestByteBuffer.java(testMemoryBufferCapacity()): New test. diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index f49bb83..d8d8063 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -267,10 +267,13 @@ public class TestByteBuffer } } - public void testMemoryBufferCapacity() - { - assertEquals("Memory Buffer Capacity: ", -1L, memorySpaceByteBuffer.capacity()); + public void testMemoryBufferCapacity() { + if (unresolved(5394)) + return; + assertEquals("Memory Buffer Capacity: ", -1L, + memorySpaceByteBuffer.capacity()); } + private class AsyncPeeks implements Runnable { hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 22 18:22:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 22 Nov 2007 18:22:00 -0000 Subject: [SCM] master: swagiaal: committed missing file funit-long-stack.c Message-ID: <20071122182210.32522.qmail@sourceware.org> The branch, master has been updated via af8238b8a4e17e2022f32197ce7030ecbb8e231a (commit) from d4cb4466214f91e8742535701baae43d6e71a611 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit af8238b8a4e17e2022f32197ce7030ecbb8e231a Author: Sami Wagiaalla Date: Thu Nov 22 13:18:41 2007 -0500 swagiaal: committed missing file funit-long-stack.c +2007-11-22 Sami Wagiaalla + + * funit-long-stack.c: New. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/funit-long-stack.c | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-) create mode 100644 frysk-core/frysk/pkglibdir/funit-long-stack.c First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 1e149f8..a01c217 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Sami Wagiaalla + + * funit-long-stack.c: New. + 2007-11-22 Andrew Cagney * gen-type-funit-tests.py: Do not import "subprocess". diff --git a/frysk-core/frysk/pkglibdir/funit-long-stack.c b/frysk-core/frysk/pkglibdir/funit-long-stack.c new file mode 100644 index 0000000..b5f5ddb --- /dev/null +++ b/frysk-core/frysk/pkglibdir/funit-long-stack.c @@ -0,0 +1,24 @@ +#include + +void crash(){ + char* c = 0; + c[0] = 'a'; +} + +void first(int stack){ + + if(stack < 50){ + first(stack+1); + }else{ + crash(); + } +} + + +int main(){ + + first (0); + + return 0; +} + hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 18:43:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 18:43:00 -0000 Subject: [SCM] master: Make GLADE_DTD_FILE configurable; update build notes. Message-ID: <20071122184349.7543.qmail@sourceware.org> The branch, master has been updated via aa593ea5965e213d521a48092a7785f5195170c5 (commit) from af8238b8a4e17e2022f32197ce7030ecbb8e231a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit aa593ea5965e213d521a48092a7785f5195170c5 Author: Andrew Cagney Date: Thu Nov 22 13:43:28 2007 -0500 Make GLADE_DTD_FILE configurable; update build notes. frysk-gui/ChangeLog 2007-11-22 Andrew Cagney * configure.ac: Set. * Makefile.am (GLADE_DTD_FILE): Set to @GLADE_DTD_FILE@. ----------------------------------------------------------------------- Summary of changes: frysk-gui/ChangeLog | 5 +++++ frysk-gui/Makefile.am | 2 +- frysk-gui/configure.ac | 5 +++++ htdocs/build/rhel/index.html | 5 +++-- 4 files changed, 14 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-gui/ChangeLog b/frysk-gui/ChangeLog index 7fa3697..5a0d8d6 100644 --- a/frysk-gui/ChangeLog +++ b/frysk-gui/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * configure.ac: Set. + * Makefile.am (GLADE_DTD_FILE): Set to @GLADE_DTD_FILE@. + 2007-11-13 Jose Flavio Aguilar Paulino * Makefile.am: Add libunwind-ppc32 to gcj linker dependencies. diff --git a/frysk-gui/Makefile.am b/frysk-gui/Makefile.am index 1ba069c..3d2c7aa 100644 --- a/frysk-gui/Makefile.am +++ b/frysk-gui/Makefile.am @@ -138,7 +138,7 @@ checked-glade-xml-with-xmllint: $(glade_DATA) glade.catalog done touch $@ CLEANFILES += glade.catalog -GLADE_DTD_FILE = file://$(LIBGLADE_PREFIX)/share/xml/libglade/glade-2.0.dtd +GLADE_DTD_FILE = @GLADE_DTD_FILE@ glade.catalog: rm -f $@.tmp $(XMLCATALOG) --noout -v --create $@.tmp diff --git a/frysk-gui/configure.ac b/frysk-gui/configure.ac index 3e84a76..a345429 100644 --- a/frysk-gui/configure.ac +++ b/frysk-gui/configure.ac @@ -64,7 +64,12 @@ AC_SUBST([CONFIG_STATUS_DEPENDENCIES], [$FRYSK_GUI_JARS]) # Grab the libglade prefix at config time, used to find the .xml # definitions for glade. + FRYSK_PKG_MODULE_VARIABLE(LIBGLADE_PREFIX, prefix, [libglade-2.0]) +AC_MSG_CHECKING([GLADE_DTD_FILE]) +GLADE_DTD_FILE="file://${LIBGLADE_PREFIX}/share/xml/libglade/glade-2.0.dtd" +AC_MSG_RESULT(${GLADE_DTD_FILE}) +AC_SUBST(GLADE_DTD_FILE) AC_CONFIG_FILES([Makefile]) AC_OUTPUT diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html index 78a3dfe..764f6b7 100644 --- a/htdocs/build/rhel/index.html +++ b/htdocs/build/rhel/index.html @@ -111,8 +111,9 @@ git-core To configure frysk use:
    -( mkdir build && cd build && ../frysk/configure \
    -     PKG_CONFIG_PATH=/usr/lib/frysk/pkgconfig:/usr/lib/pkgconfig )
    +$ ( mkdir build && cd build && ../frysk/configure \
    +     PKG_CONFIG_PATH=/usr/lib/frysk/pkgconfig:/usr/lib/pkgconfig \
    +     GLADE_DTD_FILE=/usr/share/frysk/xml/libglade/glade-2.0.dtd )
     
    For additional updates, check Red Hat Enterprise Linux 4's tracker hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 22 19:34:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 22 Nov 2007 19:34:00 -0000 Subject: [SCM] master: swagiaal: reenabled fstack -n tests Message-ID: <20071122193450.8481.qmail@sourceware.org> The branch, master has been updated via 943add0b4c20c6965b068c3a5e8923d367441abf (commit) from aa593ea5965e213d521a48092a7785f5195170c5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 943add0b4c20c6965b068c3a5e8923d367441abf Author: Sami Wagiaalla Date: Thu Nov 22 13:48:08 2007 -0500 swagiaal: reenabled fstack -n tests frysk-core/frysk/bindir/ChangeLog +2007-11-22 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashN): enabled test. + (testBackTraceWithDashNDashA): Ditto. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/TestFstack.java | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index cbc2542..1921a3d 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashN): enabled test. + (testBackTraceWithDashNDashA): Ditto. + 2007-11-22 Andrew Cagney * TestFstack.java (testBackTraceWithDashN()) diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index 5248d24..61cd6ac 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -139,8 +139,7 @@ public class TestFstack } public void testBackTraceWithDashN () { - if (unresolved(5395)) - return; + Expect e = fstack("funit-long-stack", new String[]{"-n","5"}); e.expect("\\#0 .*crash[^\\r\\n]*"); e.expect("\\#1 .*first[^\\r\\n]*"); @@ -165,8 +164,7 @@ public class TestFstack } public void testBackTraceWithDashNDashA () { - if (unresolved(5394)) - return; + Expect e = fstack("funit-long-stack", new String[]{"-n","5", "-a"}); e.expect("\\#0 .*crash[^\\r\\n]*"); e.expect("\\#1 .*first[^\\r\\n]*"); hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Thu Nov 22 20:53:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Thu, 22 Nov 2007 20:53:00 -0000 Subject: [SCM] master: Avoid spurious waits in CountDownLatch.await Message-ID: <20071122205327.10260.qmail@sourceware.org> The branch, master has been updated via d7c815e89593b5133268c9574950ca09b01eb6c7 (commit) from 943add0b4c20c6965b068c3a5e8923d367441abf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d7c815e89593b5133268c9574950ca09b01eb6c7 Author: Tim Moore Date: Thu Nov 22 18:29:35 2007 +0100 Avoid spurious waits in CountDownLatch.await frysk-core/frysk/util/ChangeLog 2007-11-22 Tim Moore * CountDownLatch.java (await): Loop to avoid spurious wakeup. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 4 ++++ frysk-core/frysk/util/CountDownLatch.java | 27 +++++++++++++++++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 5c50a53..0eb921d 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Tim Moore + + * CountDownLatch.java (await): Loop to avoid spurious wakeup. + 2007-11-21 Sami Wagiaalla * StacktraceAction.java: Now passes numberOfFrames argument. diff --git a/frysk-core/frysk/util/CountDownLatch.java b/frysk-core/frysk/util/CountDownLatch.java index a972cfd..b191782 100644 --- a/frysk-core/frysk/util/CountDownLatch.java +++ b/frysk-core/frysk/util/CountDownLatch.java @@ -55,18 +55,33 @@ public class CountDownLatch { public void await() throws InterruptedException { - await(0); + while (count != 0) { + try { + wait(); + } + catch (InterruptedException e) { + throw e; + } + } } public synchronized boolean await(long timeout) throws InterruptedException { if (count == 0) return true; - try { - wait(timeout); - } - catch (InterruptedException e) { - throw e; + long now = System.currentTimeMillis(); + while (count != 0) { + long later = now + timeout; + try { + wait(timeout); + } + catch (InterruptedException e) { + throw e; + } + now = System.currentTimeMillis(); + if (now >= later) + break; + timeout = later - now; } // Either the count is 0 or we timed out return count == 0; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 20:57:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 20:57:00 -0000 Subject: [SCM] master: Pre-check each antlr file separately; handle GCJ's stray semicolon error. Message-ID: <20071122205723.12158.qmail@sourceware.org> The branch, master has been updated via 23d35ae52512823d608fb46136564301948b5fe1 (commit) from d7c815e89593b5133268c9574950ca09b01eb6c7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 23d35ae52512823d608fb46136564301948b5fe1 Author: Andrew Cagney Date: Thu Nov 22 15:56:40 2007 -0500 Pre-check each antlr file separately; handle GCJ's stray semicolon error. frysk-common/ChangeLog 2007-11-22 Andrew Cagney * Makefile.rules (.g.antlred): Compile each file separatly. * antlr-warnings.awk: Recognize the error "An empty declaration". ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 ++ frysk-common/Makefile.rules | 139 ++++++++++++++++++++++---------------- frysk-common/antlr-warnings.awk | 2 +- 3 files changed, 86 insertions(+), 60 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index fe624dc..7c46f6f 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Andrew Cagney + + * Makefile.rules (.g.antlred): Compile each file separatly. + * antlr-warnings.awk: Recognize the error "An empty declaration". + 2007-11-15 Andrew Cagney * antlr-warnings.awk: Delete references to ExprAST. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index bae9e3d..7c78f16 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -489,72 +489,93 @@ ANTLR = $(JAVA) \ SUFFIXES += .antlred .g .g.antlred: - mkdir -p $*.tmp - b=`basename $*` ; \ - d=`dirname $*` ; \ - cd $$d ; \ - $(ANTLR) -o $$b.tmp @abs_srcdir@/$*.g - @echo "Setting up generated files ..." ; \ - d=$*.tmp ; for gen in $$d/*.java ; do \ + @echo "" + @echo Creating working directory ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + mkdir -p $$t/$$d + @echo "" + @echo Running antlr in output directory to pick up previously generated files ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + cd $$d ; $(ANTLR) -o `basename $$t`/$$d @abs_srcdir@/$*.g + @echo "" + @echo Setting up generated files ... + @echo "" + @b=`basename $*` ; d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + for gen in $$t/$$d/*.java ; do \ b=`basename $$gen .java` ; \ - ( set -x ; mv $$gen $$d/$$b.gen ) ; \ - ( set -x ; rm -f $$d/../$$b.java ) ; \ - for f in @abs_srcdir@/`dirname $$d`/$$b.sed /dev/null ; do \ - if test -r $$f ; then \ - ( set -x ; cp $$f $$d/$$b.sed ) ; \ - break ; \ - fi ; \ - done ; \ + mv $$gen $$t/$$b.gen ; \ + i=@abs_srcdir@/$$d/$$b.sed ; \ + o=$$t/$$b.sed ; \ + if test -r $$i ; then \ + cp $$i $$o.sed ; \ + else \ + cp /dev/null $$o ; \ + fi ; \ done - @edits=true ; d=$*.tmp ; \ + @echo "" + @echo Running repeated builds ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + edits=true ; \ while $$edits ; do \ edits=false ; \ - echo "Applying fixes ..." ; \ - for gen in $$d/*.gen ; do \ + for gen in $$t/*.gen ; do \ b=`basename $$gen .gen` ; \ - ( set -x ; sed -f $$d/$$b.sed $$gen > $$d/$$b.java ) \ - || exit 1 ; \ - done ; \ - echo "Parsing compiler warnings ..." ; \ - rm -f $$d/*.antlr-fixes ; \ - ( set -x ; rm -rf $$d/classes ; mkdir -p $$d/classes ) ; \ - if test "x@HAVE_ECJ_TRUE@" = x ; then \ - ( set -x ; $(GIJ) 2>&1 \ - --classpath $(ECJ_JAR):$(CLASSPATH) \ - org.eclipse.jdt.internal.compiler.batch.Main \ - \ - -d $$d/classes \ - -warn:+semicolon \ - -sourcepath $(SOURCEPATH) \ - -classpath $(CLASSPATH) \ - $$d/*.java ) ; \ - else \ - ( set -x ; $(GCJCOMPILE) 2>&1 \ - -C \ - -d $$d/classes \ - $$d/*.java ) ; \ - fi | ( set -x ; cd $$d ; $(AWK) \ - -f @abs_srcdir@/common/antlr-warnings.awk ) ; \ - echo "Merging `sort -n $$d/*.antlr-fixes 2>/dev/null | uniq | wc -l` fixes" ; \ - for fix in $$d/*.antlr-fixes ; do \ - b=`basename $$fix .antlr-fixes` ; \ - test -r "$$d/$$b.sed" || continue ; \ - ( set -x ; sort -n $$d/$$b.sed $$fix | uniq > $$d/$$b.tmp ) ; \ - if ( set -x ; cmp -s $$d/$$b.tmp $$d/$$b.sed ) ; then \ - echo "***" ; \ - echo "*** $$d/$$b.sed already contains all fixes!" ; \ - echo "*** Assuming errors are real." ; \ - echo "***" ; \ - continue ; \ - fi ; \ - mv -f $$d/$$b.tmp $$d/$$b.sed ; \ - edits=true ; \ + echo "Applying fixes for $$b ..." ; \ + for fix in $$t/*.sed ; do \ + f=`basename $$fix .sed` ; \ + sed -f $$fix $$t/$$f.gen > $$t/$$d/$$f.java ; \ + done ; \ + echo "Parsing compiler warnings from $$b..." ; \ + rm -f $$t/*.antlr-fixes ; \ + rm -rf $$t/classes ; mkdir -p $$t/classes ; \ + if test "x@HAVE_ECJ_TRUE@" = y ; then \ + $(GIJ) 2>&1 \ + --classpath $(ECJ_JAR):$(CLASSPATH) \ + org.eclipse.jdt.internal.compiler.batch.Main \ + \ + -d $$t/classes \ + -warn:+semicolon \ + -sourcepath $$t:$(SOURCEPATH) \ + -classpath $(CLASSPATH) \ + $$t/$$d/$$b.java || true ; \ + else \ + $(GCJCOMPILE) 2>&1 \ + -C \ + -I $$t \ + -d $$t/classes \ + $$t/$$d/$$b.java || true ; \ + fi | ( \ + cd $$t ; \ + $(AWK) -f @abs_srcdir@/common/antlr-warnings.awk \ + ) ; \ + echo "Merging `sort -n $$t/*.antlr-fixes 2>/dev/null | uniq | wc -l` fixes" ; \ + for fix in $$t/*.antlr-fixes ; do \ + b=`basename $$fix .antlr-fixes` ; \ + test -r "$$t/$$b.sed" || continue ; \ + sort -n $$t/$$b.sed $$fix | uniq > $$t/$$b.tmp ; \ + if ( set -x ; cmp -s $$t/$$b.tmp $$t/$$b.sed ) ; then \ + echo "***" ; \ + echo "*** $$t/$$b.sed already contains all fixes!" ; \ + echo "*** Assuming errors are real." ; \ + echo "***" ; \ + continue ; \ + fi ; \ + mv -f $$t/$$b.tmp $$t/$$b.sed ; \ + edits=true ; \ + done ; \ done ; \ done || true - @echo Installing generated files files ... ; \ - ( cd $*.tmp ; for f in *.java *.txt ; do \ - ( set -x ; cp $$f ../$$f ) ; \ - done ) + @echo "" + @echo Installing generated files files ... + @echo "" + @d=`dirname $*` ; t=$*.tmp ; set -xe ; \ + for f in $$t/$$d/*.java $$t/$$d/*.txt ; do \ + b=`basename $$f` ; \ + cp $$f $$d/$$b ; \ + done rm -rf $*.antlred touch $*.antlred diff --git a/frysk-common/antlr-warnings.awk b/frysk-common/antlr-warnings.awk index f77e3c0..8b40149 100644 --- a/frysk-common/antlr-warnings.awk +++ b/frysk-common/antlr-warnings.awk @@ -107,7 +107,7 @@ function sed_comment(code) { return "s," code ",// " code "," } -prob ~ /Unnecessary semicolon/ { +prob ~ /Unnecessary semicolon/ || prob ~ /An empty declaration is a deprecated feature/ { if (code ~ /};/) { sed = "s,};,} // ;," } else if (code ~ /;;$/) { hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 22 20:59:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 22 Nov 2007 20:59:00 -0000 Subject: [SCM] master: swagiaal: test case and support for static data members. Message-ID: <20071122205859.12596.qmail@sourceware.org> The branch, master has been updated via a60c7c85cd7f5f4e570350c196d52e23381f335b (commit) from 23d35ae52512823d608fb46136564301948b5fe1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a60c7c85cd7f5f4e570350c196d52e23381f335b Author: Sami Wagiaalla Date: Thu Nov 22 15:34:53 2007 -0500 swagiaal: test case and support for static data members. frysk-core/frysk/debuginfo/ChangeLog +2007-11-22 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): Added test for static + and dynamic data members and member functions. + (getGccStructOrClassType): Added Check for static data members. + frysk-core/frysk/value/ChangeLog +2007-11-22 Sami Wagiaalla + + * CompositeType.java (addStaticMember): New overloaded functions. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 +++ frysk-core/frysk/debuginfo/TestTypeEntry.java | 41 ++++++++++----------- frysk-core/frysk/debuginfo/TypeEntry.java | 49 ++++++++++++++++++------- frysk-core/frysk/value/ChangeLog | 4 ++ frysk-core/frysk/value/CompositeType.java | 13 +++++-- 5 files changed, 75 insertions(+), 38 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 728e5bb..33d0db3 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +2007-11-22 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): Added test for static + and dynamic data members and member functions. + (getGccStructOrClassType): Added Check for static data members. + 2007-11-22 Andrew Cagney * gen-type-expect-tests.py: Do not import "subprocess". diff --git a/frysk-core/frysk/debuginfo/TestTypeEntry.java b/frysk-core/frysk/debuginfo/TestTypeEntry.java index b02a08c..95f85e6 100644 --- a/frysk-core/frysk/debuginfo/TestTypeEntry.java +++ b/frysk-core/frysk/debuginfo/TestTypeEntry.java @@ -53,7 +53,9 @@ import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.TestLib; import frysk.value.CompositeType; import frysk.value.Type; +import frysk.value.CompositeType.DynamicMember; import frysk.value.CompositeType.Member; +import frysk.value.CompositeType.StaticMember; public class TestTypeEntry extends TestLib @@ -260,29 +262,24 @@ public class TestTypeEntry Iterator iterator = compositeType.iterator(); while(iterator.hasNext()){ - System.out.println("TestTypeEntry.testClassWithStaticMembers() " + ((Member)iterator.next()).getName() + "\n"); + Member member = (Member) iterator.next(); + + if(member.getName().equals("i")){ + assertTrue("Member " + member.getName() + " has the correct class", member instanceof DynamicMember); + } + + if(member.getName().equals("static_i")){ + assertTrue("Member " + member.getName() + " has the correct class", member instanceof StaticMember); + } + + if(member.getName().equals("crash")){ + assertTrue("Member " + member.getName() + " has the correct class", member instanceof DynamicMember); + } + + if(member.getName().equals("static_crash")){ + assertTrue("Member " + member.getName() + " has the correct class", member instanceof StaticMember); + } } - - assertTrue(false); - -// Dwfl dwfl; -// DwarfDie[] allDies; -// Type varType; -// DwarfDie varDie; -// long pc = frame.getAdjustedAddress(); -// dwfl = DwflCache.getDwfl(frame.getTask()); -// DwflDieBias bias = dwfl.getCompilationUnit(pc); -// DwarfDie die = bias.die; -// allDies = die.getScopes(pc - bias.bias); -// TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); -// -// for (int i = 0; i < expect.length; i++) { -// varDie = die.getScopeVar(allDies, expect[i].symbol); -// varType = typeEntry.getType(varDie.getType()); -// Pattern p = Pattern.compile(expect[i].output, Pattern.DOTALL); -// Matcher m = p.matcher(varType.toPrint()); -// assertTrue("testClass " + expect[i].symbol, m.matches()); -// } } } diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 0af1b45..a33b6a1 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -125,17 +125,24 @@ public class TypeEntry * @return GccStructOrClassType for the struct */ public GccStructOrClassType getGccStructOrClassType(DwarfDie classDie, String name) { + dumpDie("classDie=", classDie); GccStructOrClassType classType = new GccStructOrClassType(name, getByteSize(classDie)); - for (DwarfDie member = classDie.getChild(); member != null; member = member - .getSibling()) { + + for (DwarfDie member = classDie.getChild(); + member != null; + member = member.getSibling()) { + dumpDie("member=", member); + + boolean staticMember = false; long offset; try { offset = member.getDataMemberLocation(); } catch (DwAttributeNotFoundException de) { offset = 0; // union + staticMember = true; } Access access = null; @@ -144,8 +151,7 @@ public class TypeEntry case DwAccess.PROTECTED_: access = Access.PROTECTED; break; case DwAccess.PRIVATE_: access = Access.PRIVATE; break; } - DwarfDie memberDieType = member.getUltimateType(); - + if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); classType.addMember(member.getName(), v.getType(), offset, @@ -153,8 +159,9 @@ public class TypeEntry continue; } - if (memberDieType == null) - continue; +// DwarfDie memberDieType = member.getUltimateType(); +// if (memberDieType == null) +// continue; Type memberType = getType (member.getType()); if (memberType instanceof UnknownType == false) { @@ -164,17 +171,33 @@ public class TypeEntry if (bitSize != -1) { int bitOffset = member .getAttrConstant(DwAt.BIT_OFFSET); - classType.addMember(member.getName(), memberType, offset, access, - bitOffset, bitSize); + if(staticMember){ + classType.addStaticMember(member.getName(), memberType, offset, access, + bitOffset, bitSize); + }else{ + classType.addMember(member.getName(), memberType, offset, access, + bitOffset, bitSize); + } + } + else{ + if(staticMember){ + classType.addStaticMember(member.getName(), memberType, offset, access); + }else{ + classType.addMember(member.getName(), memberType, offset, access); + } + } - else - classType.addMember(member.getName(), memberType, offset, access); - continue; } - else - classType.addMember(member.getName(), new UnknownType(member + else{ + if(staticMember){ + classType.addStaticMember(member.getName(), new UnknownType(member .getName()), offset, access); + }else{ + classType.addMember(member.getName(), new UnknownType(member + .getName()), offset, access); + } + } } return classType; diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index b280d2a..ce55ce4 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Sami Wagiaalla + + * CompositeType.java (addStaticMember): New overloaded functions. + 2007-11-21 Teresa Thomas * ArrayType.java (slice): New. diff --git a/frysk-core/frysk/value/CompositeType.java b/frysk-core/frysk/value/CompositeType.java index 27de857..9f8bc8b 100644 --- a/frysk-core/frysk/value/CompositeType.java +++ b/frysk-core/frysk/value/CompositeType.java @@ -75,7 +75,7 @@ public abstract class CompositeType } } - static class StaticMember extends Member{ + public static class StaticMember extends Member{ public StaticMember(int index, String name, Type type, Access access, boolean inheritance) { @@ -87,7 +87,7 @@ public abstract class CompositeType /** * Class members; package private. */ - static class DynamicMember extends Member{ + public static class DynamicMember extends Member{ // XXX: To keep getValue working. final long offset; final int bitOffset; @@ -213,8 +213,15 @@ public abstract class CompositeType public CompositeType addStaticMember(String name, Type type, long offset, Access access){ - return add(name, type, offset, access, -1, -1,false, false); + return add(name, type, offset, access, -1, -1,true, false); } + + public CompositeType addStaticMember(String name, Type type, long offset, + Access access, int bitOffset, + int bitLength) { + return add(name, type, offset, access, bitOffset, bitLength, true, false); + } + /** * Iterate through the class types. */ hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 21:13:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 21:13:00 -0000 Subject: [SCM] master: Fix tipo. Message-ID: <20071122211345.24446.qmail@sourceware.org> The branch, master has been updated via 4bed78efb9ade7bdb2446f1f08112edbc5af1e91 (commit) from a60c7c85cd7f5f4e570350c196d52e23381f335b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4bed78efb9ade7bdb2446f1f08112edbc5af1e91 Author: Andrew Cagney Date: Thu Nov 22 16:13:24 2007 -0500 Fix tipo. frysk-common/ChangeLog 2007-11-22 Andrew Cagney * Makefile.rules (.g.antlred): Fix typo disabling ECJ. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 2 ++ frysk-common/Makefile.rules | 2 +- 2 files changed, 3 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 7c46f6f..59ffd72 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,7 @@ 2007-11-22 Andrew Cagney + * Makefile.rules (.g.antlred): Fix typo disabling ECJ. + * Makefile.rules (.g.antlred): Compile each file separatly. * antlr-warnings.awk: Recognize the error "An empty declaration". diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 7c78f16..834e749 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -531,7 +531,7 @@ SUFFIXES += .antlred .g echo "Parsing compiler warnings from $$b..." ; \ rm -f $$t/*.antlr-fixes ; \ rm -rf $$t/classes ; mkdir -p $$t/classes ; \ - if test "x@HAVE_ECJ_TRUE@" = y ; then \ + if test "x@HAVE_ECJ_TRUE@" = x ; then \ $(GIJ) 2>&1 \ --classpath $(ECJ_JAR):$(CLASSPATH) \ org.eclipse.jdt.internal.compiler.batch.Main \ hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 22 21:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 22 Nov 2007 21:39:00 -0000 Subject: [SCM] master: Conditionally set GLADE_DTD_FILE. Message-ID: <20071122213908.3339.qmail@sourceware.org> The branch, master has been updated via 35cc78c82c7872b85563e4981c8e0603b5bd8893 (commit) from 4bed78efb9ade7bdb2446f1f08112edbc5af1e91 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 35cc78c82c7872b85563e4981c8e0603b5bd8893 Author: Andrew Cagney Date: Thu Nov 22 16:44:01 2007 -0500 Conditionally set GLADE_DTD_FILE. frysk-gui/ChangeLog 2007-11-22 Andrew Cagney * configure.ac (GLADE_DTD_FILE): Conditionally set. ----------------------------------------------------------------------- Summary of changes: frysk-gui/ChangeLog | 4 +++- frysk-gui/configure.ac | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-gui/ChangeLog b/frysk-gui/ChangeLog index 5a0d8d6..8461575 100644 --- a/frysk-gui/ChangeLog +++ b/frysk-gui/ChangeLog @@ -1,7 +1,9 @@ 2007-11-22 Andrew Cagney - * configure.ac: Set. + * configure.ac (GLADE_DTD_FILE): Conditionally set. + * Makefile.am (GLADE_DTD_FILE): Set to @GLADE_DTD_FILE@. + * configure.ac (GLADE_DTD_FILE): Set. 2007-11-13 Jose Flavio Aguilar Paulino diff --git a/frysk-gui/configure.ac b/frysk-gui/configure.ac index a345429..ba48e36 100644 --- a/frysk-gui/configure.ac +++ b/frysk-gui/configure.ac @@ -67,7 +67,7 @@ AC_SUBST([CONFIG_STATUS_DEPENDENCIES], [$FRYSK_GUI_JARS]) FRYSK_PKG_MODULE_VARIABLE(LIBGLADE_PREFIX, prefix, [libglade-2.0]) AC_MSG_CHECKING([GLADE_DTD_FILE]) -GLADE_DTD_FILE="file://${LIBGLADE_PREFIX}/share/xml/libglade/glade-2.0.dtd" +GLADE_DTD_FILE="${GLADE_DTD_FILE:-file://${LIBGLADE_PREFIX}/share/xml/libglade/glade-2.0.dtd}" AC_MSG_RESULT(${GLADE_DTD_FILE}) AC_SUBST(GLADE_DTD_FILE) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 22 21:49:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 22 Nov 2007 21:49:00 -0000 Subject: [SCM] master: swagiaal: Added check for static vs. dynamic member functions. Message-ID: <20071122214942.7871.qmail@sourceware.org> The branch, master has been updated via 210928258af6f0eaeb957a812b39eee1a7e61553 (commit) from 35cc78c82c7872b85563e4981c8e0603b5bd8893 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 210928258af6f0eaeb957a812b39eee1a7e61553 Author: Sami Wagiaalla Date: Thu Nov 22 16:10:29 2007 -0500 swagiaal: Added check for static vs. dynamic member functions. frysk-core/frysk/debuginfo/ChangeLog +2007-11-22 Sami Wagiaalla + + * TypeEntry.java (getGccStructOrClassType): Now checks for static + member functions. + (hasArtifitialParameter): New. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 6 +++++ frysk-core/frysk/debuginfo/TypeEntry.java | 32 +++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 33d0db3..868dcd0 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,5 +1,11 @@ 2007-11-22 Sami Wagiaalla + * TypeEntry.java (getGccStructOrClassType): Now checks for static + member functions. + (hasArtifitialParameter): New. + +2007-11-22 Sami Wagiaalla + * TestTypeEntry.java (testClassWithStaticMembers): Added test for static and dynamic data members and member functions. (getGccStructOrClassType): Added Check for static data members. diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index a33b6a1..2e8d01f 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -154,8 +154,11 @@ public class TypeEntry if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); - classType.addMember(member.getName(), v.getType(), offset, - access); + if(hasArtifitialParameter(member)){ + classType.addMember(member.getName(), v.getType(), offset, access); + }else{ + classType.addStaticMember(member.getName(), v.getType(), offset, access); + } continue; } @@ -203,6 +206,31 @@ public class TypeEntry return classType; } + /** + * Return true of the given die represents a + * subprogram or inlined subroutine + * @param die + * @return + */ + private boolean hasArtifitialParameter(DwarfDie die){ + if (die == null + || !(die.getTag().equals(DwTag.SUBPROGRAM) || + die.getTag().equals(DwTag.INLINED_SUBROUTINE))) { + throw new IllegalArgumentException("Die [" + die + "] is not" + + " a subprogram or inlined subroutine die"); + } + + DwarfDie param = die.getChild(); + while (param != null + && param.getTag().equals(DwTag.FORMAL_PARAMETER)) { + if (param.getAttrBoolean((DwAt.ARTIFICIAL)) == true) { + return true; + } + param = param.getSibling(); + } + return false; + } + // ??? Reduce getGccStructOrClassType/getUnionType duplication public UnionType getUnionType(DwarfDie classDie, String name) { dumpDie("unionDie=", classDie); hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Fri Nov 23 00:43:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Fri, 23 Nov 2007 00:43:00 -0000 Subject: [SCM] master: Fix bz #5396. Message-ID: <20071123004300.22752.qmail@sourceware.org> The branch, master has been updated via 08ac5754d8dfc76ec585a61611b315f17e08acc0 (commit) from 210928258af6f0eaeb957a812b39eee1a7e61553 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 08ac5754d8dfc76ec585a61611b315f17e08acc0 Author: Rick Moseley Date: Thu Nov 22 18:42:29 2007 -0600 Fix bz #5396. * TestPeekCommand.java: Fix bz #5396; added test for when no params are entered for command(testPeekCommandNoParameter). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 +++++ frysk-core/frysk/hpd/TestPeekCommand.java | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 56c1b6c..e3de710 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-22 Rick Moseley + + * TestPeekCommand.java: Fix bz #5396; added test for when + no params are entered for command(testPeekCommandNoParameter). + 2007-11-21 Phil Muldoon * PeekCommand.java (interpret): Check that arguments are > 0. diff --git a/frysk-core/frysk/hpd/TestPeekCommand.java b/frysk-core/frysk/hpd/TestPeekCommand.java index 545717f..7583890 100644 --- a/frysk-core/frysk/hpd/TestPeekCommand.java +++ b/frysk-core/frysk/hpd/TestPeekCommand.java @@ -71,10 +71,19 @@ public class TestPeekCommand extends TestLib { e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); e.expect(5, "Loaded executable file.*"); e.send("peek 0x08048000L\n"); - e.expect(5, "[0.0]"); + e.expect(5, "\\[0\\.0\\]"); e.expect(5, "The value at 08048000 = 127.*"); - e.expect(5, "[0.1]"); + e.expect(5, "\\[1\\.0\\]"); e.expect(5, "The value at 08048000 = 127.*"); e.close(); } + + public void testPeekCommandNoParameter() { + e = new HpdTestbed(); + e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); + e.expect(5, "Loaded executable file.*"); + e.send("peek\n"); + e.expect(5, "Error: Not enough parameters. Please specify an addess to peek at.*"); + e.close(); + } } hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Nov 23 11:09:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 23 Nov 2007 11:09:00 -0000 Subject: [SCM] master: * CountDownLatch.java (await): Mark as synchronized. Message-ID: <20071123110934.25337.qmail@sourceware.org> The branch, master has been updated via 0a57bd86cdd2366aeadf6833c871331ba0c9ae41 (commit) from 08ac5754d8dfc76ec585a61611b315f17e08acc0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0a57bd86cdd2366aeadf6833c871331ba0c9ae41 Author: Mark Wielaard Date: Fri Nov 23 12:09:16 2007 +0100 * CountDownLatch.java (await): Mark as synchronized. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 7 ++++++- frysk-core/frysk/util/CountDownLatch.java | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 0eb921d..f3b20f5 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-11-23 Mark Wielaard + + * CountDownLatch.java (await): Mark as synchronized. + 2007-11-22 Tim Moore * CountDownLatch.java (await): Loop to avoid spurious wakeup. @@ -11,7 +15,8 @@ * X8664LinuxElfCorefile.java: Fix typo; "eflags" -> "rflags". 2007-11-09 Jose Flavio Aguilar Paulino - * LinuxElfCorefileFactory.java: Removed Power little endian. + + * LinuxElfCorefileFactory.java: Removed Power little endian. 2007-10-22 Phil Muldoon diff --git a/frysk-core/frysk/util/CountDownLatch.java b/frysk-core/frysk/util/CountDownLatch.java index b191782..f9d548f 100644 --- a/frysk-core/frysk/util/CountDownLatch.java +++ b/frysk-core/frysk/util/CountDownLatch.java @@ -53,7 +53,7 @@ public class CountDownLatch { this.count = count; } - public void await() + public synchronized void await() throws InterruptedException { while (count != 0) { try { @@ -102,4 +102,4 @@ public class CountDownLatch { public String toString() { return super.toString() + " [Count=" + getCount() + "]"; } -} \ No newline at end of file +} hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Nov 23 11:35:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 23 Nov 2007 11:35:00 -0000 Subject: [SCM] master: Setup pc value for LinuxExeTask. Message-ID: <20071123113516.1351.qmail@sourceware.org> The branch, master has been updated via 177953c49c7e94a7f24d81806782dbc005ca617d (commit) from 0a57bd86cdd2366aeadf6833c871331ba0c9ae41 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 177953c49c7e94a7f24d81806782dbc005ca617d Author: Mark Wielaard Date: Fri Nov 23 12:35:04 2007 +0100 Setup pc value for LinuxExeTask. 2007-11-23 Mark Wielaard * LinuxExeTask.java (bankBuffers): New final field. (LinuxExeTask): Setup bankBuffers and explicitly set pc. (sendrecRegisterBanks): Use cached bankBuffers. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 6 +++++ frysk-core/frysk/proc/dead/LinuxExeTask.java | 29 +++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index b34d397..63adddf 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,9 @@ +2007-11-23 Mark Wielaard + + * LinuxExeTask.java (bankBuffers): New final field. + (LinuxExeTask): Setup bankBuffers and explicitly set pc. + (sendrecRegisterBanks): Use cached bankBuffers. + 2007-11-19 Phil Muldoon * TestLinuxCore.java (testInsertedBreakpoint): Pass executable diff --git a/frysk-core/frysk/proc/dead/LinuxExeTask.java b/frysk-core/frysk/proc/dead/LinuxExeTask.java index 3eb584c..1302be5 100644 --- a/frysk-core/frysk/proc/dead/LinuxExeTask.java +++ b/frysk-core/frysk/proc/dead/LinuxExeTask.java @@ -47,17 +47,44 @@ import frysk.proc.TaskId; import frysk.proc.TaskState; import frysk.isa.ISA; +import lib.dwfl.*; public class LinuxExeTask extends DeadTask { LinuxExeProc proc = null; TaskId id = null; + + // Holds all the register values, setup once in the constructor. + private final ByteBuffer[] bankBuffers; protected LinuxExeTask(LinuxExeProc proc, TaskId id, TaskState state) { super(proc, id, state); this.proc = proc; this.id = id; + this.bankBuffers = sendrecRegisterBuffersFIXME(); + + // Fake PC. XXX should be done in Proc instead of creating Elf + // object in the Task itself. + long pc; + Elf e = null; + try + { + e = new Elf(getProc().getExe(), ElfCommand.ELF_C_READ); + ElfEHeader h = e.getEHeader(); + pc = h.entry; + } + catch (ElfException ee) + { + // Nice try, just give up. + pc = 0; + } + finally + { + if (e != null) + e.close(); + } + getIsa().setPC(this, pc); } protected ISA sendrecISA() { @@ -93,6 +120,6 @@ public class LinuxExeTask extends DeadTask protected RegisterBanks sendrecRegisterBanks() { return CorefileRegisterBanksFactory.create - (getISA(), sendrecRegisterBuffersFIXME()); + (getISA(), bankBuffers); } } hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Nov 23 12:26:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 23 Nov 2007 12:26:00 -0000 Subject: [SCM] master: * git-fu.html: Document importing on vendor branches and merging Message-ID: <20071123122648.29044.qmail@sourceware.org> The branch, master has been updated via 2d2be297dcf9af37e1fd58d1bdedb1a13838c2ab (commit) from 177953c49c7e94a7f24d81806782dbc005ca617d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 2d2be297dcf9af37e1fd58d1bdedb1a13838c2ab Author: Mark Wielaard Date: Fri Nov 23 13:25:38 2007 +0100 * git-fu.html: Document importing on vendor branches and merging upstream sources. ----------------------------------------------------------------------- Summary of changes: htdocs/build/git-fu.html | 47 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/git-fu.html b/htdocs/build/git-fu.html index 4028ec7..6dbbaa8 100644 --- a/htdocs/build/git-fu.html +++ b/htdocs/build/git-fu.html @@ -401,6 +401,53 @@ cloned.

    git-bisect will do a binary search through the revision history to zero in on the first "bad" commit. At each stage you tell it whether its current choice is "good" or "bad" before it chooses the next. + +

    Importing on vendor branches and merging upstream sources

    + +

    This is an example of importing a new libunwind version from upstream +by putting it on the frysk vendor branch in git and then merging it +to trunk.

    + +
      +
    • Get the libunwind vendor branch + $ git-checkout vendor/LIBUNWIND +
    • Remove old stuff that needs to be replaced. + $ rm -rf frysk-import/libunwind +
    • Get upstream stuff and put it in + (make sure you don't accidentially copy over the upstream .git dir) + $ cp -r ~/upstream/libunwind frysk-import/ +
    • Commit (use a commit messsage like "Import of libunwind version + libunwind-20071122") and push + $ git-commit -a && git-push +
    + +

    The vendor branch is now updated, now we merge the result to the trunk.

    + +
      +
    • Switch to trunk + $ git-checkout master +
    • Merge new vendor branch to the trunk + $ git-merge vendor/LIBUNWIND +
    • Resolve the conflicts using git-rm for files not needed, + editing files with conflict markers and git-add each one + after resolving the issues. +
    • Do a full clean build and double check the test results. + [.. lots of time passes...] +
    • Double check your patches (all should now be staged in the git index) + with git-diff --cached +
    • Commit and push the result (git will have generated a merge message + for you already that you can use in the commit). + $ got commit && git push +
    + +

    If too much time has passed since the start the push will fail because +someone else will have pushed something already. Trying to do +a git fetch origin; git rebase origin seem to fail, so +you have to just do a git pull && git push then (which +creates an extra merge message, but that seems just fine).

    +

    +Comments on how to improve this process appreciated. +

    hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Nov 23 13:49:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 23 Nov 2007 13:49:00 -0000 Subject: [SCM] master: Get rid of ProcName libunwind symbol lookup. Message-ID: <20071123134944.6176.qmail@sourceware.org> The branch, master has been updated via 2180a0e3263189d34f8e01a891dc22994486a386 (commit) from 2d2be297dcf9af37e1fd58d1bdedb1a13838c2ab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 2180a0e3263189d34f8e01a891dc22994486a386 Author: Mark Wielaard Date: Fri Nov 23 14:45:16 2007 +0100 Get rid of ProcName libunwind symbol lookup. frysk-imports/libunwind/ChangeLog 2007-11-23 Mark Wielaard Revert: 2006-09-16 Alexandre Oliva * src/x86/Gget_proc_info.c (unw_get_proc_info): Use unw_get_proc_name to build a proper proc_info_t. * src/x86_64/Gget_proc_info.c (unw_get_proc_info): Likewise. * src/hppa/Gget_proc_info.c (unw_get_proc_info): Likewise. 2006-09-27 Alexandre Oliva * src/elfxx.c (lookup_symbol): Cope with NULL buf and zero buf_len. * src/mi/Gget_proc_name.c (intern_string, get_proc_name): Likewise. * src/hppa/Gget_proc_info.c (unw_get_proc_info): Use it. * src/x86/Gget_proc_info.c (unw_get_proc_info): Likewise. * src/x86_64/Gget_proc_info.c (unw_get_proc_info): Likewise. * doc/unw_get_proc_name.tex: Document NULL buf and zero buf_len. * doc/unw_create_addr_space.tex (get_proc_name): Likewise. * doc/unw_get_proc_name.man: Rebuilt. * doc/unw_create_addr_space.man: Likewise. frysk-core/frysk/stack/ChangeLog 2007-11-23 Mark Wielaard * LibunwindAddressSpace.java (getModuleFromAddress): Removed. (getProcName): Removed. frysk-sys/lib/unwind/ChangeLog 2007-11-23 Mark Wielaard * AddressSpace.java (getProcName): Removed. * Cursor.java (getProcName): Removed. * ProcName.java: Removed. * TestUnwind.java (getProcName): Removed. * Unwind.java (getProcName): Removed. * cnu/UnwindH.hxx (min): Removed. (get_proc_name): Return UNW_ENOMEM. (getProcName): Removed. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/stack/ChangeLog | 5 + frysk-core/frysk/stack/LibunwindAddressSpace.java | 61 -------------- frysk-imports/libunwind/ChangeLog | 22 +++++ .../libunwind/doc/unw_create_addr_space.man | 13 --- .../libunwind/doc/unw_create_addr_space.tex | 6 -- frysk-imports/libunwind/doc/unw_get_proc_name.man | 13 --- frysk-imports/libunwind/doc/unw_get_proc_name.tex | 6 -- frysk-imports/libunwind/src/elfxx.c | 10 +- frysk-imports/libunwind/src/hppa/Gget_proc_info.c | 7 +-- frysk-imports/libunwind/src/mi/Gget_proc_name.c | 22 ++---- frysk-imports/libunwind/src/x86/Gget_proc_info.c | 7 +-- .../libunwind/src/x86_64/Gget_proc_info.c | 7 +-- frysk-sys/lib/unwind/AddressSpace.java | 2 - frysk-sys/lib/unwind/ChangeLog | 16 +++- frysk-sys/lib/unwind/Cursor.java | 14 --- frysk-sys/lib/unwind/ProcName.java | 88 -------------------- frysk-sys/lib/unwind/TestUnwind.java | 3 - frysk-sys/lib/unwind/Unwind.java | 2 - frysk-sys/lib/unwind/cni/UnwindH.hxx | 53 +------------ 19 files changed, 56 insertions(+), 301 deletions(-) delete mode 100644 frysk-sys/lib/unwind/ProcName.java First 500 lines of diff: diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 2684148..72d529b 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,8 @@ +2007-11-23 Mark Wielaard + + * LibunwindAddressSpace.java (getModuleFromAddress): Removed. + (getProcName): Removed. + 2007-11-21 Sami Wagiaalla * StackFactory.java (printTaskStackTrace): Added number of diff --git a/frysk-core/frysk/stack/LibunwindAddressSpace.java b/frysk-core/frysk/stack/LibunwindAddressSpace.java index 80eb3cf..4b5f8d5 100644 --- a/frysk-core/frysk/stack/LibunwindAddressSpace.java +++ b/frysk-core/frysk/stack/LibunwindAddressSpace.java @@ -45,25 +45,18 @@ import lib.unwind.UnwindX8664; import lib.unwind.UnwindX86; import lib.unwind.UnwindPPC32; import lib.unwind.UnwindPPC64; -import frysk.dwfl.DwflCache; import frysk.dwfl.DwflFactory; -import frysk.event.Event; import frysk.isa.ISA; -import frysk.proc.Manager; import frysk.proc.MemoryMap; import frysk.proc.Task; import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; -import lib.dwfl.Dwfl; -import lib.dwfl.DwflModule; -import lib.dwfl.SymbolBuilder; import lib.unwind.AddressSpace; import lib.unwind.ByteOrder; import lib.unwind.Cursor; import lib.unwind.ElfImage; import lib.unwind.ProcInfo; -import lib.unwind.ProcName; import frysk.isa.RegisterMap; class LibunwindAddressSpace extends AddressSpace { @@ -168,60 +161,6 @@ class LibunwindAddressSpace extends AddressSpace { return - lib.unwind.Error.UNW_ENOINFO_; } - private DwflModule getModuleFromAddress (long addr) { - logger.log(Level.FINE, "Looking for addr: 0x{0}\n", - Long.toHexString(addr)); - Dwfl dwfl = null; - dwfl = DwflCache.getDwfl(task); - logger.log(Level.FINEST, "got dwfl: {0}\n", dwfl); - if (dwfl == null) { - logger.log(Level.FINE, "Dwfl was null\n"); - return null; - } - return dwfl.getModule(addr); - } - - public ProcName getProcName (long addr, int maxNameSize) { - logger.log(Level.FINE, - "entering getProcName addr: {0}, maxNameSize: {1}\n", - new Object[] { - Long.toHexString(addr), - new Integer(maxNameSize) - }); - // Need to tell ptrace thread to perform the getProcName operation. - class ExecuteGetProcName - implements Event, SymbolBuilder - { - ProcName procName; - long addr; - - ExecuteGetProcName (long addr) { - this.addr = addr; - } - - public void symbol (String name, long value, long size, int type, - int bind, int visibility) { - procName = new ProcName(addr-value, name); - } - - public void execute () { - DwflModule dwflModule = getModuleFromAddress(addr); - logger.log(Level.FINEST, "got dwflModule: {0}\n", dwflModule); - if (dwflModule != null) { - dwflModule.getSymbol(addr, this); - logger.log(Level.FINE, "ProcName is: {0}\n", procName); - } - if (procName == null) - procName = new ProcName(- lib.unwind.Error.UNW_EUNSPEC_); - } - } - ExecuteGetProcName executer = new ExecuteGetProcName(addr); - Manager.eventLoop.execute(executer); - logger.log(Level.FINE, "exiting getProcName, returning: {0}\n", - executer.procName); - return executer.procName; - } - public void putUnwindInfo (final ProcInfo procInfo) { // No longer need to hold procInfo. this.procInfo = null; diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index 74d2fbf..fd48784 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,3 +1,25 @@ +2007-11-23 Mark Wielaard + + Revert: + 2006-09-16 Alexandre Oliva + + * src/x86/Gget_proc_info.c (unw_get_proc_info): Use + unw_get_proc_name to build a proper proc_info_t. + * src/x86_64/Gget_proc_info.c (unw_get_proc_info): Likewise. + * src/hppa/Gget_proc_info.c (unw_get_proc_info): Likewise. + + 2006-09-27 Alexandre Oliva + + * src/elfxx.c (lookup_symbol): Cope with NULL buf and zero buf_len. + * src/mi/Gget_proc_name.c (intern_string, get_proc_name): Likewise. + * src/hppa/Gget_proc_info.c (unw_get_proc_info): Use it. + * src/x86/Gget_proc_info.c (unw_get_proc_info): Likewise. + * src/x86_64/Gget_proc_info.c (unw_get_proc_info): Likewise. + * doc/unw_get_proc_name.tex: Document NULL buf and zero buf_len. + * doc/unw_create_addr_space.tex (get_proc_name): Likewise. + * doc/unw_get_proc_name.man: Rebuilt. + * doc/unw_create_addr_space.man: Likewise. + 2007-11-19 Mark Wielaard * src/mi/Gget_reg.c (unw_get_reg): Use cached value from cursor diff --git a/frysk-imports/libunwind/doc/unw_create_addr_space.man b/frysk-imports/libunwind/doc/unw_create_addr_space.man index 4ff2b6e..4aca13e 100644 --- a/frysk-imports/libunwind/doc/unw_create_addr_space.man +++ b/frysk-imports/libunwind/doc/unw_create_addr_space.man @@ -413,19 +413,6 @@ pointed to by offp (assuming the procedure is at least 0x80 bytes long). .PP -If bufp -is NULL -, buf_len -is still verified to fit -and offp -is set. Passing buf_len -as zero to indicate no -limits on the buffer length is only safe if buf -is NULL -, -otherwise the callback is entitled and likely to scribble anywhere in -the entire address space. -.PP On successful completion, the get_proc_name() call\-back must return zero. Otherwise, the negative value of one of the diff --git a/frysk-imports/libunwind/doc/unw_create_addr_space.tex b/frysk-imports/libunwind/doc/unw_create_addr_space.tex index f259d4c..8de0691 100644 --- a/frysk-imports/libunwind/doc/unw_create_addr_space.tex +++ b/frysk-imports/libunwind/doc/unw_create_addr_space.tex @@ -229,12 +229,6 @@ at address 0x40003000, then invoking \Func{get\_proc\_name}() with pointed to by \Var{offp} (assuming the procedure is at least 0x80 bytes long). -If \Var{bufp} is \Const{NULL}, \Var{buf\_len} is still verified to fit -and \Var{offp} is set. Passing \Var{buf\_len} as zero to indicate no -limits on the buffer length is only safe if \Var{buf} is \Const{NULL}, -otherwise the callback is entitled and likely to scribble anywhere in -the entire address space. - On successful completion, the \Func{get\_proc\_name}() call-back must return zero. Otherwise, the negative value of one of the \Type{unw\_error\_t} error-codes may be returned. diff --git a/frysk-imports/libunwind/doc/unw_get_proc_name.man b/frysk-imports/libunwind/doc/unw_get_proc_name.man index b84c5c4..bbf350f 100644 --- a/frysk-imports/libunwind/doc/unw_get_proc_name.man +++ b/frysk-imports/libunwind/doc/unw_get_proc_name.man @@ -54,19 +54,6 @@ return a value of 0x80 in the word pointed to by offp (assuming the procedure is at least 0x80 bytes long). .PP -If bufp -is NULL -, buf_len -is still verified to fit -and offp -is set. Passing buf_len -as zero to indicate no -limits on the buffer length is only safe if buf -is NULL -, -otherwise the callback is entitled and likely to scribble anywhere in -the entire address space. -.PP Note that on some platforms there is no reliable way to distinguish between procedure names and ordinary labels. Furthermore, if symbol information has been stripped from a program, procedure names may be diff --git a/frysk-imports/libunwind/doc/unw_get_proc_name.tex b/frysk-imports/libunwind/doc/unw_get_proc_name.tex index bd2b8bc..4a9b585 100644 --- a/frysk-imports/libunwind/doc/unw_get_proc_name.tex +++ b/frysk-imports/libunwind/doc/unw_get_proc_name.tex @@ -29,12 +29,6 @@ stack frame with an instruction-pointer value of 0x40003080 would return a value of 0x80 in the word pointed to by \Var{offp} (assuming the procedure is at least 0x80 bytes long). -If \Var{bufp} is \Const{NULL}, \Var{buf\_len} is still verified to fit -and \Var{offp} is set. Passing \Var{buf\_len} as zero to indicate no -limits on the buffer length is only safe if \Var{buf} is \Const{NULL}, -otherwise the callback is entitled and likely to scribble anywhere in -the entire address space. - Note that on some platforms there is no reliable way to distinguish between procedure names and ordinary labels. Furthermore, if symbol information has been stripped from a program, procedure names may be diff --git a/frysk-imports/libunwind/src/elfxx.c b/frysk-imports/libunwind/src/elfxx.c index c70d06b..ae1ef34 100644 --- a/frysk-imports/libunwind/src/elfxx.c +++ b/frysk-imports/libunwind/src/elfxx.c @@ -158,14 +158,14 @@ elf_w (lookup_symbol) (unw_addr_space_t as, Debug (16, "0x%016lx info=0x%02x %s\n", (long) val, sym->st_info, strtab + sym->st_name); - min_dist = (Elf_W (Addr)) (ip - val); - if (buf) + if ((Elf_W (Addr)) (ip - val) < min_dist) { + min_dist = (Elf_W (Addr)) (ip - val); strncpy (buf, strtab + sym->st_name, buf_len); - buf[buf_len] = '\0'; + buf[buf_len - 1] = '\0'; + if (strlen (strtab + sym->st_name) >= buf_len) + ret = -UNW_ENOMEM; } - if (strlen (strtab + sym->st_name) > buf_len) - ret = -UNW_ENOMEM; } } break; diff --git a/frysk-imports/libunwind/src/hppa/Gget_proc_info.c b/frysk-imports/libunwind/src/hppa/Gget_proc_info.c index 5c5a3fd..8d2c1fd 100644 --- a/frysk-imports/libunwind/src/hppa/Gget_proc_info.c +++ b/frysk-imports/libunwind/src/hppa/Gget_proc_info.c @@ -36,13 +36,8 @@ unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi) are missing DWARF unwind info. We don't want to fail in that case, because those frames are uninteresting and just mark the end of the frame-chain anyhow. */ - unw_word_t offset; - - if (unw_get_proc_name (cursor, NULL, 0, &offset) < 0) - offset = 0; - memset (pi, 0, sizeof (*pi)); - pi->start_ip = c->dwarf.ip - offset; + pi->start_ip = c->dwarf.ip; pi->end_ip = c->dwarf.ip + 4; return 0; } diff --git a/frysk-imports/libunwind/src/mi/Gget_proc_name.c b/frysk-imports/libunwind/src/mi/Gget_proc_name.c index bac98ff..7251c59 100644 --- a/frysk-imports/libunwind/src/mi/Gget_proc_name.c +++ b/frysk-imports/libunwind/src/mi/Gget_proc_name.c @@ -33,25 +33,16 @@ intern_string (unw_addr_space_t as, unw_accessors_t *a, size_t i; int ret; - buf_len--; - - for (i = 0; i <= buf_len; ++i) + for (i = 0; i < buf_len; ++i) { - int8_t c, *p = buf ? (int8_t *)buf + i : &c; - - if ((ret = fetch8 (as, a, &addr, p, arg)) < 0) + if ((ret = fetch8 (as, a, &addr, (int8_t *) buf + i, arg)) < 0) return ret; - if (*p == '\0') + if (buf[i] == '\0') return 0; /* copied full string; return success */ } - if (buf) - { - buf[buf_len] = '\0'; /* ensure string is NUL terminated */ - return -UNW_ENOMEM; - } - else - return 0; + buf[buf_len - 1] = '\0'; /* ensure string is NUL terminated */ + return -UNW_ENOMEM; } static inline int @@ -62,8 +53,7 @@ get_proc_name (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t pi; int ret; - if (buf) - buf[0] = '\0'; /* always return a valid string, even if it's empty */ + buf[0] = '\0'; /* always return a valid string, even if it's empty */ ret = unwi_find_dynamic_proc_info (as, ip, &pi, 1, arg); if (ret == 0) diff --git a/frysk-imports/libunwind/src/x86/Gget_proc_info.c b/frysk-imports/libunwind/src/x86/Gget_proc_info.c index ac4f98a..a533483 100644 --- a/frysk-imports/libunwind/src/x86/Gget_proc_info.c +++ b/frysk-imports/libunwind/src/x86/Gget_proc_info.c @@ -35,13 +35,8 @@ unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi) /* On x86, it's relatively common to be missing DWARF unwind info. We don't want to fail in that case, because the frame-chain still would let us do a backtrace at least. */ - unw_word_t offset; - - if (unw_get_proc_name (cursor, NULL, 0, &offset) < 0) - offset = 0; - memset (pi, 0, sizeof (*pi)); - pi->start_ip = c->dwarf.ip - offset; + pi->start_ip = c->dwarf.ip; pi->end_ip = c->dwarf.ip + 1; return 0; } diff --git a/frysk-imports/libunwind/src/x86_64/Gget_proc_info.c b/frysk-imports/libunwind/src/x86_64/Gget_proc_info.c index 6d5c3d5..213666e 100644 --- a/frysk-imports/libunwind/src/x86_64/Gget_proc_info.c +++ b/frysk-imports/libunwind/src/x86_64/Gget_proc_info.c @@ -38,13 +38,8 @@ unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi) are missing DWARF unwind info. We don't want to fail in that case, because those frames are uninteresting and just mark the end of the frame-chain anyhow. */ - unw_word_t offset; - - if (unw_get_proc_name (cursor, NULL, 0, &offset) < 0) - offset = 0; - memset (pi, 0, sizeof (*pi)); - pi->start_ip = c->dwarf.ip - offset; + pi->start_ip = c->dwarf.ip; pi->end_ip = c->dwarf.ip + 1; return 0; } diff --git a/frysk-sys/lib/unwind/AddressSpace.java b/frysk-sys/lib/unwind/AddressSpace.java index 28db0ee..c1df18b 100644 --- a/frysk-sys/lib/unwind/AddressSpace.java +++ b/frysk-sys/lib/unwind/AddressSpace.java @@ -104,6 +104,4 @@ public abstract class AddressSpace public abstract int accessFPReg (int regnum, byte[] fpvalp, boolean write); public abstract int resume (Cursor cursor); - - public abstract ProcName getProcName (long addr, int maxSize); } diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index ebe978e..ebb93ad 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,14 @@ +2007-11-23 Mark Wielaard + + * AddressSpace.java (getProcName): Removed. + * Cursor.java (getProcName): Removed. + * ProcName.java: Removed. + * TestUnwind.java (getProcName): Removed. + * Unwind.java (getProcName): Removed. + * cnu/UnwindH.hxx (min): Removed. + (get_proc_name): Return UNW_ENOMEM. + (getProcName): Removed. + 2007-11-19 Mark Wielaard * Cursor.java (getIP): New method. @@ -11,8 +22,9 @@ * UnwindPPC32.cxx: New. To support powerpc32. 2007-11-09 Jose Flavio Aguilar Paulino - * UnwindPPC32.java-sh: New - * UnwindRegistersPPC32.shenum: New + + * UnwindPPC32.java-sh: New + * UnwindRegistersPPC32.shenum: New * UnwindRegistersPPC64.shenum: New 2007-10-30 Andrew Cagney diff --git a/frysk-sys/lib/unwind/Cursor.java b/frysk-sys/lib/unwind/Cursor.java index 6433ace..8628bd9 100644 --- a/frysk-sys/lib/unwind/Cursor.java +++ b/frysk-sys/lib/unwind/Cursor.java @@ -93,20 +93,6 @@ public class Cursor return unwinder.step(cursor); } - public ProcName getProcName(int maxNameSize) { - return unwinder.getProcName(cursor, maxNameSize); - } - - public ProcName getProcName() { - int initialSize = 256; - ProcName myName; - do { - myName = unwinder.getProcName(cursor, initialSize); - initialSize *= 2; - } while (myName.getError() == - lib.unwind.Error.UNW_ENOMEM_); - return myName; - } - public ProcInfo getProcInfo () { return unwinder.getProcInfo(cursor); } diff --git a/frysk-sys/lib/unwind/ProcName.java b/frysk-sys/lib/unwind/ProcName.java deleted file mode 100644 index 9141899..0000000 --- a/frysk-sys/lib/unwind/ProcName.java +++ /dev/null @@ -1,88 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package lib.unwind; - -public class ProcName -{ - int error = 0; - final long offset; - final String name; - - public long getOffset() - { - return offset; - } - - public String getName() - { - return name; - } - - public int getError() - { - return error; - } - - private ProcName(int error, long offset, String name) - { - this.error = error; - this.offset = offset; - this.name = name; - } - - public ProcName(long address, String name) - { - this(0, address, name); - } - - public ProcName(int error) - { - this(error, 0, null); - } - - public String toString() - { - if (error != 0) - return "ProcName error: " + error; - - return "ProcName name: " + name + " offset: " + Long.toHexString(offset); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 23 14:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 23 Nov 2007 14:06:00 -0000 Subject: [SCM] master: Use autogen.sh; provide 64-bit command line. Message-ID: <20071123140647.12775.qmail@sourceware.org> The branch, master has been updated via 8675dcf1b411aa7dcbf21d868ca4643d345b78c3 (commit) from 2180a0e3263189d34f8e01a891dc22994486a386 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8675dcf1b411aa7dcbf21d868ca4643d345b78c3 Author: Andrew Cagney Date: Fri Nov 23 09:04:51 2007 -0500 Use autogen.sh; provide 64-bit command line. ----------------------------------------------------------------------- Summary of changes: htdocs/build/rhel/index.html | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html index 764f6b7..6b8b555 100644 --- a/htdocs/build/rhel/index.html +++ b/htdocs/build/rhel/index.html @@ -108,14 +108,25 @@ git-core

    -To configure frysk use: +To configure frysk on a 32-bit system use:

    -$ ( mkdir build && cd build && ../frysk/configure \
    +$ ( mkdir build && cd build && ../frysk/autogen.sh \
          PKG_CONFIG_PATH=/usr/lib/frysk/pkgconfig:/usr/lib/pkgconfig \
          GLADE_DTD_FILE=/usr/share/frysk/xml/libglade/glade-2.0.dtd )
     
    +

    +and on a 64-bit system: + +

    +$ ( mkdir build && cd build && ../frysk/autogen.sh \
    +     PKG_CONFIG_PATH=/usr/lib64/frysk/pkgconfig:/usr/lib64/pkgconfig \
    +     GLADE_DTD_FILE=/usr/share/frysk/xml/libglade/glade-2.0.dtd )
    +
    + +

    + For additional updates, check Red Hat Enterprise Linux 4's tracker bug's dependency tree. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 23 15:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 23 Nov 2007 15:01:00 -0000 Subject: [SCM] master: Note libunwind patch. Message-ID: <20071123150100.6923.qmail@sourceware.org> The branch, master has been updated via 6a376f1cd345137afebeba5972613e535a88e518 (commit) from 8675dcf1b411aa7dcbf21d868ca4643d345b78c3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6a376f1cd345137afebeba5972613e535a88e518 Author: Andrew Cagney Date: Fri Nov 23 10:00:42 2007 -0500 Note libunwind patch. ----------------------------------------------------------------------- Summary of changes: htdocs/build/rhel/index.html | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/rhel/index.html b/htdocs/build/rhel/index.html index 6b8b555..34009c1 100644 --- a/htdocs/build/rhel/index.html +++ b/htdocs/build/rhel/index.html @@ -122,7 +122,36 @@ and on a 64-bit system:

     $ ( mkdir build && cd build && ../frysk/autogen.sh \
          PKG_CONFIG_PATH=/usr/lib64/frysk/pkgconfig:/usr/lib64/pkgconfig \
    -     GLADE_DTD_FILE=/usr/share/frysk/xml/libglade/glade-2.0.dtd )
    +     GLADE_DTD_FILE=/usr/share/frysk/xml/libglade/glade-2.0.dtd \
    +     "JAVAC=gcj4 -C" \
    +     GCJ=gcj4 \
    +     GIJ=gij4 \
    +     JAR=fastjar4 \
    +     GCJH=gcjh4 \
    +     GCJ_DBTOOL=gcj-dbtool4 \
    +     GCC=gcc4 \
    +     CC=gcc4 \
    +     CXX=g++4 \
    +     JAVA=gij4 \
    +     JV_SCAN=jv-scan4 \
    +)
    +
    + +

    +In addition, you may need to apply this patch: + +

    +--- frysk-imports/libunwind/include/libunwind_i.h-orig  2007-02-12 18:04:10.000000000 -0500
    ++++ frysk-imports/libunwind/include/libunwind_i.h       2007-02-12 18:05:07.000000000 -0500
    +@@ -69,7 +69,7 @@
    + # define UNUSED                __attribute__((unused))
    + # define NORETURN      __attribute__((noreturn))
    + # define ALIAS(name)   __attribute__((alias (#name)))
    +-# if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 2)
    ++# if 0 /* gcc4-4.1.0-18.EL4 workaround.  */
    + #  define ALWAYS_INLINE        inline __attribute__((always_inline))
    + #  define HIDDEN       __attribute__((visibility ("hidden")))
    + #  define PROTECTED    __attribute__((visibility ("protected")))
     

    hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Fri Nov 23 15:23:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Fri, 23 Nov 2007 15:23:00 -0000 Subject: [SCM] master: Copy Document importing on vendor branches and merging upstream sources Message-ID: <20071123152313.27864.qmail@sourceware.org> The branch, master has been updated via dd80df1049fd343e0df5d64db48b5f2e9af48f0a (commit) from 6a376f1cd345137afebeba5972613e535a88e518 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit dd80df1049fd343e0df5d64db48b5f2e9af48f0a Author: Mark Wielaard Date: Fri Nov 23 16:23:04 2007 +0100 Copy Document importing on vendor branches and merging upstream sources instructions from git-fu.html to index.html replacing cvs instructions. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 90 ++++++++++++++++++++++------------------------- 1 files changed, 42 insertions(+), 48 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 6992ab0..f7d7778 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -429,60 +429,54 @@ $ cvs -d :ext:MYNAME@sourceware.org:/cvs/frysk \

    How do I update a third party package in frysk-imports?
    -
    The steps are similar to the initial import above but with a few -key differences. Again elfutils is used as an example. +
    This assumes that there is already a vendor branch in git for +the package under frysk-imports. +libunwind is used as an example. -
      - -
    • Checkout a copy of the current sources.
    • - -
    • Tag the current sources.
      This is is so that, should things go -wrong, it is possible to quickly get back to the pre-merge version. -Use a tag like: pre-${RELEASE_TAG}-merge, for instance -pre-elfutils_0_125-merge.
    • +

      This is an example of importing a new libunwind version from upstream +by putting it on the frysk vendor branch in git and then merging it +to trunk.

      -
    • Force a commit to the current sources.
      Please note that this -critical step is missing from the CVS documentation. Without -it, unmodified files will switch to the new import before you are -ready.
      Do this using a command like: - -
      -$ cvs -f commit -f -R -m "Touching all ${VENDOR} files" frysk-imports/elfutils
      -
      -
    • - -
    • Obtain and unpack a pristine copy of the sources.
      See -above.
    • - -
    • Import the pristine copy of the sources onto the vendor -branch.
      See above. Be sure to use the same VENDOR_TAG.
    • - -
    • Note that cvs will automatically add any new files to HEAD, immediately after a cvs import remove those new files until you are ready to merge.
    • +
        +
      • Get the libunwind vendor branch + $ git-checkout vendor/LIBUNWIND +
      • Remove old stuff that needs to be replaced. + $ rm -rf frysk-import/libunwind +
      • Get upstream stuff and put it in + (make sure you don't accidentially copy over the upstream .git dir) + $ cp -r ~/upstream/libunwind frysk-import/ +
      • Commit (use a commit messsage like "Import of libunwind version + libunwind-20071122") and push + $ git-commit -a && git-push +
      -
    • Check out a merged copy of the imported directory.
      In a new -directory, enter something like: -
      -$ cvs -d ... \
      -    checkout -j ${OLD_RELEASE_TAG} -j ${NEW_RELEASE_TAG} \
      -    frysk-imports/${VENDOR}
      -
      -For instance: -
      -$ cvs -d ... \
      -    checkout -j elfutils_0_120 -j elfutils_0_125 \
      -    frysk-imports/elfutils
      -
      -This will apply all changes between the old and new releases to the
      -mainline.  Fix all clashes.
      -
    • +

      The vendor branch is now updated, now we merge the result to the trunk.

      -
    • Move the updated tree into a full cvs checkout and re-merge, and -commit
    • +
        +
      • Switch to trunk + $ git-checkout master +
      • Merge new vendor branch to the trunk + $ git-merge vendor/LIBUNWIND +
      • Resolve the conflicts using git-rm for files not needed, + editing files with conflict markers and git-add each one + after resolving the issues. +
      • Do a full clean build and double check the test results. + [.. lots of time passes...] +
      • Double check your patches (all should now be staged in the git index) + with git-diff --cached +
      • Commit and push the result (git will have generated a merge message + for you already that you can use in the commit). + $ got commit &&; git push +
      -
    • Re-tag with something like post-${RELEASE_TAG}-merge, -e.g. post-elfutils_0_125-merge. +

      If too much time has passed since the start the push will fail because +someone else will have pushed something already. Trying to do +a git fetch origin; git rebase origin seem to fail, so +you have to just do a git pull &&; git push then (which +creates an extra merge message, but that seems just fine).

      +

      +Comments on how to improve this process appreciated. -

    hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 23 16:34:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 23 Nov 2007 16:34:00 -0000 Subject: [SCM] master: swagiaal: enabled TestTypeEntry::testClassWithStaticMembers() Message-ID: <20071123163426.28166.qmail@sourceware.org> The branch, master has been updated via 4d94f9bf96e6adf1d8e96afe84523e6359f9dc55 (commit) from dd80df1049fd343e0df5d64db48b5f2e9af48f0a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4d94f9bf96e6adf1d8e96afe84523e6359f9dc55 Author: Sami Wagiaalla Date: Fri Nov 23 10:50:51 2007 -0500 swagiaal: enabled TestTypeEntry::testClassWithStaticMembers() frysk-core/frysk/debuginfo/ChangeLog +2007-11-23 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): enabled + test. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++++ frysk-core/frysk/debuginfo/TestTypeEntry.java | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 868dcd0..c4b34b3 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-11-23 Sami Wagiaalla + + * TestTypeEntry.java (testClassWithStaticMembers): enabled + test. + 2007-11-22 Sami Wagiaalla * TypeEntry.java (getGccStructOrClassType): Now checks for static diff --git a/frysk-core/frysk/debuginfo/TestTypeEntry.java b/frysk-core/frysk/debuginfo/TestTypeEntry.java index 95f85e6..371e08e 100644 --- a/frysk-core/frysk/debuginfo/TestTypeEntry.java +++ b/frysk-core/frysk/debuginfo/TestTypeEntry.java @@ -247,10 +247,6 @@ public class TestTypeEntry public void testClassWithStaticMembers () { - if(unresolved(5301)){ - return; - } - Task task = (new DaemonBlockedAtSignal("funit-class-static")).getMainTask(); DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Fri Nov 23 17:50:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Fri, 23 Nov 2007 17:50:00 -0000 Subject: [SCM] master: Added documentation on importing a third party package Message-ID: <20071123175027.31551.qmail@sourceware.org> The branch, master has been updated via 8c320cb2580d3ba842778c46afa7ce04017ab92a (commit) from 4d94f9bf96e6adf1d8e96afe84523e6359f9dc55 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8c320cb2580d3ba842778c46afa7ce04017ab92a Author: Tim Moore Date: Fri Nov 23 18:50:16 2007 +0100 Added documentation on importing a third party package ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 34 ++++++++++++++++++++++++++++++++++ 1 files changed, 34 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index f7d7778..29cad3a 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -428,6 +428,40 @@ $ cvs -d :ext:MYNAME@sourceware.org:/cvs/frysk \ +
    How do I import a third party package into frysk-imports?
    +
    Checkout a branch for the imported package only. Future updates to + the package will be made on this branch. You do this by checking out + the first revision of Frysk, which was empty, + then add and commit the frysk-imports directory and the +package. After that you checkout the Frysk master branch +and merge in the branch with the packge. + +

    Example: +

    +$ git-checkout -b vendor/LIBFOO genesis(1)
    +$ mkdir frysk-imports
    +$ tar xf libfoo.tar -C frysk-imports
    +$ git-add frysk-imports(2)
    +$ git-commit -m"Initial import of libfoo"
    +$ git-checkout master(3)
    +$ git-merge vendor/LIBFOO(4)
    +$ git-push origin master vendor/LIBFOO:vendor/LIBFOO(5)
    +

    +
      +
    1. Checkout the first revision of Frysk, which we've tagged with + the tag genesis. with the -b flag we create a new + branch for the checkout. All our 3rd party import branches have a + prefix of vendor/ and then the name of the package in + uppercase.

      +
    2. Adding a directory recursively adds its contents.

      +
    3. Switch back to the master branch

      +
    4. The merge creates libfoo and its contents on the + master branch.

      +
    5. Push the imported changes to the master branch in the remote + repository,and also create a new remote branch for the import in the + remote repo.

      +
    +
    How do I update a third party package in frysk-imports?
    This assumes that there is already a vendor branch in git for the package under frysk-imports. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 23 19:05:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 23 Nov 2007 19:05:00 -0000 Subject: [SCM] master: Add missing libunwind-ppc32.a Message-ID: <20071123190542.30347.qmail@sourceware.org> The branch, master has been updated via 6145c77ab08743d638808aabcf2b37e2ff19788d (commit) from 8c320cb2580d3ba842778c46afa7ce04017ab92a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6145c77ab08743d638808aabcf2b37e2ff19788d Author: Andrew Cagney Date: Fri Nov 23 14:05:12 2007 -0500 Add missing libunwind-ppc32.a 2007-11-23 Andrew Cagney * Makefile.am (GEN_GCJ_LDADD_LIST): Add libunwind-ppc32.a ----------------------------------------------------------------------- Summary of changes: frysk-gtk/ChangeLog | 4 ++++ frysk-gtk/Makefile.am | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-gtk/ChangeLog b/frysk-gtk/ChangeLog index bd32be6..eb97cfe 100644 --- a/frysk-gtk/ChangeLog +++ b/frysk-gtk/ChangeLog @@ -1,3 +1,7 @@ +2007-11-23 Andrew Cagney + + * Makefile.am (GEN_GCJ_LDADD_LIST): Add libunwind-ppc32.a + 2007-08-24 Mark Wielaard * Makefile.am: Change GEN_GCJ_LDADD to GEN_GCJ_LDADD_LIST. diff --git a/frysk-gtk/Makefile.am b/frysk-gtk/Makefile.am index c7dede7..176dcd6 100644 --- a/frysk-gtk/Makefile.am +++ b/frysk-gtk/Makefile.am @@ -56,11 +56,11 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdwfl/libdwfl.a GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdw/libdw.a GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libebl/libebl.a GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libelf/libelf.a -if USE_LIBUNWIND -GEN_GCJ_LDADD_LIST += ../frysk-imports/libunwind-i386/src/.libs/libunwind-x86.a \ - ../frysk-imports/libunwind-x86_64/src/.libs/libunwind-x86_64.a \ - ../frysk-imports/libunwind-ppc64/src/.libs/libunwind-ppc64.a -endif +GEN_GCJ_LDADD_LIST += \ + ../frysk-imports/libunwind-i386/src/.libs/libunwind-x86.a \ + ../frysk-imports/libunwind-x86_64/src/.libs/libunwind-x86_64.a \ + ../frysk-imports/libunwind-ppc32/src/.libs/libunwind-ppc32.a \ + ../frysk-imports/libunwind-ppc64/src/.libs/libunwind-ppc64.a GEN_GCJ_LDADD_LIST += -lstdc++ # For auditing GEN_GCJ_LDADD_LIST += -laudit hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 23 19:11:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 23 Nov 2007 19:11:00 -0000 Subject: [SCM] master: Remove most cvs references. Message-ID: <20071123191156.8621.qmail@sourceware.org> The branch, master has been updated via c083c4a75b69bb19ac0a60d566f3ddbc19980b7e (commit) from 6145c77ab08743d638808aabcf2b37e2ff19788d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c083c4a75b69bb19ac0a60d566f3ddbc19980b7e Author: Andrew Cagney Date: Fri Nov 23 14:11:53 2007 -0500 Remove most cvs references. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 85 +++++++--------------------------------------- 1 files changed, 13 insertions(+), 72 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 29cad3a..8eda912 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -53,8 +53,8 @@

    -Build or Test Question?
    -Frysk and Git
    +Build or Test Question?
    +Git questions

    Fedora
    Ubuntu
    @@ -237,15 +237,11 @@ $ ( cd build && sudo make install ) $ frysk -

    Frysk and Git

    -

    - frysk has switched to Git from CVS. See this page for an introduction to frysk and Git.

    -

    Developer Questions, such as building and testing -frysk, and using CVS; with +frysk, and using GIT; with answers

    -

    Building and Testing Questions

    +

    Building and Testing Questions

    @@ -354,18 +350,18 @@ suppression will take place.
    -

    CVS Questions, with Answers

    +

    GIT Questions, with Answers

    -

    This needs to be rewritten for Git.

    - -
    How do I cut a branch?
    -
    First choose a name for your branch, it should include both your -user name, a terse hint as to the branches purpose, and todays date. -For instance pmuldoon-fcore-20061101, or -cagney-triage12345-20061122. Two tags will be created, -first one for the branch point, and second one for the branch: +
    + +How do I cut a branch?

    This needs to be rewritten for +Git.
    First choose a name for your branch, it should include both +your user name, a terse hint as to the branches purpose, and todays +date. For instance pmuldoon-fcore-20061101, or +cagney-triage12345-20061122. Two tags will be created, first +one for the branch point, and second one for the branch:
     $ cvs -d:.. rtag BRANCH-branchpoint frysk
    @@ -373,61 +369,6 @@ $ cvs -d... rtag -r BRANCH-branchpoint -b BRANCH-branch frysk
     
    -
    How do I do import a third-party (vendor) package into -frysk-imports?
    Lets say you want to import the thirds party -sources for elfutils into frysk-imports/elfutils: - -
      - -
    • Obtain a pristine copy of the sources from the vendor -(a.k.a. upstream).
      Typically the official sources come as a tar -ball, download and unpack them in a new directory. For -elfutils, since upstream is the source rpm, rpmbuild --bp on the source rpm is used.
    • - -
    • Change into the top-level directory of the pristine source -tree.
      For instance, for elfutils 0.125, that means -changing into the directory elfutils-0.125, for instance: - -
      -$ pwd
      -.../elfutils-0.125
      -
      -
    • - -
    • Pick a vendor branch (VENDOR_TAG) and release tags -(RELEASE_TAG).
      Make certain that they are meaningful, for instance: - -
      -$ VENDOR=elfutils
      -$ VERSION=0.125
      -$ VENDOR_TAG=ELFUTILS
      -$ RELEASE_TAG=elfutils_0_125
      -
      - -Note that the vendor and release tags can not contain periods.
    • - -
    • Perform the import using a command like:
      -
      -$ cvs -d :ext:${USER}@sourceware.org:/cvs/frysk \
      -    import -m "Import of ${VENDOR} version ${VERSION}" \
      -    frysk-imports/${VENDOR} \
      -    ${VENDOR_TAG} \
      -    ${RELEASE_TAG}
      -
      -For instance: -
      -$ pwd
      -..../elfutils-0.125
      -$ cvs -d :ext:MYNAME@sourceware.org:/cvs/frysk \
      -    import -m "Importing elfutils version 0.125" \
      -    frysk-imports/elfutils \
      -    ELFUTILS \
      -    elfutils_0_125
      -
      -
    -
    -
    How do I import a third party package into frysk-imports?
    Checkout a branch for the imported package only. Future updates to the package will be made on this branch. You do this by checking out hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Nov 23 20:47:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 23 Nov 2007 20:47:00 -0000 Subject: [SCM] master: For generated files create the directory. Message-ID: <20071123204750.15831.qmail@sourceware.org> The branch, master has been updated via 61673966237af43b52cb33a5f93a1803c66d2884 (commit) from c083c4a75b69bb19ac0a60d566f3ddbc19980b7e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 61673966237af43b52cb33a5f93a1803c66d2884 Author: Andrew Cagney Date: Fri Nov 23 15:46:25 2007 -0500 For generated files create the directory. frysk-common/ChangeLog 2007-11-23 Andrew Cagney * Makefile.rules (.java-sh.java): Add mkdir -p. (.cxx-sh.cxx): Ditto. (.c-sh.c): Ditto. (.shenum.java): Ditto. (.mkenum.java): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 8 ++++++++ frysk-common/Makefile.rules | 5 +++++ 2 files changed, 13 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 59ffd72..3558aad 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,11 @@ +2007-11-23 Andrew Cagney + + * Makefile.rules (.java-sh.java): Add mkdir -p. + (.cxx-sh.cxx): Ditto. + (.c-sh.c): Ditto. + (.shenum.java): Ditto. + (.mkenum.java): Ditto. + 2007-11-22 Andrew Cagney * Makefile.rules (.g.antlred): Fix typo disabling ECJ. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 834e749..9204c8f 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -218,6 +218,7 @@ MKENUM = $(srcdir)/common/mkenum.sh SUFFIXES += .mkenum .mkenum.java: rm -f $*.tmp + mkdir -p `dirname $*` $(SHELL) $(MKENUM) < $(srcdir)/$*.mkenum > $*.tmp $@ chmod a-w $*.tmp mv -f $*.tmp $@ @@ -225,6 +226,7 @@ SUFFIXES += .mkenum SUFFIXES += .shenum .shenum.java: rm -f $*.tmp + mkdir -p `dirname $*` CC='$(CC)'; export CC ; \ $(SHELL) $< | $(SHELL) $(MKENUM) > $*.tmp $@ chmod a-w $*.tmp @@ -236,6 +238,7 @@ SUFFIXES += .shenum SUFFIXES += .java-sh .java-sh.java: rm -f $*.tmp + mkdir -p `dirname $*` CC='$(CC)'; export CC ; \ $(SHELL) $< > $*.tmp $@ chmod a-w $*.tmp @@ -243,6 +246,7 @@ SUFFIXES += .java-sh SUFFIXES += cxx-sh .cxx-sh.cxx: rm -f $*.tmp + mkdir -p `dirname $*` CC='$(CC)'; export CC ; \ $(SHELL) $< > $*.tmp $@ chmod a-w $*.tmp @@ -250,6 +254,7 @@ SUFFIXES += cxx-sh SUFFIXES += ..c-sh .c-sh.c: rm -f $*.tmp + mkdir -p `dirname $*` CC='$(CC)'; export CC ; \ $(SHELL) $< > $*.tmp $@ chmod a-w $*.tmp hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 23 20:56:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 23 Nov 2007 20:56:00 -0000 Subject: [SCM] master: swagiaal: fstack now prints shortened path names by default Message-ID: <20071123205633.21966.qmail@sourceware.org> The branch, master has been updated via 62aaf4a1ee1f7a68ac9f8d694dd0bddba90c08ed (commit) from 61673966237af43b52cb33a5f93a1803c66d2884 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 62aaf4a1ee1f7a68ac9f8d694dd0bddba90c08ed Author: Sami Wagiaalla Date: Fri Nov 23 15:48:53 2007 -0500 swagiaal: fstack now prints shortened path names by default frysk-core/frysk/bindir/ChangeLog +2007-11-23 Sami Wagiaalla + + * fstack.java: Added -fullpath option + frysk-core/frysk/debuginfo/ChangeLog +2007-11-23 Sami Wagiaalla + + * DebugInfoFrame.java: Added ".../" befor abbrivated file path. + * DebugInfoStackFactory.java: Removed misc print statement. + frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,7 @@ +2007-11-23 Sami Wagiaalla + + * TestLinuxCore.java: Updated. + frysk-core/frysk/stack/ChangeLog +2007-11-23 Sami Wagiaalla + + * Frame.java (toPrint): Removed printlibrary boolean argument. + added fullpath boolean argument. + * StackFactory.java: Updated + frysk-core/frysk/util/ChangeLog +2007-11-23 Sami Wagiaalla + + Removed printlibrary boolean argument from Frame.toPrint() + added fullpath boolean argument. + * StacktraceAction.java: Updated. + * StressTestFStack.java: Updated. + * TestFStack.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 6 ++++++ frysk-core/frysk/bindir/TestFstack.java | 14 +++++++------- frysk-core/frysk/bindir/fstack.java | 16 +++++++++++----- frysk-core/frysk/debuginfo/ChangeLog | 5 +++++ frysk-core/frysk/debuginfo/DebugInfoFrame.java | 2 +- .../frysk/debuginfo/DebugInfoStackFactory.java | 4 +--- frysk-core/frysk/proc/dead/ChangeLog | 4 ++++ frysk-core/frysk/proc/dead/TestLinuxCore.java | 4 ++-- frysk-core/frysk/stack/ChangeLog | 6 ++++++ frysk-core/frysk/stack/Frame.java | 15 +++++++++------ frysk-core/frysk/stack/StackFactory.java | 4 ++-- frysk-core/frysk/util/ChangeLog | 8 ++++++++ frysk-core/frysk/util/StacktraceAction.java | 6 ++---- frysk-core/frysk/util/StressTestFStack.java | 2 +- frysk-core/frysk/util/TestFStack.java | 4 ++-- 15 files changed, 67 insertions(+), 33 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 1921a3d..bc95dbe 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,9 @@ +2007-11-23 Sami Wagiaalla + + * TestFstack.java (testBackTraceWithDashN): Updated regex to not + match newline. + * fstack.java: Added -fullpath option + 2007-11-22 Sami Wagiaalla * TestFstack.java (testBackTraceWithDashN): enabled test. diff --git a/frysk-core/frysk/bindir/TestFstack.java b/frysk-core/frysk/bindir/TestFstack.java index 61cd6ac..00f7eef 100644 --- a/frysk-core/frysk/bindir/TestFstack.java +++ b/frysk-core/frysk/bindir/TestFstack.java @@ -142,18 +142,18 @@ public class TestFstack Expect e = fstack("funit-long-stack", new String[]{"-n","5"}); e.expect("\\#0 .*crash[^\\r\\n]*"); - e.expect("\\#1 .*first[^\\r\\n]*"); - e.expect("\\#2 .*first[^\\r\\n]*"); - e.expect("\\#3 .*first[^\\r\\n]*"); - e.expect("\\#4 .*first[^\\r\\n]*"); + e.expect("\\#1 [^\r\n]*first[^\\r\\n]*"); + e.expect("\\#2 [^\r\n]*first[^\\r\\n]*"); + e.expect("\\#3 [^\r\n]*first[^\\r\\n]*"); + e.expect("\\#4 [^\r\n]*first[^\\r\\n]*"); e.expect("..."); e.close(); e = fstack("funit-long-stack", new String[]{"-n","4"}); e.expect("\\#0 .*crash[^\\r\\n]*"); - e.expect("\\#1 .*first[^\\r\\n]*"); - e.expect("\\#2 .*first[^\\r\\n]*"); - e.expect("\\#3 .*first[^\\r\\n]*"); + e.expect("\\#1 [^\r\n]*first[^\\r\\n]*"); + e.expect("\\#2 [^\r\n]*first[^\\r\\n]*"); + e.expect("\\#3 [^\r\n]*first[^\\r\\n]*"); e.expect("..."); e.close(); diff --git a/frysk-core/frysk/bindir/fstack.java b/frysk-core/frysk/bindir/fstack.java index bb4f250..98e1046 100644 --- a/frysk-core/frysk/bindir/fstack.java +++ b/frysk-core/frysk/bindir/fstack.java @@ -73,7 +73,6 @@ public final class fstack static boolean printParameters = false; static boolean printScopes = false; static boolean fullpath = false; - static boolean printSourceLibrary = true; private static class Stacker extends StacktraceAction { @@ -81,9 +80,9 @@ public final class fstack Proc proc; public Stacker (PrintWriter printWriter, Proc theProc, Event theEvent,int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, - boolean fullpath, boolean printSourceLibrary) + boolean fullpath) { - super(printWriter, theProc, theEvent, numberOfFrames, elfOnly,virtualFrames, printParameters, printScopes, fullpath,printSourceLibrary); + super(printWriter, theProc, theEvent, numberOfFrames, elfOnly,virtualFrames, printParameters, printScopes, fullpath); this.proc = theProc; } @@ -142,7 +141,7 @@ public final class fstack { Proc proc = Util.getProcFromCoreExePair(coreExePair); - stacker = new Stacker(printWriter, proc, new PrintEvent(), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); + stacker = new Stacker(printWriter, proc, new PrintEvent(), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath); new ProcCoreAction(proc, stacker); Manager.eventLoop.run(); } @@ -150,7 +149,7 @@ public final class fstack private static void stackPid (ProcId procId) { Proc proc = Util.getProcFromPid(procId); - stacker = new Stacker(printWriter, proc, new AbandonPrintEvent(proc), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath,printSourceLibrary); + stacker = new Stacker(printWriter, proc, new AbandonPrintEvent(proc), numberOfFrames, elfOnly,virtualFrames,printParameters,printScopes, fullpath); new ProcBlockAction(proc, stacker); Manager.eventLoop.run(); } @@ -189,6 +188,13 @@ public final class fstack } }); + parser.add(new Option("fullpath", 'f', "print full path." + + "-f prints full path") { + public void parsed(String arg) throws OptionException { + fullpath = true; + } + }); + parser.add(new Option("all", 'a', "print all information that can currently be retrieved" + "about the stack\n" + diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index c4b34b3..47e4b91 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,5 +1,10 @@ 2007-11-23 Sami Wagiaalla + * DebugInfoFrame.java: Added ".../" befor abbrivated file path. + * DebugInfoStackFactory.java: Removed misc print statement. + +2007-11-23 Sami Wagiaalla + * TestTypeEntry.java (testClassWithStaticMembers): enabled test. diff --git a/frysk-core/frysk/debuginfo/DebugInfoFrame.java b/frysk-core/frysk/debuginfo/DebugInfoFrame.java index 5a60f7e..3c17d38 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoFrame.java +++ b/frysk-core/frysk/debuginfo/DebugInfoFrame.java @@ -231,7 +231,7 @@ public class DebugInfoFrame extends FrameDecorator { writer.print(line.getLine()); } else { Line line = this.getLines()[0]; - writer.print(line.getFile().getName()); + writer.print(".../"+line.getFile().getName()); writer.print("#"); writer.print(line.getLine()); } diff --git a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java index 83a0cb3..dda6ea5 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java +++ b/frysk-core/frysk/debuginfo/DebugInfoStackFactory.java @@ -124,9 +124,7 @@ public class DebugInfoStackFactory { boolean printScopes, boolean fullpath) { - System.out.println("DebugInfoStackFactory.printStackTrace() numberOfFrames " + numberOfFrames); - - int count = 0; + int count = 0; for (DebugInfoFrame frame = topFrame; frame != null; frame = frame.getOuterDebugInfoFrame()) { diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 63adddf..377d92e 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,7 @@ +2007-11-23 Sami Wagiaalla + + * TestLinuxCore.java: Updated. + 2007-11-23 Mark Wielaard * LinuxExeTask.java (bankBuffers): New final field. diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 8d41403..3845f70 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -159,7 +159,7 @@ public class TestLinuxCore liveStacktrace = new StacktraceAction(new PrintWriter(liveStackOutput), testProc, new RequestStopEvent(Manager.eventLoop),0, - true, false, false, false, false, false) + true, false, false, false, false) { @@ -191,7 +191,7 @@ public class TestLinuxCore coreProc, new PrintEvent(),0, true, false, false, false , - false, false) + false) { public void addFailed (Object observable, Throwable w) diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 72d529b..514e3fa 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,9 @@ +2007-11-23 Sami Wagiaalla + + * Frame.java (toPrint): Removed printlibrary boolean argument. + added fullpath boolean argument. + * StackFactory.java: Updated + 2007-11-23 Mark Wielaard * LibunwindAddressSpace.java (getModuleFromAddress): Removed. diff --git a/frysk-core/frysk/stack/Frame.java b/frysk-core/frysk/stack/Frame.java index 1eee2eb..9a84283 100644 --- a/frysk-core/frysk/stack/Frame.java +++ b/frysk-core/frysk/stack/Frame.java @@ -39,6 +39,7 @@ package frysk.stack; +import java.io.File; import java.io.PrintWriter; import frysk.isa.Register; @@ -150,7 +151,7 @@ public abstract class Frame { * Write a simple string representation of this stack frame. * @param printWriter */ - public void toPrint (PrintWriter writer, boolean printSourceLibrary) { + public void toPrint (PrintWriter writer, boolean fullpath) { // the address, padded with 0s based on the task's word size, ... writer.write("0x"); String addr = Long.toHexString(getAddress()); @@ -165,11 +166,13 @@ public abstract class Frame { if (symbol != SymbolFactory.UNKNOWN) writer.write(" ()"); // the library if known ... - if (printSourceLibrary) { - String library = getLibraryName(); - if (library != null) { - writer.print(" from "); - writer.print(library); + File library = new File(getLibraryName()); + if (library != null) { + writer.print(" from "); + if (fullpath) { + writer.print(library.getAbsolutePath()); + }else{ + writer.print(".../"+library.getName()); } } } diff --git a/frysk-core/frysk/stack/StackFactory.java b/frysk-core/frysk/stack/StackFactory.java index 0bdaced..4a68a58 100644 --- a/frysk-core/frysk/stack/StackFactory.java +++ b/frysk-core/frysk/stack/StackFactory.java @@ -87,7 +87,7 @@ public class StackFactory public static final void printTaskStackTrace(PrintWriter writer, Task task, - boolean printSourceLibrary, int numberOfFrames) { + boolean fullpath, int numberOfFrames) { if (task != null) { writer.print("Task #"); writer.print(task.getTid()); @@ -102,7 +102,7 @@ public class StackFactory frame.printLevel(writer); writer.print(" "); - frame.toPrint(writer, printSourceLibrary); + frame.toPrint(writer, fullpath); writer.println(); } } diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index f3b20f5..b7b6829 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,11 @@ +2007-11-23 Sami Wagiaalla + + Removed printlibrary boolean argument from Frame.toPrint() + added fullpath boolean argument. + * StacktraceAction.java: Updated. + * StressTestFStack.java: Updated. + * TestFStack.java: Updated. + 2007-11-23 Mark Wielaard * CountDownLatch.java (await): Mark as synchronized. diff --git a/frysk-core/frysk/util/StacktraceAction.java b/frysk-core/frysk/util/StacktraceAction.java index 2418dc7..855eea3 100644 --- a/frysk-core/frysk/util/StacktraceAction.java +++ b/frysk-core/frysk/util/StacktraceAction.java @@ -83,7 +83,6 @@ public abstract class StacktraceAction boolean printParameters; boolean printScopes; boolean fullpath; - boolean printSourceLibrary; private boolean virtualFrames; protected static Logger logger = Logger.getLogger("frysk"); @@ -106,7 +105,7 @@ public abstract class StacktraceAction * file path is printed other wise only the name of the file is printed. * @throws ProcException */ - public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent, int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath, boolean printSourceLibrary) + public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent, int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath) { event = theEvent; @@ -116,7 +115,6 @@ public abstract class StacktraceAction this.printParameters = printParameters; this.printScopes = printScopes; this.fullpath = fullpath; - this.printSourceLibrary = printSourceLibrary; this.printWriter = printWriter; Manager.eventLoop.add(new InterruptEvent(theProc)); @@ -153,7 +151,7 @@ public abstract class StacktraceAction Task task = (Task) iter.next(); if(elfOnly){ - StackFactory.printTaskStackTrace(printWriter,task,printSourceLibrary, numberOfFrames); + StackFactory.printTaskStackTrace(printWriter,task,fullpath, numberOfFrames); }else{ if(virtualFrames){ DebugInfoStackFactory.printVirtualTaskStackTrace(printWriter,task,numberOfFrames, printParameters,printScopes,fullpath); diff --git a/frysk-core/frysk/util/StressTestFStack.java b/frysk-core/frysk/util/StressTestFStack.java index deb2b88..c38cd9f 100644 --- a/frysk-core/frysk/util/StressTestFStack.java +++ b/frysk-core/frysk/util/StressTestFStack.java @@ -88,7 +88,7 @@ public class StressTestFStack { proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); } - },0, true,false, false, false, false,true) + },0, true,false, false, false, true) { public void addFailed (Object observable, Throwable w) diff --git a/frysk-core/frysk/util/TestFStack.java b/frysk-core/frysk/util/TestFStack.java index 42b5df8..dbbdcdf 100644 --- a/frysk-core/frysk/util/TestFStack.java +++ b/frysk-core/frysk/util/TestFStack.java @@ -104,7 +104,7 @@ public class TestFStack StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, false,true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, true) { public void addFailed (Object observable, Throwable w) @@ -145,7 +145,7 @@ public class TestFStack Proc proc = (Proc) iter.next(); StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, false,true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false,true) { public void addFailed (Object observable, Throwable w) hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Nov 23 21:38:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 23 Nov 2007 21:38:00 -0000 Subject: [SCM] master: swagiaal: renaed TestFStack and StressTestFStack. Message-ID: <20071123213830.10515.qmail@sourceware.org> The branch, master has been updated via b583b959411d8b171488bcd8d1aaf10f596d878b (commit) from 62aaf4a1ee1f7a68ac9f8d694dd0bddba90c08ed (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b583b959411d8b171488bcd8d1aaf10f596d878b Author: Sami Wagiaalla Date: Fri Nov 23 13:38:25 2007 -0500 swagiaal: renaed TestFStack and StressTestFStack. +++ b/frysk-core/frysk/util/ChangeLog +2007-11-23 Sami Wagiaalla + + * TestFStack.java: Renamed this... + * TestStackTraceAction.java: ...to This. + + * StressTestFStack.java: Renamed this... + * StressTestStackTraceAction.java: ...to This. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 8 ++++++++ ...FStack.java => StressTestStackTraceAction.java} | 4 ++-- .../{TestFStack.java => TestStackTraceAction.java} | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) rename frysk-core/frysk/util/{StressTestFStack.java => StressTestStackTraceAction.java} (98%) rename frysk-core/frysk/util/{TestFStack.java => TestStackTraceAction.java} (99%) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index b7b6829..87bfee0 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,11 @@ +2007-11-23 Sami Wagiaalla + + * TestFStack.java: Renamed this... + * TestStackTraceAction.java: ...to This. + + * StressTestFStack.java: Renamed this... + * StressTestStackTraceAction.java: ...to This. + 2007-11-23 Sami Wagiaalla Removed printlibrary boolean argument from Frame.toPrint() diff --git a/frysk-core/frysk/util/StressTestFStack.java b/frysk-core/frysk/util/StressTestStackTraceAction.java similarity index 98% rename from frysk-core/frysk/util/StressTestFStack.java rename to frysk-core/frysk/util/StressTestStackTraceAction.java index c38cd9f..6b4e974 100644 --- a/frysk-core/frysk/util/StressTestFStack.java +++ b/frysk-core/frysk/util/StressTestStackTraceAction.java @@ -53,7 +53,7 @@ import frysk.testbed.TestLib; import frysk.testbed.SlaveOffspring; import frysk.testbed.FunitThreadsOffspring; -public class StressTestFStack +public class StressTestStackTraceAction extends TestLib { @@ -70,7 +70,7 @@ public class StressTestFStack int clones = 20; SlaveOffspring ackProc = SlaveOffspring.createChild() .assertSendAddClonesWaitForAcks(clones); - TestFStack.multiThreaded(ackProc, clones); + TestStackTraceAction.multiThreaded(ackProc, clones); } public void testClone () diff --git a/frysk-core/frysk/util/TestFStack.java b/frysk-core/frysk/util/TestStackTraceAction.java similarity index 99% rename from frysk-core/frysk/util/TestFStack.java rename to frysk-core/frysk/util/TestStackTraceAction.java index dbbdcdf..66b667b 100644 --- a/frysk-core/frysk/util/TestFStack.java +++ b/frysk-core/frysk/util/TestStackTraceAction.java @@ -56,7 +56,7 @@ import frysk.proc.dead.LinuxHost; import frysk.testbed.TestLib; import frysk.testbed.SlaveOffspring; -public class TestFStack +public class TestStackTraceAction extends TestLib { hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Mon Nov 26 04:37:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Mon, 26 Nov 2007 04:37:00 -0000 Subject: [SCM] master: Mapping PPC32/64 registers to libunwing regs. Message-ID: <20071126043719.3618.qmail@sourceware.org> The branch, master has been updated via 202ff1ef1dc5ae45101a21b83b1cd391226bbf9c (commit) via 11f4195cccf704a492d800a7a0357aab90e3a077 (commit) via 69e179214a09ba01ce3b6a9838c275d8aa228db5 (commit) via dfebec25d6667fdc223c46b4e826dc24c682bc7a (commit) via 0e9cde50f8e6b3237fd5415f55ac28d4284090df (commit) from b583b959411d8b171488bcd8d1aaf10f596d878b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 202ff1ef1dc5ae45101a21b83b1cd391226bbf9c Author: Jose Flavio Aguilar Paulino Date: Mon Nov 26 02:36:55 2007 -0200 Mapping PPC32/64 registers to libunwing regs. commit 11f4195cccf704a492d800a7a0357aab90e3a077 Author: Jose Flavio Aguilar Paulino Date: Mon Nov 26 02:34:37 2007 -0200 Removing string references to Registers. commit 69e179214a09ba01ce3b6a9838c275d8aa228db5 Merge: dfebec25d6667fdc223c46b4e826dc24c682bc7a b583b959411d8b171488bcd8d1aaf10f596d878b Author: Jose Flavio Aguilar Paulino Date: Mon Nov 26 02:30:37 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk Conflicts: frysk-core/frysk/proc/ChangeLog commit dfebec25d6667fdc223c46b4e826dc24c682bc7a Author: Jose Flavio Aguilar Paulino Date: Mon Nov 26 02:10:53 2007 -0200 Removing references to registers by strings. commit 0e9cde50f8e6b3237fd5415f55ac28d4284090df Author: Jose Flavio Aguilar Paulino Date: Mon Nov 26 02:07:30 2007 -0200 Patching PPC32 and PPC64 registers to ptrace. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 8 ++ frysk-core/frysk/isa/PPC32Registers.java | 72 +++++++++++-- frysk-core/frysk/isa/PPC64Registers.java | 113 +++++++++++++++----- frysk-core/frysk/proc/ChangeLog | 6 + frysk-core/frysk/proc/PPCBankRegisters.java | 56 ++++++---- frysk-core/frysk/stack/ChangeLog | 5 + .../frysk/stack/LibunwindRegisterMapFactory.java | 75 +++++++++++++ frysk-core/frysk/util/ChangeLog | 7 ++ frysk-core/frysk/util/PPC32LinuxElfCorefile.java | 61 ++++++++--- frysk-core/frysk/util/PPC64LinuxElfCorefile.java | 54 ++++++++-- 10 files changed, 379 insertions(+), 78 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 66ed1aa..fe1e979 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,11 @@ +2007-11-26 Jose Flavio Aguilar Paulino + + * PPC64Registers.java: Adding some ptrace registers, ordering the + registers like they are found in mcontext structure and adding + some comments to explain some special regs. + + * PPC32Registers.java: Same as above. + 2007-11-20 Jose Flavio Aguilar Paulino * PPC64Registers.java: Renaming CR register to CCR, diff --git a/frysk-core/frysk/isa/PPC32Registers.java b/frysk-core/frysk/isa/PPC32Registers.java index f8f0ea2..2226ec8 100644 --- a/frysk-core/frysk/isa/PPC32Registers.java +++ b/frysk-core/frysk/isa/PPC32Registers.java @@ -47,6 +47,9 @@ import frysk.value.StandardTypes; public class PPC32Registers extends Registers { + /* + * General Purpose Registers + */ public static final Register GPR0 = new Register("gpr0", StandardTypes.INT32B_T); public static final Register GPR1 @@ -112,23 +115,67 @@ public class PPC32Registers extends Registers { public static final Register GPR31 = new Register("gpr31", StandardTypes.INT32B_T); - /* Special registers */ - public static final Register ARG - = new Register("arg", StandardTypes.INT32B_T); + /* + * Special registers + */ + + /* Next instruction pointer register, this should + * not be used like in PPC64, instead, should use + * the link register (lr), but nip exists in ptrace */ + public static final Register NIP + = new Register("nip", StandardTypes.INT32B_T); + + /* Machine State Register */ + public static final Register MSR + = new Register("msr", StandardTypes.INT32B_T); + + /* Orig_R3, this is the content of the R3 which + * is lost when there is a system call (used to restart a syscall) */ + public static final Register ORIGR3 + = new Register("orig_r3", StandardTypes.INT32B_T); /* Counter reg */ public static final Register CTR = new Register("ctr", StandardTypes.INT32B_T); + + /* Link Register + * (after a branch-and-link addr is saved here, + * to return from function calls) */ + public static final Register LR + = new Register("lr", StandardTypes.VOIDPTR32B_T); + /* Fixed-point status and control register */ public static final Register XER = new Register("xer", StandardTypes.INT32B_T); + + /* Condition Code Register */ public static final Register CCR = new Register("ccr", StandardTypes.INT32B_T); - public static final Register LR - = new Register("lr", StandardTypes.VOIDPTR32B_T); - public static final Register FPSCR - = new Register("fpscr", StandardTypes.INT32B_T); + /* Multiply-Quotient Register + (601 only (not used usually) */ + public static final Register MQ + = new Register("mq", StandardTypes.VOIDPTR32B_T); + + /* Trap (when ocourred) */ + public static final Register TRAP + = new Register("trap", StandardTypes.INT32B_T); + + /* DAR, Data Address Register */ + public static final Register DAR + = new Register("dar", StandardTypes.VOIDPTR32B_T); + + /* DSISR, Data Storage Interrupt Status Register */ + public static final Register DSISR + = new Register("dsisr", StandardTypes.INT32B_T); + + /* Result of a System call is stored by ptrace here */ + public static final Register RESULT + = new Register("result", StandardTypes.INT32B_T); + + /* + * Floating pointer registers + */ public static final Register FPR0 = new Register("fpr0", StandardTypes.FLOAT64B_T); public static final Register FPR1 @@ -194,6 +241,13 @@ public class PPC32Registers extends Registers { public static final Register FPR31 = new Register("fpr31", StandardTypes.FLOAT64B_T); + /* Floating Point Status and Control Register */ + public static final Register FPSCR + = new Register("fpscr", StandardTypes.INT32B_T); + + /* + * Defining Register Groups + */ public static final RegisterGroup GENERAL = new RegisterGroup("general", new Register[] { @@ -204,7 +258,9 @@ public class PPC32Registers extends Registers { public static final RegisterGroup SPECIAL = new RegisterGroup("special", - new Register[] { CTR, XER, CCR, LR, FPSCR }); + new Register[] { + NIP, MSR, ORIGR3, CTR, LR, XER, CCR, + MQ, TRAP, DAR, DSISR, RESULT, FPSCR }); public static final RegisterGroup FLOATING_POINTER = new RegisterGroup("floatingpointer", diff --git a/frysk-core/frysk/isa/PPC64Registers.java b/frysk-core/frysk/isa/PPC64Registers.java index e980166..ae2efff 100644 --- a/frysk-core/frysk/isa/PPC64Registers.java +++ b/frysk-core/frysk/isa/PPC64Registers.java @@ -1,7 +1,11 @@ // This file is part of the program FRYSK. // +// Copyright (C) 2006-2007 IBM // Copyright 2007, Red Hat Inc. // +// Contributed by +// Jose Flavio Aguilar Paulino +// // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. @@ -43,6 +47,10 @@ import frysk.value.StandardTypes; public class PPC64Registers extends Registers { + /* + * General Purpose Registers + */ + public static final Register GPR0 = new Register("gpr0", StandardTypes.INT64B_T); public static final Register GPR1 @@ -108,6 +116,67 @@ public class PPC64Registers extends Registers { public static final Register GPR31 = new Register("gpr31", StandardTypes.INT64B_T); + /* + * Special registers + */ + + /* Next Instruction Pointer register */ + public static final Register NIP + = new Register("nip", StandardTypes.INT64B_T); + + /* Machine State Register */ + public static final Register MSR + = new Register("msr", StandardTypes.INT64B_T); + + /* Orig_R3, this is the content of the R3 which + * is lost when there is a system call (used to restart a syscall) */ + public static final Register ORIGR3 + = new Register("orig_r3", StandardTypes.INT64B_T); + + /* Counter reg */ + public static final Register CTR + = new Register("ctr", StandardTypes.INT64B_T); + + /* Link Register + * (after a branch-and-link addr is saved here, + * to return from function calls) */ + public static final Register LR + = new Register("lr", StandardTypes.VOIDPTR64B_T); + + /* Fixed-point status and control register */ + public static final Register XER + = new Register("xer", StandardTypes.INT64B_T); + + /* Condition Code Register */ + /* (In truth it is a 32 bit wide reg, + but usually it comes with padding for 64) */ + public static final Register CCR + = new Register("ccr", StandardTypes.INT64B_T); + + /* If software interrupts were enabled + (its a read only register used only by kernel) */ + public static final Register SOFTE + = new Register("softe", StandardTypes.INT64B_T); + + /* Trap (when ocourred) */ + public static final Register TRAP + = new Register("trap", StandardTypes.INT64B_T); + + /* DAR, Data Address Register */ + public static final Register DAR + = new Register("dar", StandardTypes.VOIDPTR64B_T); + + /* DSISR, Data Storage Interrupt Status Register */ + public static final Register DSISR + = new Register("dsisr", StandardTypes.INT64B_T); + + /* Result of a System call is stored by ptrace here */ + public static final Register RESULT + = new Register("result", StandardTypes.INT64B_T); + + /* + * Floating Pointer Registers + */ public static final Register FPR0 = new Register("fpr0", StandardTypes.FLOAT64B_T); public static final Register FPR1 @@ -173,38 +242,29 @@ public class PPC64Registers extends Registers { public static final Register FPR31 = new Register("fpr31", StandardTypes.FLOAT64B_T); - /* Special Registers */ - public static final Register LR - = new Register("lr", StandardTypes.VOIDPTR64B_T); - public static final Register CTR - = new Register("ctr", StandardTypes.INT64B_T); - public static final Register ARG - = new Register("arg", StandardTypes.INT64B_T); - public static final Register CCR - = new Register("ccr", StandardTypes.INT64B_T); - public static final Register XER - = new Register("xer", StandardTypes.INT64B_T); + /* Floating Point Status and Control Register + (In truth it is a 32 bit wide reg, + but usually it comes with padding for 64) */ + public static final Register FPSCR + = new Register("fpscr", StandardTypes.INT32B_T); - /* Alti-vec special register */ - public static final Register VRSAVE - = new Register("vrsave", StandardTypes.INT64B_T); + /* + * Alti-vec special registers + */ public static final Register VSCR = new Register("vscr", StandardTypes.INT64B_T); + public static final Register VRSAVE + = new Register("vrsave", StandardTypes.INT64B_T); - /* SPUs special registers (for CELL processors) */ + /* + * SPUs special registers + * (Cell-like processors) + */ public static final Register SPEACC = new Register("speacc", StandardTypes.INT64B_T); public static final Register SPEFSCR = new Register("spefscr", StandardTypes.INT64B_T); - /* Frame-Pointer */ - public static final Register FRP - = new Register("frp", StandardTypes.VOIDPTR64B_T); - - /* Next-Instruction Pointer (Program Pointer) */ - public static final Register NIP - = new Register("nip", StandardTypes.VOIDPTR64B_T); - /* * Defining Register Groups */ @@ -218,9 +278,10 @@ public class PPC64Registers extends Registers { public static final RegisterGroup SPECIAL = new RegisterGroup("special", - new Register[] { LR, CTR, ARG, CCR, XER, - VRSAVE, VSCR, SPEACC, SPEFSCR, - FRP, NIP }); + new Register[] { + NIP, MSR, ORIGR3, CTR, LR, XER, CCR, + SOFTE, TRAP, FPSCR, DAR, DSISR, RESULT, + FPSCR, VRSAVE, VSCR, SPEACC, SPEFSCR }); public static final RegisterGroup FLOATING_POINTER = new RegisterGroup("floatingpointer", diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index f451009..dc60cb5 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,9 @@ +2007-11-26 Jose Flavio Aguilar Paulino + + * PPCBankRegisters.java: Removing "string" names for registers, + revised offsets of all registers (mainly floating pointer), for + PPC32 and PPC64. + 2007-11-22 Andrew Cagney * X86BankRegisters.java (IA32_ON_X8664): Use diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java index d6a9565..fe3ffd5 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/proc/PPCBankRegisters.java @@ -2,6 +2,9 @@ // // Copyright 2006 IBM Corp. // Copyright 2007 Red Hat Inc. +// +// Contributed by +// Jose Flavio Aguilar Paulino (joseflavio@gmail.com) // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -79,19 +82,19 @@ public class PPCBankRegisters { .add(new BankRegister(0, 116, 4, PPC32Registers.GPR29)) .add(new BankRegister(0, 120, 4, PPC32Registers.GPR30)) .add(new BankRegister(0, 124, 4, PPC32Registers.GPR31)) - .add(new BankRegister(0, 128, 4, "result")) - .add(new BankRegister(0, 132, 4, "msr")) - .add(new BankRegister(0, 136, 4, PPC32Registers.ARG)) //orig_r3 + .add(new BankRegister(0, 128, 4, PPC32Registers.NIP)) //Fixme: PC I belive + .add(new BankRegister(0, 132, 4, PPC32Registers.MSR)) + .add(new BankRegister(0, 136, 4, PPC32Registers.ORIGR3)) .add(new BankRegister(0, 140, 4, PPC32Registers.CTR)) .add(new BankRegister(0, 144, 4, PPC32Registers.LR)) .add(new BankRegister(0, 148, 4, PPC32Registers.XER)) .add(new BankRegister(0, 152, 4, PPC32Registers.CCR)) - .add(new BankRegister(0, 156, 4, PPC32Registers.FPSCR)) - .add(new BankRegister(0, 160, 4, "trap")) - .add(new BankRegister(0, 164, 4, "dar")) - .add(new BankRegister(0, 168, 4, "dsisr")) - .add(new BankRegister(0, 172, 4, "mq")) - .add(new BankRegister(0, 192, 8, PPC32Registers.FPR0)) + .add(new BankRegister(0, 156, 4, PPC32Registers.MQ)) + .add(new BankRegister(0, 160, 4, PPC32Registers.TRAP)) + .add(new BankRegister(0, 164, 4, PPC32Registers.DAR)) + .add(new BankRegister(0, 168, 4, PPC32Registers.DSISR)) + .add(new BankRegister(0, 172, 4, PPC32Registers.RESULT)) + .add(new BankRegister(0, 192, 8, PPC32Registers.FPR0)) // 48*4 .add(new BankRegister(0, 200, 8, PPC32Registers.FPR1)) .add(new BankRegister(0, 208, 8, PPC32Registers.FPR2)) .add(new BankRegister(0, 216, 8, PPC32Registers.FPR3)) @@ -123,6 +126,8 @@ public class PPCBankRegisters { .add(new BankRegister(0, 424, 8, PPC32Registers.FPR29)) .add(new BankRegister(0, 432, 8, PPC32Registers.FPR30)) .add(new BankRegister(0, 440, 8, PPC32Registers.FPR31)) + //There is a pad of 4 bytes before the FPSCR reg + .add(new BankRegister(0, 452, 4, PPC32Registers.FPSCR)) //(PT_FPR0 + 2*32 + 1) ; public static final BankRegisterMap PPC64BE = new BankRegisterMap() @@ -159,18 +164,18 @@ public class PPCBankRegisters { .add(new BankRegister(0, 240, 8, PPC64Registers.GPR30)) .add(new BankRegister(0, 248, 8, PPC64Registers.GPR31)) .add(new BankRegister(0, 256, 8, PPC64Registers.NIP)) - .add(new BankRegister(0, 264, 8, "msr")) - .add(new BankRegister(0, 272, 8, PPC64Registers.ARG)) //old orig_r3 + .add(new BankRegister(0, 264, 8, PPC64Registers.MSR)) //in gdb: .ps_offset = 264 + .add(new BankRegister(0, 272, 8, PPC64Registers.ORIGR3)) .add(new BankRegister(0, 280, 8, PPC64Registers.CTR)) .add(new BankRegister(0, 288, 8, PPC64Registers.LR)) .add(new BankRegister(0, 296, 8, PPC64Registers.XER)) .add(new BankRegister(0, 304, 8, PPC64Registers.CCR)) - .add(new BankRegister(0, 312, 8, "softe")) - .add(new BankRegister(0, 320, 8, "trap")) - .add(new BankRegister(0, 328, 8, "dar")) - .add(new BankRegister(0, 336, 8, "dsisr")) - .add(new BankRegister(0, 344, 8, "result")) - .add(new BankRegister(0, 384, 8, PPC64Registers.FPR0)) + .add(new BankRegister(0, 312, 8, PPC64Registers.SOFTE)) + .add(new BankRegister(0, 320, 8, PPC64Registers.TRAP)) + .add(new BankRegister(0, 328, 8, PPC64Registers.DAR)) + .add(new BankRegister(0, 336, 8, PPC64Registers.DSISR)) + .add(new BankRegister(0, 344, 8, PPC64Registers.RESULT)) + .add(new BankRegister(0, 384, 8, PPC64Registers.FPR0)) //PT_FPR0 48 .add(new BankRegister(0, 392, 8, PPC64Registers.FPR1)) .add(new BankRegister(0, 400, 8, PPC64Registers.FPR2)) .add(new BankRegister(0, 408, 8, PPC64Registers.FPR3)) @@ -202,7 +207,15 @@ public class PPCBankRegisters { .add(new BankRegister(0, 616, 8, PPC64Registers.FPR29)) .add(new BankRegister(0, 624, 8, PPC64Registers.FPR30)) .add(new BankRegister(0, 632, 8, PPC64Registers.FPR31)) - ; + .add(new BankRegister(0, 640, 4, PPC64Registers.FPSCR)) + // Fixme: need to implement altivec registers + // Vector Registers are 128 bit wide + //.add(new BankRegister(0, 656, 16, PPC64Registers.VR0)) PT_VR0 82 + //... + //.add(new BankRegister(0, 1152, 16, PPC64Registers.V31)) PT_VR0 + 31*2), index 148 + //Need to put a 8 bytes pad here, because VSCR is 8 byte wide only + .add(new BankRegister(0, 1176, 8, PPC64Registers.VSCR)) // PT_VSCR (PT_VR0 + 32*2 + 1), index 147 + .add(new BankRegister(0, 1184, 8, PPC64Registers.VRSAVE)); // PT_VRSAVE (PT_VR0 + 33*2), index 148 public static final BankRegisterMap PPC32BE_ON_PPC64BE = new IndirectBankRegisterMap(ByteOrder.BIG_ENDIAN, @@ -239,10 +252,10 @@ public class PPCBankRegisters { .add("gpr29") .add("gpr30") .add("gpr31") - .add("result") + .add("nip") .add("msr") - .add("arg") - .add("ctr") + .add("orig_r3") + .add("ctr") .add("lr") .add("xer") .add("ccr") @@ -281,5 +294,6 @@ public class PPCBankRegisters { .add("fpr29") .add("fpr30") .add("fpr31") + .add("fpscr") ; } diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 514e3fa..322be9e 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Jose Flavio Aguilar Paulino + + * LibunwindRegisterMapFactory.java: Adding the correct map to + PPC32 and PPC64 from libunwind. Still missing special registers. + 2007-11-23 Sami Wagiaalla * Frame.java (toPrint): Removed printlibrary boolean argument. diff --git a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java index 7237360..e793fd2 100644 --- a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java +++ b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java @@ -42,8 +42,12 @@ package frysk.stack; import frysk.isa.RegisterMap; import lib.unwind.UnwindRegistersX86; import lib.unwind.UnwindRegistersX8664; +import lib.unwind.UnwindRegistersPPC32; +import lib.unwind.UnwindRegistersPPC64; import frysk.isa.ISA; import frysk.isa.IA32Registers; +import frysk.isa.PPC32Registers; +import frysk.isa.PPC64Registers; import frysk.isa.X8664Registers; import frysk.isa.X87Registers; import frysk.isa.ISAMap; @@ -113,11 +117,82 @@ public class LibunwindRegisterMapFactory { .add(X8664Registers.RIP, UnwindRegistersX8664.RIP) ; + private static final RegisterMap PPC64 = new RegisterMap() + .add(PPC64Registers.GPR0, UnwindRegistersPPC64.R0) + .add(PPC64Registers.GPR1, UnwindRegistersPPC64.R1) + .add(PPC64Registers.GPR2, UnwindRegistersPPC64.R2) + .add(PPC64Registers.GPR3, UnwindRegistersPPC64.R3) + .add(PPC64Registers.GPR4, UnwindRegistersPPC64.R4) + .add(PPC64Registers.GPR5, UnwindRegistersPPC64.R5) + .add(PPC64Registers.GPR6, UnwindRegistersPPC64.R6) + .add(PPC64Registers.GPR7, UnwindRegistersPPC64.R7) + .add(PPC64Registers.GPR8, UnwindRegistersPPC64.R8) + .add(PPC64Registers.GPR9, UnwindRegistersPPC64.R9) + .add(PPC64Registers.GPR10, UnwindRegistersPPC64.R10) + .add(PPC64Registers.GPR11, UnwindRegistersPPC64.R11) + .add(PPC64Registers.GPR12, UnwindRegistersPPC64.R12) + .add(PPC64Registers.GPR13, UnwindRegistersPPC64.R13) + .add(PPC64Registers.GPR14, UnwindRegistersPPC64.R14) + .add(PPC64Registers.GPR15, UnwindRegistersPPC64.R15) + .add(PPC64Registers.GPR16, UnwindRegistersPPC64.R16) + .add(PPC64Registers.GPR17, UnwindRegistersPPC64.R17) + .add(PPC64Registers.GPR18, UnwindRegistersPPC64.R18) + .add(PPC64Registers.GPR19, UnwindRegistersPPC64.R19) + .add(PPC64Registers.GPR20, UnwindRegistersPPC64.R20) + .add(PPC64Registers.GPR21, UnwindRegistersPPC64.R21) + .add(PPC64Registers.GPR22, UnwindRegistersPPC64.R22) + .add(PPC64Registers.GPR23, UnwindRegistersPPC64.R23) + .add(PPC64Registers.GPR24, UnwindRegistersPPC64.R24) + .add(PPC64Registers.GPR25, UnwindRegistersPPC64.R25) + .add(PPC64Registers.GPR26, UnwindRegistersPPC64.R26) + .add(PPC64Registers.GPR27, UnwindRegistersPPC64.R27) + .add(PPC64Registers.GPR28, UnwindRegistersPPC64.R28) + .add(PPC64Registers.GPR29, UnwindRegistersPPC64.R29) + .add(PPC64Registers.GPR30, UnwindRegistersPPC64.R30) + .add(PPC64Registers.GPR29, UnwindRegistersPPC64.R31) + ; + + private static final RegisterMap PPC32 = new RegisterMap() + .add(PPC32Registers.GPR0, UnwindRegistersPPC32.R0) + .add(PPC32Registers.GPR1, UnwindRegistersPPC32.R1) + .add(PPC32Registers.GPR2, UnwindRegistersPPC32.R2) + .add(PPC32Registers.GPR3, UnwindRegistersPPC32.R3) + .add(PPC32Registers.GPR4, UnwindRegistersPPC32.R4) + .add(PPC32Registers.GPR5, UnwindRegistersPPC32.R5) + .add(PPC32Registers.GPR6, UnwindRegistersPPC32.R6) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 15:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 15:01:00 -0000 Subject: [SCM] master: Add --jni option to Makefile.gen.sh. Message-ID: <20071126150120.14619.qmail@sourceware.org> The branch, master has been updated via ed76fbbf22fd2ebcc1eb96e78e3acaa3b83b1a1a (commit) from 202ff1ef1dc5ae45101a21b83b1cd391226bbf9c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ed76fbbf22fd2ebcc1eb96e78e3acaa3b83b1a1a Author: Andrew Cagney Date: Mon Nov 26 10:00:52 2007 -0500 Add --jni option to Makefile.gen.sh. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.gen.sh | 28 +++++++++++++++++++++------- frysk-gtk/ChangeLog | 5 +++++ frysk-gtk/bootstrap.sh | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 3558aad..389f0eb 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,7 @@ +2007-11-26 Andrew Cagney + + * Makefile.gen.sh (--jni): New option. + 2007-11-23 Andrew Cagney * Makefile.rules (.java-sh.java): Add mkdir -p. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index da6b5fc..6d30fcb 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -40,11 +40,10 @@ if test $# -eq 0 ; then cat <&2 -Usage: $0 [ --cni ] ... <.jar-file>... <_JAR-macro>... +Usage: $0 [ --cni | --jni ] ... <.jar-file>... <_JAR-macro>... ---cni: - -Include CNI directories in build. +--cni: Include CNI directories in build. +--jni: Include JNI directories in build and build with JNI abi. : @@ -68,6 +67,7 @@ EOF fi cni=false +jni=false dirs= jars= JARS= @@ -75,7 +75,8 @@ GEN_ARGS="$@" while test $# -gt 0 do case "$1" in - --cni ) cni=true ;; + --cni ) cni=true ; jni=false ;; + --jni ) jni=true ; cni=false ;; *.jar ) jars="${jars} $1" ;; *_JAR ) JARS="${JARS} $1" ;; * ) dirs="${dirs} $1" ;; @@ -121,8 +122,12 @@ JARS=`echo ${JARS}` -o -path '[A-Za-z]*\.c-in' -print \ -o -path '[A-Za-z]*\.cxx' -print \ -o -path '*/cni/[A-Za-z]*\.[sS]' -print \ + -o -path '*/jni/[A-Za-z]*\.[sS]' -print \ -o -type f -name 'test*' -print - ) | if $cni ; then cat ; else grep -v '/cni/' ; fi | sort -f > files.tmp + ) \ +| if $cni ; then cat ; else grep -v '/cni/' ; fi \ +| if $jni ; then cat ; else grep -v '/jni/' ; fi \ +| sort -f > files.tmp if cmp files.tmp files.list > /dev/null 2>&1 then @@ -546,6 +551,15 @@ for suffix in .cxx .c .hxx .s .S .c-sh .c-in .cxx-sh .cxx-in; do done done +# What type of build? +if $cni ; then + : default +elif $jni ; then + echo "AM_GCJFLAGS += -fjni" +else + : default +fi + # Grep the cni/*.cxx files forming a list of included files. Assume # these are all generated from .class files. The list can be pruned a # little since, given Class$Nested and Class, generating Class.h will @@ -557,7 +571,7 @@ done # #define A_FILE "a/file/dot.h" print_header "... *.{hxx,cxx}=.h" -grep -e '/cni/' files.list \ +grep -e '/cni/' -e '/jni/' files.list \ | xargs -r grep -H \ -e '#include ".*.h"' \ -e '#define [A-Z_]* ".*.h"' \ diff --git a/frysk-gtk/ChangeLog b/frysk-gtk/ChangeLog index eb97cfe..5da0eaf 100644 --- a/frysk-gtk/ChangeLog +++ b/frysk-gtk/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Andrew Cagney + + * bootstrap.sh: Pass --jni to Makefile.gen.sh. + * Makefile.am (AM_GCJFLAGS): Do not add -fjni. + 2007-11-23 Andrew Cagney * Makefile.am (GEN_GCJ_LDADD_LIST): Add libunwind-ppc32.a diff --git a/frysk-gtk/bootstrap.sh b/frysk-gtk/bootstrap.sh index 9204268..18da4d6 100755 --- a/frysk-gtk/bootstrap.sh +++ b/frysk-gtk/bootstrap.sh @@ -41,7 +41,7 @@ set -e ./common/Makefile.gen.sh \ - --cni \ + --jni \ tlwidgets/ftk.jar \ org hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 15:34:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 15:34:00 -0000 Subject: [SCM] master: Rename GEN_CLASSDIR to JAVAROOT. Message-ID: <20071126153430.4902.qmail@sourceware.org> The branch, master has been updated via f68aa034c04d450d803e963eac9bb7bc4c70a019 (commit) from ed76fbbf22fd2ebcc1eb96e78e3acaa3b83b1a1a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f68aa034c04d450d803e963eac9bb7bc4c70a019 Author: Andrew Cagney Date: Mon Nov 26 10:35:59 2007 -0500 Rename GEN_CLASSDIR to JAVAROOT. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.rules (JAVAROOT): Rename GEN_CLASSDIR. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 2 ++ frysk-common/Makefile.rules | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 389f0eb..5e68b5c 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,7 @@ 2007-11-26 Andrew Cagney + * Makefile.rules (JAVAROOT): Rename GEN_CLASSDIR. + * Makefile.gen.sh (--jni): New option. 2007-11-23 Andrew Cagney diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 9204c8f..b1ebe23 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -92,7 +92,7 @@ GEN_CLASSPATH = GEN_SOURCEPATH = $(srcdir) $(top_builddir) empty= space=$(empty) $(empty) -GEN_CLASSDIR = classes +JAVAROOT = classes GEN_GCC_BUILDTREE_RPATHS = $(top_builddir)/elfutils/libdw @@ -155,7 +155,7 @@ SOURCEPATH = $(subst $(space),:,$(strip $(GEN_SOURCEPATH))) CLASSPATH = $(subst $(space),:,$(strip $(GEN_CLASSPATH))) DBPATH = $(subst $(space),:,$(strip \ $(patsubst %.jar,%.db,$(filter %.jar,$(GEN_CLASSPATH))) \ - $(foreach dir,$(patsubst %/$(GEN_CLASSDIR),%,$(filter-out %.jar,$(GEN_CLASSPATH))),$(dir)/$(notdir $(dir)).db) \ + $(foreach dir,$(patsubst %/$(JAVAROOT),%,$(filter-out %.jar,$(GEN_CLASSPATH))),$(dir)/$(notdir $(dir)).db) \ )) # XXX: GCJ: I think there should be a -Wextraneous-throws; I think @@ -652,7 +652,7 @@ distclean-cvsignored: # explicit clean rule is needed as CLEANFILES can't handle directories. CLEANFILES += files-java.list -CLEANDIRS += $(GEN_CLASSDIR) +CLEANDIRS += $(JAVAROOT) files-java.list: files.list if test -s $(top_srcdir)/files.list ; then \ sed -n < $(top_srcdir)/files.list > $@.tmp \ @@ -665,9 +665,9 @@ files-java.list: files.list cp /dev/null $@ ; \ fi ${GEN_DIRNAME}.jar: files-java.list - rm -rf $(GEN_CLASSDIR) - mkdir -p $(GEN_CLASSDIR) - $(JAVAC) -d $(GEN_CLASSDIR) $(JAVACFLAGS) \ + rm -rf $(JAVAROOT) + mkdir -p $(JAVAROOT) + $(JAVAC) -d $(JAVAROOT) $(JAVACFLAGS) \ @$(top_builddir)/files-java.list \ 2>&1 | tee $*.log if test -s $*.log \ @@ -675,10 +675,10 @@ ${GEN_DIRNAME}.jar: files-java.list then rm $*.log ; false ; \ fi rm -f $*.log - cd $(GEN_CLASSDIR) ; \ + cd $(JAVAROOT) ; \ find * -name '*.class' -print \ | $(JAR) -@ -cf $@ - mv $(GEN_CLASSDIR)/$@ $@ + mv $(JAVAROOT)/$@ $@ # When ECJ is available, use it as an extra lint pass. GCJ has the # habit of silently compiling invalid Java code (garbage in, garbage hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 16:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 16:25:00 -0000 Subject: [SCM] master: Add --enable-jar-compile config option; work-in-progress. Message-ID: <20071126162502.2471.qmail@sourceware.org> The branch, master has been updated via df8582eb828ed33a9263be3cdd69cbbd767af4ff (commit) from f68aa034c04d450d803e963eac9bb7bc4c70a019 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit df8582eb828ed33a9263be3cdd69cbbd767af4ff Author: Andrew Cagney Date: Mon Nov 26 11:26:43 2007 -0500 Add --enable-jar-compile config option; work-in-progress. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.gen.sh (sources): When JAR_COMPILE, add .jar, instead of .java files, to ${sources}. * frysk-common.ac (--enable-jar-compile): New option. (JAR_COMPILE): New AM_CONDITIONAL variable. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/Makefile.gen.sh | 14 ++++++++++++++ frysk-common/frysk-common.ac | 11 ++++++++++- 3 files changed, 29 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 5e68b5c..4753032 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,10 @@ 2007-11-26 Andrew Cagney + * Makefile.gen.sh (sources): When JAR_COMPILE, add .jar, instead + of .java files, to ${sources}. + * frysk-common.ac (--enable-jar-compile): New option. + (JAR_COMPILE): New AM_CONDITIONAL variable. + * Makefile.rules (JAVAROOT): Rename GEN_CLASSDIR. * Makefile.gen.sh (--jni): New option. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index 6d30fcb..5a70d3e 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -408,7 +408,11 @@ cat < The branch, master has been updated via ae5acf615f1c91eec8e564581ea6b146a1f5a1b3 (commit) via 707aa035b7188dea11be87dd24235f61d74a52df (commit) from df8582eb828ed33a9263be3cdd69cbbd767af4ff (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ae5acf615f1c91eec8e564581ea6b146a1f5a1b3 Merge: 707aa035b7188dea11be87dd24235f61d74a52df df8582eb828ed33a9263be3cdd69cbbd767af4ff Author: Stan Cox Date: Mon Nov 26 11:21:20 2007 -0500 Cleanup python imports. commit 707aa035b7188dea11be87dd24235f61d74a52df Author: Stan Cox Date: Mon Nov 26 11:20:15 2007 -0500 Cleanup python imports. * gen-type-expect-tests.py: Cleanup imports. * gen-type-funit-tests.py: Cleanup imports. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 +++ .../frysk/debuginfo/gen-type-expect-tests.py | 4 +-- frysk-core/frysk/pkglibdir/ChangeLog | 4 +++ frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 24 +++---------------- 4 files changed, 13 insertions(+), 23 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 47e4b91..801e378 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-11-26 Stan Cox + + * gen-type-expect-tests.py: Cleanup imports. + 2007-11-23 Sami Wagiaalla * DebugInfoFrame.java: Added ".../" befor abbrivated file path. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 58593ce..7a8db24 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -39,9 +39,7 @@ # version and license this file solely under the GPL without # exception. -import os,posix,sys -import re -from os.path import * +import os,sys ######################################################################## # Manage creation of the java file diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index a01c217..47a460b 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-26 Stan Cox + + * gen-type-funit-tests.py: Cleanup imports. + 2007-11-22 Sami Wagiaalla * funit-long-stack.c: New. diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index e4fc9c9..4145923 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -1,6 +1,5 @@ #!/usr/bin/python -import os,posix,sys -from os.path import * +import sys ######################################################################## # Manage creation of the C file @@ -31,7 +30,7 @@ class c: def add_decl(self,str): self.c_file.write("static " + str) def prologue(self,): - self.c_file.write('''// Generated by gen-typetests.py + self.c_file.write('''// Generated by gen-type-funit-tests.py #include #include @@ -50,14 +49,10 @@ crash () { // struct_arr_arr_int_var - Struct of 2 dimension arrays of int ''') - def epilogue(self,debug): + def epilogue(self): self.c_file.write("\n") - if (debug): - self.c_file.write("volatile int x = 1;\n") self.c_file.write("int\n") self.c_file.write("main (int argc, char **argv) {\n") - if (debug): - self.c_file.write("while (x);\n") self.c_file.write(" crash ();\n return 0;\n}\n") @@ -65,17 +60,6 @@ crash () { # main ######################################################################## -def usage (): - print "Usage " + sys.argv[0] + " -debug" - sys.exit(1) - -debug=0 -for t in sys.argv: - if (t == "-debug"): - debug=1 - elif (t.startswith("-")): - usage() - # base types we generate variables for. used to index into limits map base_types=('char','short int','int','long int','long long int','float','double') # Used for variable initialization @@ -725,4 +709,4 @@ c_file.add('''enum colors {\n orange = 0,\n yellow = 1,\n violet = 2,\n indi c_file.add('''enum {\n chevy = 0,\n dodge = 44,\n ford = 55\n}''', "usa_cars", "chevy") c_file.add('''enum cars {\n bmw = 0,\n mercedes = 1,\n porsche = 2\n}''', "sports_cars", "bmw") -c_file.epilogue(debug) +c_file.epilogue() hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Nov 26 17:09:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 26 Nov 2007 17:09:00 -0000 Subject: [SCM] master: swagiaal: Added option to disable printing of source libraries. Fix 5401. Message-ID: <20071126170900.32379.qmail@sourceware.org> The branch, master has been updated via a53854d586aa13ef63c92fad41fc90d5e5ef7648 (commit) from ae5acf615f1c91eec8e564581ea6b146a1f5a1b3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a53854d586aa13ef63c92fad41fc90d5e5ef7648 Author: Sami Wagiaalla Date: Mon Nov 26 11:44:35 2007 -0500 swagiaal: Added option to disable printing of source libraries. Fix 5401. frysk-core/frysk/bindir/ChangeLog +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * fstack.java: Updated. + frysk-core/frysk/debuginfo/ChangeLog +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * VirtualDebugInfoFrame.java: Updated. + * DebugInfoFrame.java: Updated. + frysk-core/frysk/proc/dead/ChangeLog +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * TestLinuxCore.java: Updated, and disabled printing of libraries. + frysk-core/frysk/stack/ChangeLog +2007-11-26 Sami Wagiaalla + + * Frame.java (toPrint): Added a boolean for printing source + libraries. + * StackFactory.java: Updated. + frysk-core/frysk/util/ChangeLog +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * TestStackTraceAction.java: updated. + * StacktraceAction.java: Updated. + * StressTestStackTraceAction.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 ++++ frysk-core/frysk/bindir/fstack.java | 2 +- frysk-core/frysk/debuginfo/ChangeLog | 6 ++++ frysk-core/frysk/debuginfo/DebugInfoFrame.java | 4 +- .../frysk/debuginfo/VirtualDebugInfoFrame.java | 2 +- frysk-core/frysk/proc/dead/ChangeLog | 5 ++++ frysk-core/frysk/proc/dead/TestLinuxCore.java | 4 +- frysk-core/frysk/stack/ChangeLog | 6 ++++ frysk-core/frysk/stack/Frame.java | 26 ++++++++++--------- frysk-core/frysk/stack/StackFactory.java | 4 +- frysk-core/frysk/util/ChangeLog | 7 +++++ frysk-core/frysk/util/StacktraceAction.java | 6 +++- .../frysk/util/StressTestStackTraceAction.java | 2 +- frysk-core/frysk/util/TestStackTraceAction.java | 4 +- 14 files changed, 58 insertions(+), 25 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index bc95dbe..2e883cd 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * fstack.java: Updated. + 2007-11-23 Sami Wagiaalla * TestFstack.java (testBackTraceWithDashN): Updated regex to not diff --git a/frysk-core/frysk/bindir/fstack.java b/frysk-core/frysk/bindir/fstack.java index 98e1046..8e4ac56 100644 --- a/frysk-core/frysk/bindir/fstack.java +++ b/frysk-core/frysk/bindir/fstack.java @@ -82,7 +82,7 @@ public final class fstack boolean printParameters, boolean printScopes, boolean fullpath) { - super(printWriter, theProc, theEvent, numberOfFrames, elfOnly,virtualFrames, printParameters, printScopes, fullpath); + super(printWriter, theProc, theEvent, numberOfFrames, elfOnly,virtualFrames, printParameters, printScopes, false, fullpath); this.proc = theProc; } diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 801e378..63a81b7 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,9 @@ +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * VirtualDebugInfoFrame.java: Updated. + * DebugInfoFrame.java: Updated. + 2007-11-26 Stan Cox * gen-type-expect-tests.py: Cleanup imports. diff --git a/frysk-core/frysk/debuginfo/DebugInfoFrame.java b/frysk-core/frysk/debuginfo/DebugInfoFrame.java index 3c17d38..657d399 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoFrame.java +++ b/frysk-core/frysk/debuginfo/DebugInfoFrame.java @@ -205,7 +205,7 @@ public class DebugInfoFrame extends FrameDecorator { return this.lines; } - void toPrint(PrintWriter writer, boolean printParameters, + public void toPrint(PrintWriter writer, boolean printParameters, boolean fullpath){ Subprogram subprogram = this.getSubprogram(); @@ -237,7 +237,7 @@ public class DebugInfoFrame extends FrameDecorator { } } else { - super.toPrint(writer, true); + super.toPrint(writer, true, fullpath); } } diff --git a/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java b/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java index 41815f5..ae3ed76 100644 --- a/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java +++ b/frysk-core/frysk/debuginfo/VirtualDebugInfoFrame.java @@ -52,7 +52,7 @@ public class VirtualDebugInfoFrame extends DebugInfoFrame { super(inner, decorated); } - void toPrint(PrintWriter writer, boolean printParameters, + public void toPrint(PrintWriter writer, boolean printParameters, boolean fullpath) { super.toPrint(writer, printParameters, fullpath); writer.print(" [inline]"); diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 377d92e..d0829f3 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * TestLinuxCore.java: Updated, and disabled printing of libraries. + 2007-11-23 Sami Wagiaalla * TestLinuxCore.java: Updated. diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java index 3845f70..ec92a65 100644 --- a/frysk-core/frysk/proc/dead/TestLinuxCore.java +++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java @@ -159,7 +159,7 @@ public class TestLinuxCore liveStacktrace = new StacktraceAction(new PrintWriter(liveStackOutput), testProc, new RequestStopEvent(Manager.eventLoop),0, - true, false, false, false, false) + true, false, false, false, false,false) { @@ -190,7 +190,7 @@ public class TestLinuxCore coreStacktrace = new StacktraceAction(new PrintWriter(coreStackOutput), coreProc, new PrintEvent(),0, - true, false, false, false , + true, false, false, false ,false, false) { diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 322be9e..7219da3 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,9 @@ +2007-11-26 Sami Wagiaalla + + * Frame.java (toPrint): Added a boolean for printing source + libraries. + * StackFactory.java: Updated. + 2007-11-26 Jose Flavio Aguilar Paulino * LibunwindRegisterMapFactory.java: Adding the correct map to diff --git a/frysk-core/frysk/stack/Frame.java b/frysk-core/frysk/stack/Frame.java index 9a84283..47126c5 100644 --- a/frysk-core/frysk/stack/Frame.java +++ b/frysk-core/frysk/stack/Frame.java @@ -42,15 +42,15 @@ package frysk.stack; import java.io.File; import java.io.PrintWriter; -import frysk.isa.Register; import lib.dwfl.Dwfl; import lib.dwfl.DwflModule; import frysk.dwfl.DwflCache; +import frysk.isa.Register; import frysk.proc.Task; import frysk.symtab.Symbol; import frysk.symtab.SymbolFactory; -import frysk.value.Value; import frysk.value.ScratchLocation; +import frysk.value.Value; public abstract class Frame { @@ -144,14 +144,14 @@ public abstract class Frame { * @param printWriter */ public void toPrint (PrintWriter writer) { - toPrint(writer, true); + toPrint(writer, true, true); } /** * Write a simple string representation of this stack frame. * @param printWriter */ - public void toPrint (PrintWriter writer, boolean fullpath) { + public void toPrint (PrintWriter writer, boolean printSource, boolean fullpath) { // the address, padded with 0s based on the task's word size, ... writer.write("0x"); String addr = Long.toHexString(getAddress()); @@ -165,14 +165,16 @@ public abstract class Frame { writer.write(symbol.getDemangledName()); if (symbol != SymbolFactory.UNKNOWN) writer.write(" ()"); - // the library if known ... - File library = new File(getLibraryName()); - if (library != null) { - writer.print(" from "); - if (fullpath) { - writer.print(library.getAbsolutePath()); - }else{ - writer.print(".../"+library.getName()); + if(printSource){ + // the library if known ... + File library = new File(getLibraryName()); + if (library != null) { + writer.print(" from "); + if (fullpath) { + writer.print(library.getAbsolutePath()); + }else{ + writer.print(".../"+library.getName()); + } } } } diff --git a/frysk-core/frysk/stack/StackFactory.java b/frysk-core/frysk/stack/StackFactory.java index 4a68a58..d86139e 100644 --- a/frysk-core/frysk/stack/StackFactory.java +++ b/frysk-core/frysk/stack/StackFactory.java @@ -86,7 +86,7 @@ public class StackFactory } public static final void printTaskStackTrace(PrintWriter writer, - Task task, + Task task,boolean printSource, boolean fullpath, int numberOfFrames) { if (task != null) { writer.print("Task #"); @@ -102,7 +102,7 @@ public class StackFactory frame.printLevel(writer); writer.print(" "); - frame.toPrint(writer, fullpath); + frame.toPrint(writer, printSource, fullpath); writer.println(); } } diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 10941ae..13120ed 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,10 @@ +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * TestStackTraceAction.java: updated. + * StacktraceAction.java: Updated. + * StressTestStackTraceAction.java: Updated. + 2007-11-26 Jose Flavio Aguilar Paulino * PPC32LinuxElfCorefile.java: Using direct reference to registers, diff --git a/frysk-core/frysk/util/StacktraceAction.java b/frysk-core/frysk/util/StacktraceAction.java index 855eea3..496ebb7 100644 --- a/frysk-core/frysk/util/StacktraceAction.java +++ b/frysk-core/frysk/util/StacktraceAction.java @@ -82,6 +82,7 @@ public abstract class StacktraceAction private final int numberOfFrames; boolean printParameters; boolean printScopes; + private final boolean printSource; boolean fullpath; private boolean virtualFrames; @@ -105,7 +106,7 @@ public abstract class StacktraceAction * file path is printed other wise only the name of the file is printed. * @throws ProcException */ - public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent, int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean fullpath) + public StacktraceAction (PrintWriter printWriter, Proc theProc, Event theEvent, int numberOfFrames, boolean elfOnly, boolean virtualFrames, boolean printParameters, boolean printScopes, boolean printSource, boolean fullpath) { event = theEvent; @@ -114,6 +115,7 @@ public abstract class StacktraceAction this.elfOnly = elfOnly; this.printParameters = printParameters; this.printScopes = printScopes; + this.printSource = printSource; this.fullpath = fullpath; this.printWriter = printWriter; @@ -151,7 +153,7 @@ public abstract class StacktraceAction Task task = (Task) iter.next(); if(elfOnly){ - StackFactory.printTaskStackTrace(printWriter,task,fullpath, numberOfFrames); + StackFactory.printTaskStackTrace(printWriter,task,printSource, fullpath, numberOfFrames); }else{ if(virtualFrames){ DebugInfoStackFactory.printVirtualTaskStackTrace(printWriter,task,numberOfFrames, printParameters,printScopes,fullpath); diff --git a/frysk-core/frysk/util/StressTestStackTraceAction.java b/frysk-core/frysk/util/StressTestStackTraceAction.java index 6b4e974..3ff5f75 100644 --- a/frysk-core/frysk/util/StressTestStackTraceAction.java +++ b/frysk-core/frysk/util/StressTestStackTraceAction.java @@ -88,7 +88,7 @@ public class StressTestStackTraceAction { proc.requestAbandonAndRunEvent(new RequestStopEvent(Manager.eventLoop)); } - },0, true,false, false, false, true) + },0, true,false, false, false,true, true) { public void addFailed (Object observable, Throwable w) diff --git a/frysk-core/frysk/util/TestStackTraceAction.java b/frysk-core/frysk/util/TestStackTraceAction.java index 66b667b..98122c0 100644 --- a/frysk-core/frysk/util/TestStackTraceAction.java +++ b/frysk-core/frysk/util/TestStackTraceAction.java @@ -104,7 +104,7 @@ public class TestStackTraceAction StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false, true, true) { public void addFailed (Object observable, Throwable w) @@ -145,7 +145,7 @@ public class TestStackTraceAction Proc proc = (Proc) iter.next(); StacktraceAction stacker; - stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false,true) + stacker = new StacktraceAction(new PrintWriter(stringWriter),proc, new RequestStopEvent(Manager.eventLoop),20, true, false,false, false,true,true) { public void addFailed (Object observable, Throwable w) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 17:28:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 17:28:00 -0000 Subject: [SCM] master: Use IndirectBankRegisterMap.add(Register). Message-ID: <20071126172846.6724.qmail@sourceware.org> The branch, master has been updated via 6840ce70d778da308f98bc60074182c6d098adc0 (commit) from a53854d586aa13ef63c92fad41fc90d5e5ef7648 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 6840ce70d778da308f98bc60074182c6d098adc0 Author: Andrew Cagney Date: Mon Nov 26 12:28:02 2007 -0500 Use IndirectBankRegisterMap.add(Register). frysk-core/frysk/proc/ChangeLog 2007-11-26 Andrew Cagney * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Use IndirectBankRegisterMap.add(Register). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 5 + frysk-core/frysk/proc/PPCBankRegisters.java | 152 +++++++++++++------------- 2 files changed, 81 insertions(+), 76 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index dc60cb5..244292f 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Andrew Cagney + + * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Use + IndirectBankRegisterMap.add(Register). + 2007-11-26 Jose Flavio Aguilar Paulino * PPCBankRegisters.java: Removing "string" names for registers, diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/proc/PPCBankRegisters.java index fe3ffd5..d3f7781 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/proc/PPCBankRegisters.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006 IBM Corp. +// Copyright 2006, 2007 IBM Corp. // Copyright 2007 Red Hat Inc. // // Contributed by @@ -220,80 +220,80 @@ public class PPCBankRegisters { public static final BankRegisterMap PPC32BE_ON_PPC64BE = new IndirectBankRegisterMap(ByteOrder.BIG_ENDIAN, PPC32BE, PPC64BE) - .add("gpr0") - .add("gpr1") - .add("gpr2") - .add("gpr3") - .add("gpr4") - .add("gpr5") - .add("gpr6") - .add("gpr7") - .add("gpr8") - .add("gpr9") - .add("gpr10") - .add("gpr11") - .add("gpr12") - .add("gpr13") - .add("gpr14") - .add("gpr15") - .add("gpr16") - .add("gpr17") - .add("gpr18") - .add("gpr19") - .add("gpr20") - .add("gpr21") - .add("gpr22") - .add("gpr23") - .add("gpr24") - .add("gpr25") - .add("gpr26") - .add("gpr27") - .add("gpr28") - .add("gpr29") - .add("gpr30") - .add("gpr31") - .add("nip") - .add("msr") - .add("orig_r3") - .add("ctr") - .add("lr") - .add("xer") - .add("ccr") - .add("trap") - .add("dar") - .add("dsisr") - .add("fpr0") - .add("fpr1") - .add("fpr2") - .add("fpr3") - .add("fpr4") - .add("fpr5") - .add("fpr6") - .add("fpr7") - .add("fpr8") - .add("fpr9") - .add("fpr10") - .add("fpr11") - .add("fpr12") - .add("fpr13") - .add("fpr14") - .add("fpr15") - .add("fpr16") - .add("fpr17") - .add("fpr18") - .add("fpr19") - .add("fpr20") - .add("fpr21") - .add("fpr22") - .add("fpr23") - .add("fpr24") - .add("fpr25") - .add("fpr26") - .add("fpr27") - .add("fpr28") - .add("fpr29") - .add("fpr30") - .add("fpr31") - .add("fpscr") + .add(PPC32Registers.GPR0) + .add(PPC32Registers.GPR1) + .add(PPC32Registers.GPR2) + .add(PPC32Registers.GPR3) + .add(PPC32Registers.GPR4) + .add(PPC32Registers.GPR5) + .add(PPC32Registers.GPR6) + .add(PPC32Registers.GPR7) + .add(PPC32Registers.GPR8) + .add(PPC32Registers.GPR9) + .add(PPC32Registers.GPR10) + .add(PPC32Registers.GPR11) + .add(PPC32Registers.GPR12) + .add(PPC32Registers.GPR13) + .add(PPC32Registers.GPR14) + .add(PPC32Registers.GPR15) + .add(PPC32Registers.GPR16) + .add(PPC32Registers.GPR17) + .add(PPC32Registers.GPR18) + .add(PPC32Registers.GPR19) + .add(PPC32Registers.GPR20) + .add(PPC32Registers.GPR21) + .add(PPC32Registers.GPR22) + .add(PPC32Registers.GPR23) + .add(PPC32Registers.GPR24) + .add(PPC32Registers.GPR25) + .add(PPC32Registers.GPR26) + .add(PPC32Registers.GPR27) + .add(PPC32Registers.GPR28) + .add(PPC32Registers.GPR29) + .add(PPC32Registers.GPR30) + .add(PPC32Registers.GPR31) + .add(PPC32Registers.NIP) + .add(PPC32Registers.MSR) + .add(PPC32Registers.ORIGR3) + .add(PPC32Registers.CTR) + .add(PPC32Registers.LR) + .add(PPC32Registers.XER) + .add(PPC32Registers.CCR) + .add(PPC32Registers.TRAP) + .add(PPC32Registers.DAR) + .add(PPC32Registers.DSISR) + .add(PPC32Registers.FPR0) + .add(PPC32Registers.FPR1) + .add(PPC32Registers.FPR2) + .add(PPC32Registers.FPR3) + .add(PPC32Registers.FPR4) + .add(PPC32Registers.FPR5) + .add(PPC32Registers.FPR6) + .add(PPC32Registers.FPR7) + .add(PPC32Registers.FPR8) + .add(PPC32Registers.FPR9) + .add(PPC32Registers.FPR10) + .add(PPC32Registers.FPR11) + .add(PPC32Registers.FPR12) + .add(PPC32Registers.FPR13) + .add(PPC32Registers.FPR14) + .add(PPC32Registers.FPR15) + .add(PPC32Registers.FPR16) + .add(PPC32Registers.FPR17) + .add(PPC32Registers.FPR18) + .add(PPC32Registers.FPR19) + .add(PPC32Registers.FPR20) + .add(PPC32Registers.FPR21) + .add(PPC32Registers.FPR22) + .add(PPC32Registers.FPR23) + .add(PPC32Registers.FPR24) + .add(PPC32Registers.FPR25) + .add(PPC32Registers.FPR26) + .add(PPC32Registers.FPR27) + .add(PPC32Registers.FPR28) + .add(PPC32Registers.FPR29) + .add(PPC32Registers.FPR30) + .add(PPC32Registers.FPR31) + .add(PPC32Registers.FPSCR) ; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 17:39:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 17:39:00 -0000 Subject: [SCM] master: Do not exclude .cxx when --enable-jar-compile. Message-ID: <20071126173950.12456.qmail@sourceware.org> The branch, master has been updated via 135c45a136420c58d54870c399082358a6446e3d (commit) from 6840ce70d778da308f98bc60074182c6d098adc0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 135c45a136420c58d54870c399082358a6446e3d Author: Andrew Cagney Date: Mon Nov 26 12:29:49 2007 -0500 Do not exclude .cxx when --enable-jar-compile. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.gen.sh (.cxx): Fix typo, do not conditionally add .cxx files to sources. * Makefile.rules (.jar.o): Remove -fjni option. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.gen.sh | 7 ++----- frysk-common/Makefile.rules | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 4753032..ec27921 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,9 @@ 2007-11-26 Andrew Cagney + * Makefile.gen.sh (.cxx): Fix typo, do not conditionally add .cxx + files to sources. + * Makefile.rules (.jar.o): Remove -fjni option. + * Makefile.gen.sh (sources): When JAR_COMPILE, add .jar, instead of .java files, to ${sources}. * frysk-common.ac (--enable-jar-compile): New option. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index 5a70d3e..11b6de8 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -408,10 +408,9 @@ cat < The branch, master has been updated via 44b5364cebf74aa00bf173ecc90ae6e1e874e7df (commit) from 135c45a136420c58d54870c399082358a6446e3d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 44b5364cebf74aa00bf173ecc90ae6e1e874e7df Author: Sami Wagiaalla Date: Mon Nov 26 12:36:09 2007 -0500 swagiaal: Updated CurrentStackView to pass boolean argument to Frame.toPrint(). frysk-gui/frysk/gui/srcwin/ChangeLog +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * CurrentStackView.java (appendRows): Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-gui/frysk/gui/srcwin/ChangeLog | 5 +++++ frysk-gui/frysk/gui/srcwin/CurrentStackView.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-gui/frysk/gui/srcwin/ChangeLog b/frysk-gui/frysk/gui/srcwin/ChangeLog index a65e876..e751ce4 100644 --- a/frysk-gui/frysk/gui/srcwin/ChangeLog +++ b/frysk-gui/frysk/gui/srcwin/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Sami Wagiaalla + + Added a boolean for printing source libraries to Frame.toPrint(). + * CurrentStackView.java (appendRows): Updated. + 2007-10-28 Andrew Cagney * SourceView.java: Catch RuntimeException instead of diff --git a/frysk-gui/frysk/gui/srcwin/CurrentStackView.java b/frysk-gui/frysk/gui/srcwin/CurrentStackView.java index 92b3918..64ff2da 100644 --- a/frysk-gui/frysk/gui/srcwin/CurrentStackView.java +++ b/frysk-gui/frysk/gui/srcwin/CurrentStackView.java @@ -196,7 +196,7 @@ public class CurrentStackView StringWriter stringWriter = new StringWriter(); stringWriter.write("# " + (++level) + " "); - frame.toPrint(new PrintWriter(stringWriter),true); + frame.toPrint(new PrintWriter(stringWriter),true,true); row = stringWriter.toString(); if (hasInlinedCode) @@ -315,7 +315,7 @@ public class CurrentStackView StringWriter stringWriter = new StringWriter(); stringWriter.write(row = "# " + (++level) + " "); - frame.toPrint(new PrintWriter(stringWriter),true); + frame.toPrint(new PrintWriter(stringWriter),true,true); row = stringWriter.toString(); if (hasInlinedCode) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 17:41:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 17:41:00 -0000 Subject: [SCM] master: Delete IndirectBankRegisterMap.add(String). Message-ID: <20071126174145.14516.qmail@sourceware.org> The branch, master has been updated via a9e0843c888cab517a488878e005dd84583bb23a (commit) from 44b5364cebf74aa00bf173ecc90ae6e1e874e7df (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a9e0843c888cab517a488878e005dd84583bb23a Author: Andrew Cagney Date: Mon Nov 26 12:41:17 2007 -0500 Delete IndirectBankRegisterMap.add(String). frysk-core/frysk/proc/ChangeLog 2007-11-26 Andrew Cagney * IndirectBankRegisterMap.java (add(String)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 244292f..fdf40d7 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,7 @@ 2007-11-26 Andrew Cagney + * IndirectBankRegisterMap.java (add(String)): Delete. + * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Use IndirectBankRegisterMap.add(Register). hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 18:38:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 18:38:00 -0000 Subject: [SCM] master: When --enable-jar-compile; link against .so and not .a. Message-ID: <20071126183834.22305.qmail@sourceware.org> The branch, master has been updated via 37f01a74321572e8e008360235e8fb49cceea05a (commit) from a9e0843c888cab517a488878e005dd84583bb23a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 37f01a74321572e8e008360235e8fb49cceea05a Author: Andrew Cagney Date: Mon Nov 26 13:30:36 2007 -0500 When --enable-jar-compile; link against .so and not .a. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.rules (GEN_GCC_BUILDTREE_RPATHS): Move to near use. * Makefile.gen.sh (echo_LDFLAGS): Dependant on JAR_COMPILE, set LDFLAGS or LDADD to list of libraries to link against. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/Makefile.gen.sh | 17 ++++++++++------- frysk-common/Makefile.rules | 3 +-- 3 files changed, 15 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index ec27921..79ffe00 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,9 @@ 2007-11-26 Andrew Cagney + * Makefile.rules (GEN_GCC_BUILDTREE_RPATHS): Move to near use. + * Makefile.gen.sh (echo_LDFLAGS): Dependant on JAR_COMPILE, set + LDFLAGS or LDADD to list of libraries to link against. + * Makefile.gen.sh (.cxx): Fix typo, do not conditionally add .cxx files to sources. * Makefile.rules (.jar.o): Remove -fjni option. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index 11b6de8..e22c26d 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -270,14 +270,19 @@ echo_LDFLAGS () local name_=`echo_name_ $1` local class=`echo $1 | tr '[/]' '[.]'` echo "${name_}_LDFLAGS = --main=${class}" + echo "if JAR_COMPILE" + echo "${name_}_LDFLAGS += \${GEN_GCJ_SO_FLAGS}" + echo "else" + echo "${name_}_LDADD = \${GEN_GCJ_LDADD_LIST}" + echo "endif" case "${name}" in *dir/* ) - # set during non-standard builds such as RHEL 4. - echo "${name_}_LDFLAGS += \${GEN_${GEN_UBASENAME}_RPATH_FLAGS}" - ;; + # set during non-standard builds such as RHEL 4. + echo "${name_}_LDFLAGS += \${GEN_${GEN_UBASENAME}_RPATH_FLAGS}" + ;; * ) - echo "${name_}_LDFLAGS += \$(GEN_GCJ_BUILDTREE_RPATH_FLAGS)" - ;; + echo "${name_}_LDFLAGS += \$(GEN_GCJ_BUILDTREE_RPATH_FLAGS)" + ;; esac echo "${name_}_LDFLAGS += \${GEN_GCJ_NO_SIGCHLD_FLAGS}" } @@ -451,7 +456,6 @@ ${sources} += ${GEN_SOURCENAME}/JUnitTests.java endif BUILT_SOURCES += ${GEN_SOURCENAME}/JUnitTests.java SCRIPT_BUILT += ${GEN_SOURCENAME}/JUnitTests.java -TestRunner_LDADD = \${LIBJUNIT} \${GEN_GCJ_LDADD_LIST} TESTS += TestRunner noinst_PROGRAMS += TestRunner EOF @@ -491,7 +495,6 @@ for suffix in .java .java-sh .mkenum .shenum .java-in ; do echo "${name_}_SOURCES =" echo "${name_}_LINK = \$(GCJLINK) \$(${name_}_LDFLAGS)" echo_LDFLAGS ${name} - echo "${name_}_LDADD = \$(GEN_GCJ_LDADD_LIST)" fi done || exit 1 done diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 1852afc..f52d92c 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -94,8 +94,6 @@ empty= space=$(empty) $(empty) JAVAROOT = classes -GEN_GCC_BUILDTREE_RPATHS = $(top_builddir)/elfutils/libdw - # The list of libraries for the GCJ programs is different to that of # the standalone .c programs. Accumulate the GCJ list in # GEN_GCJ_LDADD_LIST. @@ -133,6 +131,7 @@ GEN_GCJ_BUILDTREE_RPATHS = \ )) GEN_GCJ_BUILDTREE_RPATH = \ $(subst $(space),:,$(sort $(GEN_GCJ_BUILDTREE_RPATHS))) +GEN_GCC_BUILDTREE_RPATHS = $(top_builddir)/elfutils/libdw GEN_GCJ_BUILDTREE_RPATH_FLAGS = \ -Djava.library.path=$(GEN_GCJ_BUILDTREE_RPATH) \ -Wl,-rpath,$(GEN_GCJ_BUILDTREE_RPATH):$(GEN_GCC_BUILDTREE_RPATHS) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 20:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 20:25:00 -0000 Subject: [SCM] master: Simplify library path handling. Message-ID: <20071126202551.29850.qmail@sourceware.org> The branch, master has been updated via de0b15f0884e98811140b942d64325e8225d15ac (commit) from 37f01a74321572e8e008360235e8fb49cceea05a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit de0b15f0884e98811140b942d64325e8225d15ac Author: Andrew Cagney Date: Mon Nov 26 15:22:34 2007 -0500 Simplify library path handling. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.rules (GEN_GCJ_SO_FLAGS): Delete. (GEN_GCJ_SO_DIRS): Generate from GEN_GCJ_LDADD_LIST. (GEN_GCJ_BUILDTREE_RPATHS): Simplify. * Makefile.gen.sh (echo_LDFLAGS): Only set LDADD. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/Makefile.gen.sh | 4 ---- frysk-common/Makefile.rules | 27 +++++++-------------------- 3 files changed, 12 insertions(+), 24 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 79ffe00..9063d3b 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,10 @@ 2007-11-26 Andrew Cagney + * Makefile.rules (GEN_GCJ_SO_FLAGS): Delete. + (GEN_GCJ_SO_DIRS): Generate from GEN_GCJ_LDADD_LIST. + (GEN_GCJ_BUILDTREE_RPATHS): Simplify. + * Makefile.gen.sh (echo_LDFLAGS): Only set LDADD. + * Makefile.rules (GEN_GCC_BUILDTREE_RPATHS): Move to near use. * Makefile.gen.sh (echo_LDFLAGS): Dependant on JAR_COMPILE, set LDFLAGS or LDADD to list of libraries to link against. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index e22c26d..fc374d8 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -270,11 +270,7 @@ echo_LDFLAGS () local name_=`echo_name_ $1` local class=`echo $1 | tr '[/]' '[.]'` echo "${name_}_LDFLAGS = --main=${class}" - echo "if JAR_COMPILE" - echo "${name_}_LDFLAGS += \${GEN_GCJ_SO_FLAGS}" - echo "else" echo "${name_}_LDADD = \${GEN_GCJ_LDADD_LIST}" - echo "endif" case "${name}" in *dir/* ) # set during non-standard builds such as RHEL 4. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index f52d92c..633ec41 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -105,30 +105,17 @@ GEN_GCJ_LDADD_LIST = # RPATH to wire into in-build-tree program that need to access those # shared libraries. -# Convert LDADD's .a into -L -llib -GEN_GCJ_SO_FLAGS = \ - $(foreach lib, $(GEN_GCJ_LDADD_LIST), \ - $(if $(filter -L%,$(lib)), $(lib)) \ - $(if $(filter -l%,$(lib)), $(lib)) \ - $(if $(filter %.a,$(lib)), \ - $(patsubst %,-L%,$(dir $(lib))) \ - $(patsubst lib%.a,-l%,$(notdir $(lib))) \ - ) \ - ) # Just the directories. GEN_GCJ_SO_DIRS = \ - $(patsubst -L%,%,$(filter -L%, $(GEN_GCJ_SO_FLAGS))) + $(sort $(absdir $(foreach lib, $(GEN_GCJ_LDADD_LIST), \ + $(if $(filter -L%,$(lib)), \ + $(patsubst -L,%,$(lib))) \ + $(if $(filter %.so,$(lib)), \ + $(patsubst %,-L%,$(dir $(lib)))) \ + ))) # Add absolute versions of each directory. GEN_GCJ_BUILDTREE_RPATHS = \ - $(patsubst %/./,%, $(patsubst %/.,%, \ - $(foreach lib, $(GEN_GCJ_SO_DIRS), \ - $(if $(filter /%,$(lib)), $(lib)) \ - $(if $(filter .%,$(lib)), \ - $(patsubst %,@abs_top_builddir@/%, $(lib)) \ - $(lib) \ - ) \ - ) \ - )) + $(patsubst %/./,%, $(patsubst %/.,%, $(GEN_GCJ_SO_DIRS))) GEN_GCJ_BUILDTREE_RPATH = \ $(subst $(space),:,$(sort $(GEN_GCJ_BUILDTREE_RPATHS))) GEN_GCC_BUILDTREE_RPATHS = $(top_builddir)/elfutils/libdw hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 26 21:20:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 26 Nov 2007 21:20:00 -0000 Subject: [SCM] master: Slice operation for pointers. Format - ptr[i:j] Message-ID: <20071126212028.22000.qmail@sourceware.org> The branch, master has been updated via 192fa4ac83d415465dbe2e4477f123fc82d122e5 (commit) from de0b15f0884e98811140b942d64325e8225d15ac (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 192fa4ac83d415465dbe2e4477f123fc82d122e5 Author: Teresa Thomas Date: Mon Nov 26 15:56:27 2007 -0500 Slice operation for pointers. Format - ptr[i:j] frysk-core/frysk/value/ChangeLog 2007-11-26 Teresa Thomas * PointerType.java (slice): New. * TestPointer.java (testCharPointerSlice): New test. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-26 Teresa Thomas * funit-addresses.c (ptrStrings): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 ++ frysk-core/frysk/pkglibdir/funit-addresses.c | 1 + frysk-core/frysk/value/ChangeLog | 5 +++ frysk-core/frysk/value/PointerType.java | 43 ++++++++++++++++++++++++- frysk-core/frysk/value/TestPointer.java | 22 ++++++++++++- 5 files changed, 72 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 47a460b..67dfeab 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-26 Teresa Thomas + + * funit-addresses.c (ptrStrings): New. + 2007-11-26 Stan Cox * gen-type-funit-tests.py: Cleanup imports. diff --git a/frysk-core/frysk/pkglibdir/funit-addresses.c b/frysk-core/frysk/pkglibdir/funit-addresses.c index e35142d..ba02f13 100644 --- a/frysk-core/frysk/pkglibdir/funit-addresses.c +++ b/frysk-core/frysk/pkglibdir/funit-addresses.c @@ -64,6 +64,7 @@ int twoD[2][3] = { {99, 88, 77}, int oneD[] = { 4, 3, 2, 1}; char* string = "hello world"; int* ptr = NULL; +char* ptrStrings[] = {"zero", "one", "two", "three"}; int main(int argc, char* argv[]) { diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index ce55ce4..46a2743 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-26 Teresa Thomas + + * PointerType.java (slice): New. + * TestPointer.java (testCharPointerSlice): New test. + 2007-11-22 Sami Wagiaalla * CompositeType.java (addStaticMember): New overloaded functions. diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 0e6cad1..6766a1e 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -44,6 +44,7 @@ import inua.eio.ByteBuffer; import inua.eio.ByteOrder; import java.io.PrintWriter; import java.math.BigInteger; +import java.util.ArrayList; import java.util.List; /** @@ -124,13 +125,51 @@ public class PointerType } /** - * Index Operation for pointers to strings. + * Index Operation for pointers. */ public Value index (Value v, Value idx, ByteBuffer taskMem) { - Value offset = createValue (v.asLong() + idx.asLong()*type.getSize()); + Value offset = createValue (v.asLong() + idx.asLong()*type.getSize()); return dereference (offset, taskMem) ; } + + /** + * Slice operation for pointers. + * + * Supports upto 2-dimensional results. + */ + public Value slice (Value v, Value i, Value j, ByteBuffer taskMem) + { + // Evaluate length and offset of slice. + long offset = v.asLong() + i.asLong()*type.getSize(); + int len = (int)(j.asLong() - i.asLong() + 1)*type.getSize(); + // Create a simple memory location with it. + Location loc = PieceLocation.createSimpleLoc + (offset, len, taskMem); + + /* Determine return type. + * Note: Slicing can give one D or multi-D results + * depending on the type of value being pointed to. + */ + + ArrayList dims = new ArrayList(); + // Set default return type as type of value being + // pointed to. + Type resultType = type; + + // When length of slice calculated is greater than type's + // size, result will be an array. + if (len > type.getSize()) + { + dims.add(new Integer(len/type.getSize()-1)); + // Create 2-d arrays in case of ptrs to ptrs or arrays. + if (type instanceof PointerType || type instanceof ArrayType) + dims.add(new Integer(len-1)); + resultType = new ArrayType(type, len, dims); + } + + return new Value (resultType, loc); + } /* getALUs are double dispatch functions to determine * the ArithmeticUnit for an operation between two types. diff --git a/frysk-core/frysk/value/TestPointer.java b/frysk-core/frysk/value/TestPointer.java index 7ff487e..5e266a5 100644 --- a/frysk-core/frysk/value/TestPointer.java +++ b/frysk-core/frysk/value/TestPointer.java @@ -66,7 +66,7 @@ public class TestPointer // Construct a buffer with a string in it. ArrayByteBuffer memory = new ArrayByteBuffer("0123Hello World\0>>>".getBytes()); - Type t = new PointerType("xxx", ByteOrder.BIG_ENDIAN, 1, + Type t = new PointerType("Char ptr", ByteOrder.BIG_ENDIAN, 1, new CharType("char", ByteOrder.BIG_ENDIAN, 1, true)); // Construct the pointer to it.. @@ -78,4 +78,24 @@ public class TestPointer Value idx = new Value(t_idx, l_idx); assertEquals("toPrint", "\'W\'", t.index(string, idx, memory).toPrint()); } + + public void testCharPointerSlice() { + // Construct a buffer with a string in it. + ArrayByteBuffer memory + = new ArrayByteBuffer("0123Hello World\0>>>".getBytes()); + Type t = new PointerType("Char ptr", ByteOrder.BIG_ENDIAN, 1, + new CharType("char", ByteOrder.BIG_ENDIAN, + 1, true)); + // Construct the pointer to it.. + Location l = new ScratchLocation(new byte[] { 4 }); + Value string = new Value (t, l); + // Create indices + Location l_idx = new ScratchLocation(new byte[] { 6 }); + IntegerType t_idx = new UnsignedType("type", ByteOrder.BIG_ENDIAN, 1); + Location l_idx2 = new ScratchLocation(new byte[] { 8 }); + IntegerType t_idx2 = new UnsignedType("type", ByteOrder.BIG_ENDIAN, 1); + Value idx = new Value(t_idx, l_idx); + Value idx2 = new Value(t_idx2, l_idx2); + assertEquals("toPrint", "\"Wor\"", t.slice(string, idx, idx2, memory).toPrint()); + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Nov 26 22:38:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 26 Nov 2007 22:38:00 -0000 Subject: [SCM] master: Eliminate references to IA-32 and X86-64 FP registers. Message-ID: <20071126223816.26010.qmail@sourceware.org> The branch, master has been updated via ccddf5ed862aeea6996f3e6bfbfee5f1e3f229b4 (commit) via 0ad52b3674fca09c7c7a974339d3a669ef1f38dc (commit) via b7f178e6359979647d3ff2c72e2e2d7935bcf4ed (commit) from 192fa4ac83d415465dbe2e4477f123fc82d122e5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ccddf5ed862aeea6996f3e6bfbfee5f1e3f229b4 Author: Andrew Cagney Date: Mon Nov 26 17:37:35 2007 -0500 Eliminate references to IA-32 and X86-64 FP registers. frysk-core/frysk/isa/ChangeLog 2007-11-26 Andrew Cagney * X8664Registers.java (XMM0, ..., XMM15): Delete. * IA32Registers.java: Use X87Registers. (XMM0, ..., XMM7, MXCSR): Delete. (FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS): Delete. (MMX, SSE): Delete. * TestRegisters.java: Update. commit 0ad52b3674fca09c7c7a974339d3a669ef1f38dc Author: Andrew Cagney Date: Mon Nov 26 17:19:03 2007 -0500 Use frysk.isa.X87Registers to describe bank floating-point registers. frysk-core/frysk/proc/ChangeLog 2007-11-26 Andrew Cagney * X86BankRegisters.java: Use X87Registers.XMM0, et.al. * IndirectBankRegisterMap.java (add(int,int,int,Register)): New. (add(BankRegister,BankRegister)): Use. commit b7f178e6359979647d3ff2c72e2e2d7935bcf4ed Author: Andrew Cagney Date: Mon Nov 26 16:35:35 2007 -0500 Expand X87Registers to include XMM and FP status. frysk-core/frysk/isa/ChangeLog 2007-11-26 Andrew Cagney * X87Registers.java (XMM0, ..., XMM15): New. (FCW, FSW, RIP, EIP, CS, RDP, DP, DS, MXCSR, MXCSR_MASK) (FLOAT32, FLOAT64, XMM32, XMM64): New. (FLOAT): Delete. (FCTRL, FSTAT, FTAG, FLIP, FLDP): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 15 ++ frysk-core/frysk/isa/IA32Registers.java | 80 ++--------- frysk-core/frysk/isa/TestRegisters.java | 10 +- frysk-core/frysk/isa/X8664Registers.java | 35 ----- frysk-core/frysk/isa/X87Registers.java | 124 +++++++++++++--- frysk-core/frysk/proc/ChangeLog | 8 + frysk-core/frysk/proc/IndirectBankRegisterMap.java | 11 +- frysk-core/frysk/proc/X86BankRegisters.java | 150 +++++++++++--------- frysk-core/frysk/stack/ChangeLog | 5 + .../frysk/stack/LibunwindRegisterMapFactory.java | 16 +- 10 files changed, 243 insertions(+), 211 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index fe1e979..f467b7c 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,18 @@ +2007-11-26 Andrew Cagney + + * X8664Registers.java (XMM0, ..., XMM15): Delete. + * IA32Registers.java: Use X87Registers. + (XMM0, ..., XMM7, MXCSR): Delete. + (FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS): Delete. + (MMX, SSE): Delete. + * TestRegisters.java: Update. + + * X87Registers.java (XMM0, ..., XMM15): New. + (FCW, FSW, RIP, EIP, CS, RDP, DP, DS, MXCSR, MXCSR_MASK) + (FLOAT32, FLOAT64, XMM32, XMM64): New. + (FLOAT): Delete. + (FCTRL, FSTAT, FTAG, FLIP, FLDP): Delete. + 2007-11-26 Jose Flavio Aguilar Paulino * PPC64Registers.java: Adding some ptrace registers, ordering the diff --git a/frysk-core/frysk/isa/IA32Registers.java b/frysk-core/frysk/isa/IA32Registers.java index c12e9d3..a94d053 100644 --- a/frysk-core/frysk/isa/IA32Registers.java +++ b/frysk-core/frysk/isa/IA32Registers.java @@ -87,47 +87,6 @@ public class IA32Registers extends Registers { public final static Register EIP = new Register("eip", StandardTypes.VOIDPTR32L_T); - // Floating-point registers - - public final static Register FCW - = new Register("fcw", StandardTypes.INT32L_T); - public final static Register FSW - = new Register("fsw", StandardTypes.INT32L_T); - public final static Register FTW - = new Register("ftw", StandardTypes.INT32L_T); - public final static Register FOP - = new Register("fop", StandardTypes.INT32L_T); - public final static Register FCS - = new Register("fcs", StandardTypes.INT32L_T); - public final static Register FIP - = new Register("fip", StandardTypes.INT32L_T); - public final static Register FEA - = new Register("fea", StandardTypes.INT32L_T); - public final static Register FDS - = new Register("fds", StandardTypes.INT32L_T); - - // Streaming SIMD registers - - public final static Register XMM0 - = new Register("xmm0", StandardTypes.INT128L_T); - public final static Register XMM1 - = new Register("xmm1", StandardTypes.INT128L_T); - public final static Register XMM2 - = new Register("xmm2", StandardTypes.INT128L_T); - public final static Register XMM3 - = new Register("xmm3", StandardTypes.INT128L_T); - public final static Register XMM4 - = new Register("xmm4", StandardTypes.INT128L_T); - public final static Register XMM5 - = new Register("xmm5", StandardTypes.INT128L_T); - public final static Register XMM6 - = new Register("xmm6", StandardTypes.INT128L_T); - public final static Register XMM7 - = new Register("xmm7", StandardTypes.INT128L_T); - - public final static Register MXCSR - = new Register("mxcsr", StandardTypes.INT32L_T); - public final static Register TSS = new Register("tss", StandardTypes.INT32L_T); public final static Register LDT @@ -164,23 +123,6 @@ public class IA32Registers extends Registers { EFLAGS, ESP }); - public final static RegisterGroup MMX - = new RegisterGroup("mmx", - new Register[] { - X87Registers.ST0, X87Registers.ST1, - X87Registers.ST2, X87Registers.ST3, - X87Registers.ST4, X87Registers.ST5, - X87Registers.ST6, X87Registers.ST7, - FCW, FSW, FTW, FOP, FCS, FIP, FEA, FDS - }); - - public final static RegisterGroup SSE - = new RegisterGroup("sse", - new Register[] { - XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, - MXCSR - }); - public final static RegisterGroup SEGMENT = new RegisterGroup("segment", new Register[] { @@ -191,19 +133,21 @@ public class IA32Registers extends Registers { static { Register[] allRegs = new Register[GENERAL.getRegisters().length - + MMX.getRegisters().length - + SSE.getRegisters().length + + X87Registers.FLOAT32.getRegisters().length + + X87Registers.XMM32.getRegisters().length + SEGMENT.getRegisters().length]; int count = 0; System.arraycopy(GENERAL.getRegisters(), 0, allRegs, count, GENERAL.getRegisters().length); count += GENERAL.getRegisters().length; - System.arraycopy(MMX.getRegisters(), 0, allRegs, count, - MMX.getRegisters().length); - count += MMX.getRegisters().length; - System.arraycopy(SSE.getRegisters(), 0, allRegs, count, - SSE.getRegisters().length); - count += SSE.getRegisters().length; + System.arraycopy(X87Registers.FLOAT32.getRegisters(), + 0, allRegs, count, + X87Registers.FLOAT32.getRegisters().length); + count += X87Registers.FLOAT32.getRegisters().length; + System.arraycopy(X87Registers.XMM32.getRegisters(), + 0, allRegs, count, + X87Registers.XMM32.getRegisters().length); + count += X87Registers.XMM32.getRegisters().length; System.arraycopy(SEGMENT.getRegisters(), 0, allRegs, count, SEGMENT.getRegisters().length); @@ -212,7 +156,9 @@ public class IA32Registers extends Registers { IA32Registers() { super (new RegisterGroup[] { - GENERAL, MMX, SSE, SEGMENT, ALL + GENERAL, + X87Registers.FLOAT32, X87Registers.XMM32, + SEGMENT, ALL }); } diff --git a/frysk-core/frysk/isa/TestRegisters.java b/frysk-core/frysk/isa/TestRegisters.java index 7f6244f..72040a2 100644 --- a/frysk-core/frysk/isa/TestRegisters.java +++ b/frysk-core/frysk/isa/TestRegisters.java @@ -55,8 +55,8 @@ public class TestRegisters extends TestCase { } public void testGetGroup() { - assertEquals("getGroup", IA32Registers.MMX, - regs.getGroup("mmx")); + assertEquals("getGroup", IA32Registers.GENERAL, + regs.getGroup("general")); } public void testGetRegister() { @@ -66,8 +66,10 @@ public class TestRegisters extends TestCase { public void testGetGroupNames() { assertEquals("getGroupNames", - new String[] { "general", "mmx", "sse", "segment", "all" }, - regs.getGroupNames()); + new String[] { + "general", "float", "xmm", + "segment", "all" + }, regs.getGroupNames()); } public void testDefaultRegisterGroup() { diff --git a/frysk-core/frysk/isa/X8664Registers.java b/frysk-core/frysk/isa/X8664Registers.java index cdbc06d..a913c6c 100644 --- a/frysk-core/frysk/isa/X8664Registers.java +++ b/frysk-core/frysk/isa/X8664Registers.java @@ -105,41 +105,6 @@ public class X8664Registers extends Registers { public static final Register GS_BASE = new Register("gs_base", StandardTypes.INT64L_T); - // Multi-media registers. - - public static final Register XMM0 - = new Register("xmm0", StandardTypes.INT64L_T); - public static final Register XMM1 - = new Register("xmm1", StandardTypes.INT64L_T); - public static final Register XMM2 - = new Register("xmm2", StandardTypes.INT64L_T); - public static final Register XMM3 - = new Register("xmm3", StandardTypes.INT64L_T); - public static final Register XMM4 - = new Register("xmm4", StandardTypes.INT64L_T); - public static final Register XMM5 - = new Register("xmm5", StandardTypes.INT64L_T); - public static final Register XMM6 - = new Register("xmm6", StandardTypes.INT64L_T); - public static final Register XMM7 - = new Register("xmm7", StandardTypes.INT64L_T); - public static final Register XMM8 - = new Register("xmm8", StandardTypes.INT64L_T); - public static final Register XMM9 - = new Register("xmm9", StandardTypes.INT64L_T); - public static final Register XMM10 - = new Register("xmm10", StandardTypes.INT64L_T); - public static final Register XMM11 - = new Register("xmm11", StandardTypes.INT64L_T); - public static final Register XMM12 - = new Register("xmm12", StandardTypes.INT64L_T); - public static final Register XMM13 - = new Register("xmm13", StandardTypes.INT64L_T); - public static final Register XMM14 - = new Register("xmm14", StandardTypes.INT64L_T); - public static final Register XMM15 - = new Register("xmm15", StandardTypes.INT64L_T); - public static final Register DR0 = new Register("dr0", StandardTypes.INT64L_T); public static final Register DR1 diff --git a/frysk-core/frysk/isa/X87Registers.java b/frysk-core/frysk/isa/X87Registers.java index 58664a9..23cb1c0 100644 --- a/frysk-core/frysk/isa/X87Registers.java +++ b/frysk-core/frysk/isa/X87Registers.java @@ -71,7 +71,8 @@ public class X87Registers { = new Register("fpr7", StandardTypes.FLOAT80L_T); // The virtual floating-point register stack - the user sees the - // above registers as a stack. + // above registers as a stack. The F*SAVE instructions also dump + // the registers into memory in this order. public final static Register ST0 = new Register("st0", StandardTypes.FLOAT80L_T); @@ -90,8 +91,8 @@ public class X87Registers { public final static Register ST7 = new Register("st7", StandardTypes.FLOAT80L_T); - // The "abstract" multi-media registers - again the user sees part - // of the raw registers. + // 64-bit media registers (overlayed on the floating-point + // registers). public final static Register MMX0 = new Register("mmx0", StandardTypes.FLOAT80L_T); @@ -110,35 +111,110 @@ public class X87Registers { public final static Register MMX7 = new Register("mmx7", StandardTypes.FLOAT80L_T); - // The floating-point control registers. - - public final static Register FCTRL // control word/register - = new Register("fctrl", StandardTypes.INT16L_T); - public final static Register FSTAT // status word/register - = new Register("fstat", StandardTypes.INT16L_T); - public final static Register FTAG // tag word/register - = new Register("ftag", StandardTypes.INT16L_T); - - public final static Register FLIP // [last] instruction pointer - = new Register("flip", StandardTypes.INT64L_T); - public final static Register FLDP // [last] data (operand) pointer - = new Register("fldp", StandardTypes.INT64L_T); - - public final static Register FOP // opcode - = new Register("fop", StandardTypes.INT32L_T); - - - public final static RegisterGroup FLOAT + // 128-bit media registers; the IA-32 has 8; x86-64 has 16. + + public static final Register XMM0 + = new Register("xmm0", StandardTypes.INT128L_T); + public static final Register XMM1 + = new Register("xmm1", StandardTypes.INT128L_T); + public static final Register XMM2 + = new Register("xmm2", StandardTypes.INT128L_T); + public static final Register XMM3 + = new Register("xmm3", StandardTypes.INT128L_T); + public static final Register XMM4 + = new Register("xmm4", StandardTypes.INT128L_T); + public static final Register XMM5 + = new Register("xmm5", StandardTypes.INT128L_T); + public static final Register XMM6 + = new Register("xmm6", StandardTypes.INT128L_T); + public static final Register XMM7 + = new Register("xmm7", StandardTypes.INT128L_T); + public static final Register XMM8 + = new Register("xmm8", StandardTypes.INT128L_T); + public static final Register XMM9 + = new Register("xmm9", StandardTypes.INT128L_T); + public static final Register XMM10 + = new Register("xmm10", StandardTypes.INT128L_T); + public static final Register XMM11 + = new Register("xmm11", StandardTypes.INT128L_T); + public static final Register XMM12 + = new Register("xmm12", StandardTypes.INT128L_T); + public static final Register XMM13 + = new Register("xmm13", StandardTypes.INT128L_T); + public static final Register XMM14 + = new Register("xmm14", StandardTypes.INT128L_T); + public static final Register XMM15 + = new Register("xmm15", StandardTypes.INT128L_T); + + // The floating-point control registers + + // control word + public static final Register FCW + = new Register("fcw", StandardTypes.INT16L_T); + // status word + public static final Register FSW + = new Register("fcw", StandardTypes.INT16L_T); + // tag word + public static final Register FTW + = new Register("ftw", StandardTypes.INT8L_T); + // opcode + public static final Register FOP + = new Register("fop", StandardTypes.INT16L_T); + // last instruction pointer; 32- and 64- are different. + public static final Register RIP // 64-bit + = new Register("fip", StandardTypes.INT64L_T); + public static final Register EIP // 32-bit + = new Register("fip", StandardTypes.INT32L_T); + public static final Register CS // 32-bit + = new Register("fcs", StandardTypes.INT16L_T); + // last data pointer; 32- and 64- are different. + public static final Register RDP // 64-bit + = new Register("frdp", StandardTypes.INT64L_T); + public static final Register DP // 32-bit + = new Register("fdp", StandardTypes.INT32L_T); + public static final Register DS // 32-bit + = new Register("fds", StandardTypes.INT16L_T); + // media instruction control/status register + public static final Register MXCSR + = new Register("mxcsr", StandardTypes.INT32L_T); + public static final Register MXCSR_MASK + = new Register("mxcsr_mask", StandardTypes.INT32L_T); + + public final static RegisterGroup FLOAT32 = new RegisterGroup("float", new Register[] { ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, - FCTRL, FSTAT, FTAG, FLIP, FLDP, FOP + FCW, FSW, FTW, FOP, + EIP, CS, DP, DS, + + }); + public final static RegisterGroup FLOAT64 + = new RegisterGroup("float", + new Register[] { + ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, + FCW, FSW, FTW, FOP, + RIP, RDP }); public final static RegisterGroup MMX = new RegisterGroup("mmx", new Register[] { - MMX0, MMX1, MMX2, MMX3, MMX4, MMX5, MMX6, MMX7 + MMX0, MMX1, MMX2, MMX3, MMX4, MMX5, MMX6, MMX7, + MXCSR, MXCSR_MASK }); + public final static RegisterGroup XMM32 + = new RegisterGroup("xmm", + new Register[] { + XMM0, XMM1, XMM2, XMM3, + XMM4, XMM5, XMM6, XMM7, + }); + public final static RegisterGroup XMM64 + = new RegisterGroup("xmm", + new Register[] { + XMM0, XMM1, XMM2, XMM3, + XMM4, XMM5, XMM6, XMM7, + XMM8, XMM9, XMM10, XMM11, + XMM12, XMM13, XMM15, XMM15, + }); } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index fdf40d7..90e62d2 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,13 @@ 2007-11-26 Andrew Cagney + * X86BankRegisters.java: Replace X8664Registers.XMM8 et.al. with + X87Registers.XMM8. + + * X86BankRegisters.java: Use X87Registers.XMM0, et.al. + + * IndirectBankRegisterMap.java (add(int,int,int,Register)): New. + (add(BankRegister,BankRegister)): Use. + * IndirectBankRegisterMap.java (add(String)): Delete. * PPCBankRegisters.java (PPC32BE_ON_PPC64BE): Use diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/proc/IndirectBankRegisterMap.java index 81aadf5..5547258 100644 --- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/proc/IndirectBankRegisterMap.java @@ -70,11 +70,16 @@ class IndirectBankRegisterMap extends BankRegisterMap { } } + IndirectBankRegisterMap add(Register reg32, int bank, int offset, + int size) { + add(new BankRegister(bank, offset, size, reg32.getName())); + return this; + } + private IndirectBankRegisterMap add(BankRegister reg32, BankRegister reg64) { - add(new BankRegister(reg64.getBank(), offset(reg32, reg64), - reg32.getLength(), reg32.getName())); - return this; + return add(reg32.getRegister(), + reg64.getBank(), offset(reg32, reg64), reg32.getLength()); } IndirectBankRegisterMap add(Register reg32, Register reg64) { diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/proc/X86BankRegisters.java index b28c1e7..d2cd468 100644 --- a/frysk-core/frysk/proc/X86BankRegisters.java +++ b/frysk-core/frysk/proc/X86BankRegisters.java @@ -68,29 +68,34 @@ public class X86BankRegisters { .add(new BankRegister (0, 48, 4, IA32Registers.EIP)) .add(new BankRegister (0, 56, 4, IA32Registers.EFLAGS)) .add(new BankRegister (0, 60, 4, IA32Registers.ESP)) - .add(new BankRegister (1, 0, 4, "cwd")) - .add(new BankRegister (1, 4, 4, "swd")) - .add(new BankRegister (1, 8, 4, "twd")) - .add(new BankRegister (1, 12, 4, IA32Registers.FIP)) - .add(new BankRegister (1, 16, 4, IA32Registers.FCS)) - .add(new BankRegister (1, 20, 4, "foo")) - .add(new BankRegister (1, 24, 4, "fos")) - .add(new BankRegister (1, 28, 10, X87Registers.ST0)) - .add(new BankRegister (1, 38, 10, X87Registers.ST1)) - .add(new BankRegister (1, 48, 10, X87Registers.ST2)) - .add(new BankRegister (1, 58, 10, X87Registers.ST3)) - .add(new BankRegister (1, 68, 10, X87Registers.ST4)) - .add(new BankRegister (1, 78, 10, X87Registers.ST5)) - .add(new BankRegister (1, 88, 10, X87Registers.ST6)) - .add(new BankRegister (1, 98, 10, X87Registers.ST7)) - .add(new BankRegister (2, 160, 16, IA32Registers.XMM0)) - .add(new BankRegister (2, 176, 16, IA32Registers.XMM1)) - .add(new BankRegister (2, 192, 16, IA32Registers.XMM2)) - .add(new BankRegister (2, 208, 16, IA32Registers.XMM3)) - .add(new BankRegister (2, 224, 16, IA32Registers.XMM4)) - .add(new BankRegister (2, 240, 16, IA32Registers.XMM5)) - .add(new BankRegister (2, 256, 16, IA32Registers.XMM6)) - .add(new BankRegister (2, 272, 16, IA32Registers.XMM7)) + // Get all FP registers from FXSAVE area. + .add(new BankRegister(2, 0x00, 2, X87Registers.FCW)) + .add(new BankRegister(2, 0x02, 2, X87Registers.FSW)) + .add(new BankRegister(2, 0x04, 1, X87Registers.FTW)) + .add(new BankRegister(2, 0x06, 2, X87Registers.FOP)) + .add(new BankRegister(2, 0x08, 4, X87Registers.EIP)) + .add(new BankRegister(2, 0x0c, 2, X87Registers.CS)) + .add(new BankRegister(2, 0x10, 4, X87Registers.DP)) + .add(new BankRegister(2, 0x14, 2, X87Registers.DS)) + .add(new BankRegister(2, 0x18, 2, X87Registers.MXCSR)) + .add(new BankRegister(2, 0x1c, 2, X87Registers.MXCSR_MASK)) + .add(new BankRegister(2, 0x20, 10, X87Registers.ST0)) + .add(new BankRegister(2, 0x30, 10, X87Registers.ST1)) + .add(new BankRegister(2, 0x40, 10, X87Registers.ST2)) + .add(new BankRegister(2, 0x50, 10, X87Registers.ST3)) + .add(new BankRegister(2, 0x60, 10, X87Registers.ST4)) + .add(new BankRegister(2, 0x70, 10, X87Registers.ST5)) + .add(new BankRegister(2, 0x80, 10, X87Registers.ST6)) + .add(new BankRegister(2, 0x90, 10, X87Registers.ST7)) + .add(new BankRegister(2, 0xa0, 16, X87Registers.XMM0)) + .add(new BankRegister(2, 0xb0, 16, X87Registers.XMM1)) + .add(new BankRegister(2, 0xc0, 16, X87Registers.XMM2)) + .add(new BankRegister(2, 0xd0, 16, X87Registers.XMM3)) + .add(new BankRegister(2, 0xe0, 16, X87Registers.XMM4)) + .add(new BankRegister(2, 0xf0, 16, X87Registers.XMM5)) + .add(new BankRegister(2, 0x100, 16, X87Registers.XMM6)) + .add(new BankRegister(2, 0x110, 16, X87Registers.XMM7)) + // debug registers .add(new BankRegister (3, 252, 4, IA32Registers.D0)) .add(new BankRegister (3, 256, 4, IA32Registers.D1)) .add(new BankRegister (3, 260, 4, IA32Registers.D2)) @@ -129,38 +134,40 @@ public class X86BankRegisters { .add(new BankRegister(0, 120, 8, X8664Registers.ORIG_RAX)) .add(new BankRegister(0, 168, 8, X8664Registers.FS_BASE)) .add(new BankRegister(0, 176, 8, X8664Registers.GS_BASE)) - .add(new BankRegister(1, 0, 2, "cwd")) - .add(new BankRegister(1, 2, 2, "swd")) - .add(new BankRegister(1, 4, 2, "ftw")) - .add(new BankRegister(1, 6, 2, "fop")) - .add(new BankRegister(1, 8, 8, "fprip")) - .add(new BankRegister(1, 16, 8, "rdp")) - .add(new BankRegister(1, 24, 4, "mxcsr")) - .add(new BankRegister(1, 28, 4, "mxcsr_mask")) - .add(new BankRegister(1, 32, 10, X87Registers.ST0)) - .add(new BankRegister(1, 48, 10, X87Registers.ST1)) - .add(new BankRegister(1, 64, 10, X87Registers.ST2)) - .add(new BankRegister(1, 80, 10, X87Registers.ST3)) - .add(new BankRegister(1, 96, 10, X87Registers.ST4)) - .add(new BankRegister(1, 112, 10, X87Registers.ST5)) - .add(new BankRegister(1, 128, 10, X87Registers.ST6)) - .add(new BankRegister(1, 144, 10, X87Registers.ST7)) - .add(new BankRegister(1, 160, 16, X8664Registers.XMM0)) - .add(new BankRegister(1, 176, 16, X8664Registers.XMM1)) - .add(new BankRegister(1, 192, 16, X8664Registers.XMM2)) - .add(new BankRegister(1, 208, 16, X8664Registers.XMM3)) - .add(new BankRegister(1, 224, 16, X8664Registers.XMM4)) hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Mon Nov 26 23:11:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Mon, 26 Nov 2007 23:11:00 -0000 Subject: [SCM] master: Fixes bug #5405. Message-ID: <20071126231119.10306.qmail@sourceware.org> The branch, master has been updated via 99e16d1871d3f7f834bdc8834b747591e01299a5 (commit) from ccddf5ed862aeea6996f3e6bfbfee5f1e3f229b4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 99e16d1871d3f7f834bdc8834b747591e01299a5 Author: Teresa Thomas Date: Mon Nov 26 18:10:02 2007 -0500 Fixes bug #5405. 2007-11-26 Teresa Thomas * PointerType.java (toPrint): Return on null ptr. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/value/ChangeLog | 2 ++ frysk-core/frysk/value/PointerType.java | 6 +++++- 2 files changed, 7 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 46a2743..151002a 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,5 +1,7 @@ 2007-11-26 Teresa Thomas + * PointerType.java (toPrint): Return on null ptr. + * PointerType.java (slice): New. * TestPointer.java (testCharPointerSlice): New test. diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 6766a1e..9cd1e8b 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -82,6 +82,9 @@ public class PointerType if (type instanceof CharType) { // XXX: ByteBuffer.slice wants longs. long addr = getBigInteger(location).longValue(); + // Null pointer + if (addr == 0) + return; writer.print(" \""); while (true) { Location l = new ByteBufferLocation(memory, addr, @@ -143,12 +146,13 @@ public class PointerType // Evaluate length and offset of slice. long offset = v.asLong() + i.asLong()*type.getSize(); int len = (int)(j.asLong() - i.asLong() + 1)*type.getSize(); + // Create a simple memory location with it. Location loc = PieceLocation.createSimpleLoc (offset, len, taskMem); /* Determine return type. - * Note: Slicing can give one D or multi-D results + * Note: Slicing can give one-D or multi-D results * depending on the type of value being pointed to. */ hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Tue Nov 27 02:15:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Tue, 27 Nov 2007 02:15:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sourceware.org/git/frysk Message-ID: <20071127021537.30297.qmail@sourceware.org> The branch, master has been updated via 09eab2c9c52fbf13ed5d1c50a246868653fe7198 (commit) via 53364e361cad948dc4e34f2827e101b8e64b8df8 (commit) from 99e16d1871d3f7f834bdc8834b747591e01299a5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 09eab2c9c52fbf13ed5d1c50a246868653fe7198 Merge: 53364e361cad948dc4e34f2827e101b8e64b8df8 99e16d1871d3f7f834bdc8834b747591e01299a5 Author: Zhao Shujing Date: Tue Nov 27 23:14:19 2007 +0800 Merge branch 'master' of ssh://sourceware.org/git/frysk commit 53364e361cad948dc4e34f2827e101b8e64b8df8 Author: Zhao Shujing Date: Tue Nov 27 23:05:41 2007 +0800 Fix bug #5394 frysk-core/frysk/proc/live/ChangeLog 2007-11-22 Zhao shujing * TestByteBuffer.java (testMemoryBufferCapacity()): Fix bug 5394. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 4 ++++ frysk-core/frysk/proc/live/TestByteBuffer.java | 24 +++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 0e8ba0d..30c52d9 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-11-22 Zhao shujing + + * TestByteBuffer.java (testMemoryBufferCapacity()): Fix bug 5394. + 2007-11-22 Andrew Cagney * TestByteBuffer.java (testMemoryBufferCapacity()): Mark as diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index d8d8063..921b477 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -40,9 +40,14 @@ package frysk.proc.live; import inua.eio.ByteBuffer; +import frysk.isa.ISA; import frysk.junit.TestCase; +import frysk.proc.Task; import frysk.testbed.AttachedSelf; +import frysk.testbed.ExecCommand; +import frysk.testbed.ExecOffspring; import frysk.testbed.LocalMemory; +import frysk.testbed.TearDownFile; import frysk.sys.Ptrace.RegisterSet; import frysk.sys.Ptrace.AddressSpace; import frysk.proc.Manager; @@ -58,13 +63,12 @@ public class TestByteBuffer private ByteBuffer[] addressBuffers; private ByteBuffer[] registerBuffers; - private ByteBuffer memorySpaceByteBuffer; - public void setUp () throws Exception { int pid; ByteBuffer addressSpaceByteBufferText; ByteBuffer addressSpaceByteBufferData; + ByteBuffer memorySpaceByteBuffer; ByteBuffer usrByteBuffer; ByteBuffer registerByteBuffer; ByteBuffer fpregisterByteBuffer; @@ -266,12 +270,22 @@ public class TestByteBuffer verifyPeeks(registerBuffers[i], addr, origBytes); } } - public void testMemoryBufferCapacity() { if (unresolved(5394)) return; - assertEquals("Memory Buffer Capacity: ", -1L, - memorySpaceByteBuffer.capacity()); + TearDownFile tmpFile = TearDownFile.create(); + ExecOffspring child + = new ExecOffspring(new ExecCommand (new String[] { + "/bin/rm", + tmpFile.toString() + })); + Task task = child.findTaskUsingRefresh(true); + if (task.getISA() == ISA.IA32) + assertEquals("Memory Buffer Capacity: ", 0xffffffffL, + task.getMemory().capacity()); + if (task.getISA() == ISA.X8664) + assertEquals("Memory Buffer Capacity: ", 0xffffffffffffffffL, + task.getMemory().capacity()); } private class AsyncPeeks hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Tue Nov 27 03:29:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Tue, 27 Nov 2007 03:29:00 -0000 Subject: [SCM] master: Renabled testMemoryBufferCapacity Message-ID: <20071127032925.10198.qmail@sourceware.org> The branch, master has been updated via ad02681a6d3702fbd7d4156c2280b74aef50c5eb (commit) from 09eab2c9c52fbf13ed5d1c50a246868653fe7198 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ad02681a6d3702fbd7d4156c2280b74aef50c5eb Author: Zhao Shujing Date: Wed Nov 28 00:16:53 2007 +0800 Renabled testMemoryBufferCapacity ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 1 + frysk-core/frysk/proc/live/TestByteBuffer.java | 2 -- 2 files changed, 1 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 30c52d9..db4c938 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,6 +1,7 @@ 2007-11-22 Zhao shujing * TestByteBuffer.java (testMemoryBufferCapacity()): Fix bug 5394. + Renabled test. 2007-11-22 Andrew Cagney diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index 921b477..e99d920 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -271,8 +271,6 @@ public class TestByteBuffer } } public void testMemoryBufferCapacity() { - if (unresolved(5394)) - return; TearDownFile tmpFile = TearDownFile.create(); ExecOffspring child = new ExecOffspring(new ExecCommand (new String[] { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Nov 27 15:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 27 Nov 2007 15:56:00 -0000 Subject: [SCM] master: Fix typo; match -L% not just -L. Message-ID: <20071127155626.11781.qmail@sourceware.org> The branch, master has been updated via f2d100dad2256b784de45495b1ea9a71e2b6ff5b (commit) from ad02681a6d3702fbd7d4156c2280b74aef50c5eb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f2d100dad2256b784de45495b1ea9a71e2b6ff5b Author: Andrew Cagney Date: Tue Nov 27 10:55:55 2007 -0500 Fix typo; match -L% not just -L. frysk-common/ChangeLog 2007-11-27 Andrew Cagney * Makefile.rules (GEN_GCJ_SO_DIRS): Fix typo, match -L%. (GEN_GCC_BUILDTREE_RPATHS): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/Makefile.rules | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 9063d3b..3ee3af2 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-11-27 Andrew Cagney + + * Makefile.rules (GEN_GCJ_SO_DIRS): Fix typo, match -L%. + (GEN_GCC_BUILDTREE_RPATHS): Delete. + 2007-11-26 Andrew Cagney * Makefile.rules (GEN_GCJ_SO_FLAGS): Delete. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 633ec41..84ae020 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -105,23 +105,25 @@ GEN_GCJ_LDADD_LIST = # RPATH to wire into in-build-tree program that need to access those # shared libraries. -# Just the directories. +# From the LDADD list extract a list of directories that contain (or +# likely contain) shared libraries, i.e.: -L and .so. + GEN_GCJ_SO_DIRS = \ - $(sort $(absdir $(foreach lib, $(GEN_GCJ_LDADD_LIST), \ + $(sort $(foreach lib, $(GEN_GCJ_LDADD_LIST), \ $(if $(filter -L%,$(lib)), \ - $(patsubst -L,%,$(lib))) \ + $(patsubst -L%,%,$(lib))) \ $(if $(filter %.so,$(lib)), \ $(patsubst %,-L%,$(dir $(lib)))) \ - ))) + )) + # Add absolute versions of each directory. GEN_GCJ_BUILDTREE_RPATHS = \ $(patsubst %/./,%, $(patsubst %/.,%, $(GEN_GCJ_SO_DIRS))) GEN_GCJ_BUILDTREE_RPATH = \ $(subst $(space),:,$(sort $(GEN_GCJ_BUILDTREE_RPATHS))) -GEN_GCC_BUILDTREE_RPATHS = $(top_builddir)/elfutils/libdw GEN_GCJ_BUILDTREE_RPATH_FLAGS = \ -Djava.library.path=$(GEN_GCJ_BUILDTREE_RPATH) \ - -Wl,-rpath,$(GEN_GCJ_BUILDTREE_RPATH):$(GEN_GCC_BUILDTREE_RPATHS) + -Wl,-rpath,$(GEN_GCC_BUILDTREE_RPATHS) # Prevent GCJ from creating child processes (or at least a feeble # attempt) -- children are created for both demangling and for hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Tue Nov 27 17:20:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Tue, 27 Nov 2007 17:20:00 -0000 Subject: [SCM] master: Wrap calls to wait() and await() with loops to avoid spurious wakeups Message-ID: <20071127172059.17137.qmail@sourceware.org> The branch, master has been updated via e2e6135d1b8db0d4b46a2e6901bbb4cd1139fea3 (commit) from f2d100dad2256b784de45495b1ea9a71e2b6ff5b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e2e6135d1b8db0d4b46a2e6901bbb4cd1139fea3 Author: Tim Moore Date: Tue Nov 27 18:19:57 2007 +0100 Wrap calls to wait() and await() with loops to avoid spurious wakeups frysk-core/frysk/event/ChangeLog 2007-11-27 Tim Moore * Request.java (Handler.execute, Handler.request): Wait inside a loop, testing for an execute flag. frysk-core/frysk/hpd/ChangeLog 2007-11-27 Tim Moore * CLI.java (doAttach): Wrap await call inside loop in order to disregard InterruptedException. * QuitCommand.java (interpret): ditto * RunCommand.java (run): ditto frysk-core/frysk/rt/ChangeLog 2007-11-27 Tim Moore * BreakpointManager.java (manageProcess): Wrap await call inside loop in order to disregard InterruptedException. frysk-core/frysk/util/ChangeLog 2007-11-27 Tim Moore * TestCountDownLatch.java (testCounters): Wrap await in while loop. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/event/ChangeLog | 5 +++++ frysk-core/frysk/event/Request.java | 18 ++++++++++++------ frysk-core/frysk/hpd/CLI.java | 24 +++++++++++++----------- frysk-core/frysk/hpd/ChangeLog | 7 +++++++ frysk-core/frysk/hpd/QuitCommand.java | 11 +++++++---- frysk-core/frysk/hpd/RunCommand.java | 10 ++++++---- frysk-core/frysk/rt/BreakpointManager.java | 11 +++++++---- frysk-core/frysk/rt/ChangeLog | 5 +++++ frysk-core/frysk/util/ChangeLog | 4 ++++ frysk-core/frysk/util/TestCountDownLatch.java | 8 +++++++- 10 files changed, 73 insertions(+), 30 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/event/ChangeLog b/frysk-core/frysk/event/ChangeLog index 8bf2f70..9cfcd38 100644 --- a/frysk-core/frysk/event/ChangeLog +++ b/frysk-core/frysk/event/ChangeLog @@ -1,3 +1,8 @@ +2007-11-27 Tim Moore + + * Request.java (Handler.execute, Handler.request): Wait inside a + loop, testing for an execute flag. + 2007-05-07 Tim Moore * WaitEventLoop.java (signalBuilder.signal): Print signal name diff --git a/frysk-core/frysk/event/Request.java b/frysk-core/frysk/event/Request.java index bbf0b5b..3374eac 100644 --- a/frysk-core/frysk/event/Request.java +++ b/frysk-core/frysk/event/Request.java @@ -62,6 +62,7 @@ public abstract class Request implements Event { private RuntimeException runtimeException; + private boolean executed = false; public synchronized void execute () { try { @@ -70,18 +71,23 @@ public abstract class Request catch (RuntimeException r) { runtimeException = r; } + executed = true; notify(); } private synchronized void request () { runtimeException = null; eventLoop.add(this); - try { - wait(); - } - catch (InterruptedException r) { - throw new RuntimeException (r); - } + while (!executed) { + try { + wait(); + if (executed) + break; + } + catch (InterruptedException r) { + } + } + executed = false; // Can requests ever be recycled? if (runtimeException != null) throw runtimeException; } diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 1c5ef5c..032caa3 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -146,18 +146,20 @@ public class CLI { } steppingEngine.addProc(proc); // Wait till we are attached. - try { - attachedLatch.await(); - outWriter.print("Attached to process "); - outWriter.println(attached); - } catch (InterruptedException ie) { - throw new RuntimeException("attachLatch interrupted"); - } finally { - synchronized (this) { - attached = -1; - attachedLatch = null; - } + while (true) { + try { + attachedLatch.await(); + outWriter.print("Attached to process "); + outWriter.println(attached); + synchronized (this) { + attached = -1; + attachedLatch = null; + } + break; + } catch (InterruptedException ie) { + } } + steppingEngine.getBreakpointManager().manageProcess(proc); // If passed a taskID < 0, request a reserved ProcID if (this.taskID < 0) diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index e3de710..6386fb4 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,10 @@ +2007-11-27 Tim Moore + + * CLI.java (doAttach): Wrap await call inside loop in order to + disregard InterruptedException. + * QuitCommand.java (interpret): ditto + * RunCommand.java (run): ditto + 2007-11-22 Rick Moseley * TestPeekCommand.java: Fix bz #5396; added test for when diff --git a/frysk-core/frysk/hpd/QuitCommand.java b/frysk-core/frysk/hpd/QuitCommand.java index 20680c1..4bb3e14 100644 --- a/frysk-core/frysk/hpd/QuitCommand.java +++ b/frysk-core/frysk/hpd/QuitCommand.java @@ -97,10 +97,13 @@ class QuitCommand extends ParameterizedCommand { void interpret(CLI cli, Input cmd, Object options) { CountDownLatch quitLatch = new CountDownLatch(1); new KillRequest(cli, quitLatch).request(); - try { - quitLatch.await(); - } - catch (InterruptedException e) { + while (true) { + try { + quitLatch.await(); + break; + } + catch (InterruptedException e) { + } } cli.addMessage("Quitting...", Message.TYPE_NORMAL); DetachCommand detachCommand = new DetachCommand(); diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index 3f8a0b1..edc4501 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -171,10 +171,12 @@ class RunCommand extends ParameterizedCommand { private void run(CLI cli, Input cmd) { Runner runner = new Runner(cli); Manager.host.requestCreateAttachedProc(cmd.stringArrayValue(), runner); - try { - runner.latch.await(); - } catch (InterruptedException e) { - return; + while (true) { + try { + runner.latch.await(); + break; + } catch (InterruptedException e) { + } } // register with SteppingEngine et.al. cli.doAttach(runner.launchedTask.getProc()); diff --git a/frysk-core/frysk/rt/BreakpointManager.java b/frysk-core/frysk/rt/BreakpointManager.java index d1737d8..87dffa0 100644 --- a/frysk-core/frysk/rt/BreakpointManager.java +++ b/frysk-core/frysk/rt/BreakpointManager.java @@ -262,10 +262,13 @@ public class BreakpointManager } }, sharedLibBptAddr); - try { - codeObserverLatch.await(); - } - catch (InterruptedException e) { + while (true) { + try { + codeObserverLatch.await(); + break; + } + catch (InterruptedException e) { + } } } } diff --git a/frysk-core/frysk/rt/ChangeLog b/frysk-core/frysk/rt/ChangeLog index b7ac848..d4afa91 100644 --- a/frysk-core/frysk/rt/ChangeLog +++ b/frysk-core/frysk/rt/ChangeLog @@ -1,3 +1,8 @@ +2007-11-27 Tim Moore + + * BreakpointManager.java (manageProcess): Wrap await call inside + loop in order to disregard InterruptedException. + 2007-11-16 Rick Moseley * ProcTaskIDManager.java(removeProcID,manageProcSelect): New. diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 13120ed..c5d7cc7 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-11-27 Tim Moore + + * TestCountDownLatch.java (testCounters): Wrap await in while loop. + 2007-11-26 Sami Wagiaalla Added a boolean for printing source libraries to Frame.toPrint(). diff --git a/frysk-core/frysk/util/TestCountDownLatch.java b/frysk-core/frysk/util/TestCountDownLatch.java index 6c6a2b4..61b687a 100644 --- a/frysk-core/frysk/util/TestCountDownLatch.java +++ b/frysk-core/frysk/util/TestCountDownLatch.java @@ -60,7 +60,13 @@ public class TestCountDownLatch thread1.start(); thread2.start(); thread3.start(); - latch.await(); + while (true) { + try { + latch.await(); + break; + } catch (InterruptedException e) { + } + } assertEquals("count", latch.getCount(), 0); } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Tue Nov 27 20:08:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 27 Nov 2007 20:08:00 -0000 Subject: [SCM] master: Move type printing for ptrs from EvalCommands.java to PointerType.java Message-ID: <20071127200844.26209.qmail@sourceware.org> The branch, master has been updated via 1dca1ef2a1df6c2b88e4e4279e051041d806096d (commit) from e2e6135d1b8db0d4b46a2e6901bbb4cd1139fea3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1dca1ef2a1df6c2b88e4e4279e051041d806096d Author: Teresa Thomas Date: Tue Nov 27 15:02:27 2007 -0500 Move type printing for ptrs from EvalCommands.java to PointerType.java frysk-core/frysk/value/ChangeLog 2007-11-27 Teresa Thomas * PointerType.java (toPrint): Add type printing. * TestPointer.java (testCharPointer): Update. frysk-core/frysk/hpd/ChangeLog 2007-11-27 Teresa Thomas * EvalCommands.java (Printer..print): Remove type printing for pointers. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 7 ++++++- frysk-core/frysk/hpd/EvalCommands.java | 9 --------- frysk-core/frysk/value/ChangeLog | 5 +++++ frysk-core/frysk/value/PointerType.java | 4 ++++ frysk-core/frysk/value/TestPointer.java | 2 +- 5 files changed, 16 insertions(+), 11 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 6386fb4..79e9b2b 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,10 +1,15 @@ +2007-11-27 Teresa Thomas + + * EvalCommands.java (Printer..print): Remove type printing + for pointers. + 2007-11-27 Tim Moore * CLI.java (doAttach): Wrap await call inside loop in order to disregard InterruptedException. * QuitCommand.java (interpret): ditto * RunCommand.java (run): ditto - + 2007-11-22 Rick Moseley * TestPeekCommand.java: Fix bz #5396; added test for when diff --git a/frysk-core/frysk/hpd/EvalCommands.java b/frysk-core/frysk/hpd/EvalCommands.java index b63e3bf..d318040 100644 --- a/frysk-core/frysk/hpd/EvalCommands.java +++ b/frysk-core/frysk/hpd/EvalCommands.java @@ -43,8 +43,6 @@ import inua.eio.ByteBuffer; import frysk.value.Format; import java.util.Iterator; import frysk.proc.Task; -import frysk.value.PointerType; -import frysk.value.Type; import java.util.List; import frysk.expr.Expression; import java.io.PrintWriter; @@ -59,13 +57,6 @@ abstract class EvalCommands extends ParameterizedCommand { static final Printer VALUE = new Printer() { void print(Expression e, PrintWriter writer, Format format, ByteBuffer memory) { - // XXX: Should be in type? - Type t = e.getType(); - if (t instanceof PointerType) { - writer.print("("); - t.toPrint(writer, 0); - writer.print(") "); - } e.getValue().toPrint(writer, memory, format, 0); writer.println(); } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 151002a..aac4a06 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-27 Teresa Thomas + + * PointerType.java (toPrint): Add type printing. + * TestPointer.java (testCharPointer): Update. + 2007-11-26 Teresa Thomas * PointerType.java (toPrint): Return on null ptr. diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 9cd1e8b..43e5d97 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -78,6 +78,10 @@ public class PointerType void toPrint(PrintWriter writer, Location location, ByteBuffer memory, Format format, int indent) { + // Print type of pointer + writer.print("("); + this.toPrint(writer, 0); + writer.print(") "); format.print(writer, location, this); if (type instanceof CharType) { // XXX: ByteBuffer.slice wants longs. diff --git a/frysk-core/frysk/value/TestPointer.java b/frysk-core/frysk/value/TestPointer.java index 5e266a5..062b17f 100644 --- a/frysk-core/frysk/value/TestPointer.java +++ b/frysk-core/frysk/value/TestPointer.java @@ -58,7 +58,7 @@ public class TestPointer 1, true)); // Construct the pointer and try it. Location l = new ScratchLocation(new byte[] { 4 }); - assertEquals("toPrint", "0x4 \"Hello World\"", + assertEquals("toPrint", "(char *) 0x4 \"Hello World\"", t.toPrint(l, memory, Format.NATURAL)); } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Tue Nov 27 23:32:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Tue, 27 Nov 2007 23:32:00 -0000 Subject: [SCM] master: Update enabled repo list in fdebugrpm. (Bug# 5397) Message-ID: <20071127233203.2416.qmail@sourceware.org> The branch, master has been updated via 595237560666bb84b03dd7453107106e66beb7f6 (commit) from 1dca1ef2a1df6c2b88e4e4279e051041d806096d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 595237560666bb84b03dd7453107106e66beb7f6 Author: Teresa Date: Tue Nov 27 18:29:55 2007 -0500 Update enabled repo list in fdebugrpm. (Bug# 5397) frysk-core/frysk/bindir/ChangeLog 2007-11-27 Teresa Thomas * fdebugrpm.sh: Update enabled repos list for fc7 and fc8 support. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 +++++ frysk-core/frysk/bindir/fdebugrpm.sh | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 2e883cd..e6f4efa 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-27 Teresa Thomas + + * fdebugrpm.sh: Update enabled repos list for fc7 + and fc8 support. + 2007-11-26 Sami Wagiaalla Added a boolean for printing source libraries to Frame.toPrint(). diff --git a/frysk-core/frysk/bindir/fdebugrpm.sh b/frysk-core/frysk/bindir/fdebugrpm.sh index c54ffc0..63c5215 100644 --- a/frysk-core/frysk/bindir/fdebugrpm.sh +++ b/frysk-core/frysk/bindir/fdebugrpm.sh @@ -65,9 +65,9 @@ then read -p "Do you wish to install the above packages? [y/n]: " ch if [ "$ch" = "y" ] then - sudo yum install --enablerepo=core-debuginfo \ + sudo yum install --enablerepo=fedora-debuginfo \ --enablerepo=updates-debuginfo \ - --enablerepo=extras-debuginfo \ + --enablerepo=updates-testing-debuginfo \ --enablerepo=development-debuginfo $packages fi hooks/post-receive -- frysk system monitor/debugger From pzhao@sourceware.org Wed Nov 28 06:49:00 2007 From: pzhao@sourceware.org (pzhao@sourceware.org) Date: Wed, 28 Nov 2007 06:49:00 -0000 Subject: [SCM] master: Update; Add PPC support and make it simpler. Message-ID: <20071128064932.1796.qmail@sourceware.org> The branch, master has been updated via 5faccbd2210692c1128d3c6e9ba5e604861e5933 (commit) from 595237560666bb84b03dd7453107106e66beb7f6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5faccbd2210692c1128d3c6e9ba5e604861e5933 Author: Zhao Shujing Date: Thu Nov 29 04:48:32 2007 +0800 Update; Add PPC support and make it simpler. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 5 +++ frysk-core/frysk/proc/live/TestByteBuffer.java | 39 +++++++++++------------ 2 files changed, 24 insertions(+), 20 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index db4c938..05f1824 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Zhao Shujing + + * TestByteBuffer.java (testMemoryBufferCapacity()): Update; Add PPC + support and make it simpler. + 2007-11-22 Zhao shujing * TestByteBuffer.java (testMemoryBufferCapacity()): Fix bug 5394. diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index e99d920..e4510c9 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -40,14 +40,11 @@ package frysk.proc.live; import inua.eio.ByteBuffer; -import frysk.isa.ISA; import frysk.junit.TestCase; import frysk.proc.Task; import frysk.testbed.AttachedSelf; -import frysk.testbed.ExecCommand; -import frysk.testbed.ExecOffspring; +import frysk.testbed.DaemonBlockedAtEntry; import frysk.testbed.LocalMemory; -import frysk.testbed.TearDownFile; import frysk.sys.Ptrace.RegisterSet; import frysk.sys.Ptrace.AddressSpace; import frysk.proc.Manager; @@ -270,22 +267,6 @@ public class TestByteBuffer verifyPeeks(registerBuffers[i], addr, origBytes); } } - public void testMemoryBufferCapacity() { - TearDownFile tmpFile = TearDownFile.create(); - ExecOffspring child - = new ExecOffspring(new ExecCommand (new String[] { - "/bin/rm", - tmpFile.toString() - })); - Task task = child.findTaskUsingRefresh(true); - if (task.getISA() == ISA.IA32) - assertEquals("Memory Buffer Capacity: ", 0xffffffffL, - task.getMemory().capacity()); - if (task.getISA() == ISA.X8664) - assertEquals("Memory Buffer Capacity: ", 0xffffffffffffffffL, - task.getMemory().capacity()); - } - private class AsyncPeeks implements Runnable { @@ -378,4 +359,22 @@ public class TestByteBuffer LocalMemory.getCodeBytes().length); } + public void testMemoryBufferCapacity() + { + Task task = new DaemonBlockedAtEntry("funit-slave").getMainTask(); + switch(task.getISA().wordSize()){ + case 4: + assertEquals("Memory Buffer Capacity: ", 0xffffffffL, + task.getMemory().capacity()); + break; + case 8: + assertEquals("Memory Buffer Capacity: ", 0xffffffffffffffffL, + task.getMemory().capacity()); + break; + default: + fail("unknown word size"); + } + } + + } hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Wed Nov 28 12:04:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 28 Nov 2007 12:04:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071128120426.1827.qmail@sourceware.org> The branch, master has been updated via 86a2f5ab52c3dd06d6271f92acfef0f29b6a223a (commit) via 2446008a5d43d27efa95341672071fc481838d04 (commit) from 5faccbd2210692c1128d3c6e9ba5e604861e5933 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 86a2f5ab52c3dd06d6271f92acfef0f29b6a223a Merge: 2446008a5d43d27efa95341672071fc481838d04 5faccbd2210692c1128d3c6e9ba5e604861e5933 Author: Mark Wielaard Date: Wed Nov 28 13:03:48 2007 +0100 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 2446008a5d43d27efa95341672071fc481838d04 Author: Mark Wielaard Date: Wed Nov 28 13:02:20 2007 +0100 Remove stale .cvsignore file from libunwind. frysk-imports/libunwind/ChangeLog 2007-11-28 Mark Wielaard * .cvsignore, config/.cvsignore, doc/.cvsignore, include/.cvsignore, src/.cvsignore, tests/.cvsignore: Removed. ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/.cvsignore | 5 ----- frysk-imports/libunwind/ChangeLog | 5 +++++ frysk-imports/libunwind/config/.cvsignore | 3 --- frysk-imports/libunwind/doc/.cvsignore | 1 - frysk-imports/libunwind/include/.cvsignore | 1 - frysk-imports/libunwind/src/.cvsignore | 1 - frysk-imports/libunwind/tests/.cvsignore | 1 - 7 files changed, 5 insertions(+), 12 deletions(-) delete mode 100644 frysk-imports/libunwind/.cvsignore delete mode 100644 frysk-imports/libunwind/config/.cvsignore delete mode 100644 frysk-imports/libunwind/doc/.cvsignore delete mode 100644 frysk-imports/libunwind/include/.cvsignore delete mode 100644 frysk-imports/libunwind/src/.cvsignore delete mode 100644 frysk-imports/libunwind/tests/.cvsignore First 500 lines of diff: diff --git a/frysk-imports/libunwind/.cvsignore b/frysk-imports/libunwind/.cvsignore deleted file mode 100644 index f0f3aa0..0000000 --- a/frysk-imports/libunwind/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -autom4te.cache -configure -aclocal.m4 -Makefile.in -config diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index fd48784..073fa37 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Mark Wielaard + + * .cvsignore, config/.cvsignore, doc/.cvsignore, + include/.cvsignore, src/.cvsignore, tests/.cvsignore: Removed. + 2007-11-23 Mark Wielaard Revert: diff --git a/frysk-imports/libunwind/config/.cvsignore b/frysk-imports/libunwind/config/.cvsignore deleted file mode 100644 index 7cff00c..0000000 --- a/frysk-imports/libunwind/config/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -config.guess -config.sub -ltmain.sh diff --git a/frysk-imports/libunwind/doc/.cvsignore b/frysk-imports/libunwind/doc/.cvsignore deleted file mode 100644 index 70845e0..0000000 --- a/frysk-imports/libunwind/doc/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/frysk-imports/libunwind/include/.cvsignore b/frysk-imports/libunwind/include/.cvsignore deleted file mode 100644 index 2a9005d..0000000 --- a/frysk-imports/libunwind/include/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -config.h.in diff --git a/frysk-imports/libunwind/src/.cvsignore b/frysk-imports/libunwind/src/.cvsignore deleted file mode 100644 index 70845e0..0000000 --- a/frysk-imports/libunwind/src/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/frysk-imports/libunwind/tests/.cvsignore b/frysk-imports/libunwind/tests/.cvsignore deleted file mode 100644 index 70845e0..0000000 --- a/frysk-imports/libunwind/tests/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Wed Nov 28 12:47:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Wed, 28 Nov 2007 12:47:00 -0000 Subject: [SCM] master: Get rid of ununsed libunwind elf_symbol lookup patches. Message-ID: <20071128124725.2540.qmail@sourceware.org> The branch, master has been updated via f409de5e8b941428f396bde156995f2e7acc4465 (commit) from 86a2f5ab52c3dd06d6271f92acfef0f29b6a223a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f409de5e8b941428f396bde156995f2e7acc4465 Author: Mark Wielaard Date: Wed Nov 28 13:47:07 2007 +0100 Get rid of ununsed libunwind elf_symbol lookup patches. 2007-11-28 Mark Wielaard Revert: 2006-12-10 Jan Kratochvil * src/elfxx.c (lookup_symbol): Avoid returning irrelevant symbols defined as the last ones before the address in different section. 2006-12-10 Jan Kratochvil * src/elfxx.c (lookup_symbol): Fixed excessive buffer size requirement. ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/ChangeLog | 14 +++++++++ frysk-imports/libunwind/src/elfxx.c | 51 ----------------------------------- 2 files changed, 14 insertions(+), 51 deletions(-) First 500 lines of diff: diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index 073fa37..cc60b59 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,5 +1,19 @@ 2007-11-28 Mark Wielaard + Revert: + 2006-12-10 Jan Kratochvil + + * src/elfxx.c (lookup_symbol): Avoid returning irrelevant symbols + defined as the last ones before the address in different + section. + + 2006-12-10 Jan Kratochvil + + * src/elfxx.c (lookup_symbol): Fixed excessive buffer + size requirement. + +2007-11-28 Mark Wielaard + * .cvsignore, config/.cvsignore, doc/.cvsignore, include/.cvsignore, src/.cvsignore, tests/.cvsignore: Removed. diff --git a/frysk-imports/libunwind/src/elfxx.c b/frysk-imports/libunwind/src/elfxx.c index ae1ef34..6b32305 100644 --- a/frysk-imports/libunwind/src/elfxx.c +++ b/frysk-imports/libunwind/src/elfxx.c @@ -51,15 +51,12 @@ elf_w (lookup_symbol) (unw_addr_space_t as, Elf_W (Off) soff, str_soff; Elf_W (Shdr) *shdr, *str_shdr; Elf_W (Addr) val, min_dist = ~(Elf_W (Addr))0; - Elf_W (Addr) val_max_below = 0; int i, ret = 0; char *strtab; if (!elf_w (valid_object) (ei)) return -UNW_ENOINFO; - buf_len--; /* Terminating 0. */ - soff = ehdr->e_shoff; if (soff + ehdr->e_shnum * ehdr->e_shentsize > ei->size) { @@ -103,58 +100,10 @@ elf_w (lookup_symbol) (unw_addr_space_t as, if (ELF_W (ST_TYPE) (sym->st_info) == STT_FUNC && sym->st_shndx != SHN_UNDEF) { - Elf_W (Shdr) *shdr2; - int i2; - if (tdep_get_func_addr (as, sym->st_value, &val) < 0) continue; if (sym->st_shndx != SHN_ABS) val += load_offset; - - if (ip < val) - continue; - if (val + sym->st_size < val_max_below) - continue; - val_max_below = val + sym->st_size; - if (sym->st_size && ip >= val + sym->st_size) - continue; - - if ((Elf_W (Addr)) (ip - val) >= min_dist) - continue; - - /* Check both the address and the symbol belong to the same - section. */ - shdr2 = (Elf_W (Shdr) *) ((char *) ei->image + soff); - for (i2 = 0; i2 < ehdr->e_shnum; ++i2, - shdr2 = (Elf_W (Shdr) *) (((char *) shdr2) + ehdr->e_shentsize)) - { - unw_word_t addr_start; - - if (shdr2->sh_type != SHT_PROGBITS) - continue; - /* `load_offset' is no absolute address. - `shdr2->sh_addr' is address where the library was prelink(8)ed to. - `load_offset + shdr2->sh_addr' will give the loaded address. - `shdr2->sh_addr == 0' is for sections not in the memory image. - prelink(8) at offset 0x0: - load_offset=0x360000,segbase=0x360000,p_vaddr=0x0,p_paddr=0x0 - segbase=0x360000,load_offset=0x360000,shdr2->sh_addr=0x1b4,shdr2->sh_offset=0x1b4,ip=0x3601c5 - prelink(8) at offset 0x8048000: - load_offset=0xf80c9000,segbase=0x111000,p_vaddr=0x8048000,p_paddr=0x8048000 - segbase=0x111000,load_offset=0xf80c9000,shdr2->sh_addr=0x80481b4,shdr2->sh_offset=0x1b4,ip=0x1111c5 - */ - if (shdr2->sh_addr == 0) - continue; - addr_start = load_offset + shdr2->sh_addr; - if (ip >= addr_start - && ip < addr_start + shdr2->sh_size - && val >= addr_start - && val < addr_start + shdr2->sh_size) - break; - } - if (i2 >= ehdr->e_shnum) - continue; - Debug (16, "0x%016lx info=0x%02x %s\n", (long) val, sym->st_info, strtab + sym->st_name); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 28 13:08:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 28 Nov 2007 13:08:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071128130848.25970.qmail@sourceware.org> The branch, master has been updated via 73c6fe8aca72acc92166db968b80e906a8af83a3 (commit) via 4072471e58e9fcf5149975ba6fb5c10b6cb15865 (commit) from f409de5e8b941428f396bde156995f2e7acc4465 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 73c6fe8aca72acc92166db968b80e906a8af83a3 Merge: 4072471e58e9fcf5149975ba6fb5c10b6cb15865 f409de5e8b941428f396bde156995f2e7acc4465 Author: Phil Muldoon Date: Wed Nov 28 13:08:21 2007 +0000 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 4072471e58e9fcf5149975ba6fb5c10b6cb15865 Author: Phil Muldoon Date: Wed Nov 28 13:07:57 2007 +0000 Moved Corefile x8864 Register usage to Bank Register. 2007-11-28 Phil Muldoon * X8664LinuxElfCorefile.java (writeNotePrstatus): Do not use getRegisterByName(). Use static X8864 register constants, and task.access() (bytesToBigInteger): New temporary function, pending all arch refactor. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 8 +++ frysk-core/frysk/util/X8664LinuxElfCorefile.java | 66 +++++++++++++++++++--- 2 files changed, 66 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index c5d7cc7..d1cda2f 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,11 @@ +2007-11-28 Phil Muldoon + + * X8664LinuxElfCorefile.java (writeNotePrstatus): Do not use + getRegisterByName(). Use static X8864 register constants, and + task.access() + (bytesToBigInteger): New temporary function, pending all arch + refactor. + 2007-11-27 Tim Moore * TestCountDownLatch.java (testCounters): Wrap await in while loop. diff --git a/frysk-core/frysk/util/X8664LinuxElfCorefile.java b/frysk-core/frysk/util/X8664LinuxElfCorefile.java index 02b474a..c2dab9d 100644 --- a/frysk-core/frysk/util/X8664LinuxElfCorefile.java +++ b/frysk-core/frysk/util/X8664LinuxElfCorefile.java @@ -39,9 +39,14 @@ package frysk.util; +import java.math.BigInteger; + +import frysk.isa.Register; +import frysk.isa.X8664Registers; import frysk.proc.Proc; import frysk.proc.Task; import inua.eio.ByteBuffer; +import inua.eio.ByteOrder; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfNhdrType; @@ -175,16 +180,43 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile { // Order for these registers is found in /usr/include/asm/user.h // This is not the same order that frysk iterators print out, nor // are the names are the same. Create a string[] map to bridge - // gap between frysk and core file register order. - String regMap[] = { "r15", "r14", "r13", "r12", "rbp", "rbx", "r11", - "r10", "r9", "r8", "rax", "rcx", "rdx", "rsi", - "rdi", "orig_rax", "rip", "cs", "rflags", "rsp", - "ss", "fs_base", "gs_base", "ds", "es", "fs", "gs" }; - + // gap between frysk and core file register order. + + Register[] ptraceRegisterMap = { + X8664Registers.R15, + X8664Registers.R14, + X8664Registers.R13, + X8664Registers.R12, + X8664Registers.RBP, + X8664Registers.RBX, + X8664Registers.R11, + X8664Registers.R10, + X8664Registers.R9, + X8664Registers.R8, + X8664Registers.RAX, + X8664Registers.RCX, + X8664Registers.RDX, + X8664Registers.RSI, + X8664Registers.RDI, + X8664Registers.ORIG_RAX, + X8664Registers.RIP, + X8664Registers.CS, + X8664Registers.RFLAGS, + X8664Registers.RSP, + X8664Registers.SS, + X8664Registers.FS_BASE, + X8664Registers.GS_BASE, + X8664Registers.DS, + X8664Registers.ES, + X8664Registers.FS, + X8664Registers.GS}; // Set GP register info - for (int i = 0; i < regMap.length; i++) { - prStatus.setPrGPReg(i, task.getBigIntegerRegisterFIXME(regMap[i])); + for (int i = 0; i < ptraceRegisterMap.length; i++) { + int registerSize = ptraceRegisterMap[i].getType().getSize(); + byte[] byteOrderedRegister = new byte[registerSize]; + task.access(ptraceRegisterMap[i], 0, registerSize, byteOrderedRegister, 0, false); + prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); } // Write it @@ -252,4 +284,22 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile { protected byte getElfMachineClass() { return ElfEHeader.PHEADER_ELFCLASS64; } + + // XXX: Function to convert bytes[] to BigInteger. + // Will disappear when all BankRegisters are present on all + // all architectures, and we can call task.access() on all + // registers, and not convert to BigInteger. + private BigInteger bytesToBigInteger(byte[] bytes) + { + if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) { + for (int left = 0; left < bytes.length / 2; left++) { + int right = bytes.length - 1 - left; + byte temp = bytes[left]; + bytes[left] = bytes[right]; + bytes[right] = temp; + } + } + return new BigInteger(bytes); + } + } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Wed Nov 28 13:50:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Wed, 28 Nov 2007 13:50:00 -0000 Subject: [SCM] master: Use Bank Registers for GPR. Do not use getRegisterByName(). Message-ID: <20071128135027.22978.qmail@sourceware.org> The branch, master has been updated via 9ce87ebc824d9ddd20bff9b53e89b87948c45e9a (commit) from 73c6fe8aca72acc92166db968b80e906a8af83a3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9ce87ebc824d9ddd20bff9b53e89b87948c45e9a Author: Phil Muldoon Date: Wed Nov 28 13:50:19 2007 +0000 Use Bank Registers for GPR. Do not use getRegisterByName(). 2007-11-28 Phil Muldoon * PPC64LinuxElfCorefile.java (writeNotePrstatus): Add GPR registers to map. Do not use getRegisterByName() anymore. * PPC32LinuxElfCorefile.java(writeNotePrstatus): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 4 ++ frysk-core/frysk/util/PPC32LinuxElfCorefile.java | 59 ++++++++++------------ frysk-core/frysk/util/PPC64LinuxElfCorefile.java | 46 ++++++++--------- 3 files changed, 52 insertions(+), 57 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index d1cda2f..2452a84 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,5 +1,9 @@ 2007-11-28 Phil Muldoon + * PPC64LinuxElfCorefile.java (writeNotePrstatus): Add GPR + registers to map. Do not use getRegisterByName() anymore. + * PPC32LinuxElfCorefile.java(writeNotePrstatus): Ditto. + * X8664LinuxElfCorefile.java (writeNotePrstatus): Do not use getRegisterByName(). Use static X8864 register constants, and task.access() diff --git a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java index 355afce..8180acf 100644 --- a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java @@ -186,9 +186,6 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { // are the names are the same. Create a string[] map to bridge // gap between frysk and core file register order. - // The number of general purpose regiser. - int gprSize = 32; - // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc/elf.h. int elfNGREG = 48; @@ -197,42 +194,40 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { byte[] zeroVal = new byte[] { 0 }; Register[] ptracePpcRegMap = { - PPC32Registers.NIP, - PPC32Registers.MSR, - PPC32Registers.ORIGR3, - PPC32Registers.CTR, - PPC32Registers.LR, - PPC32Registers.XER, - PPC32Registers.CCR, - PPC32Registers.MQ, - PPC32Registers.TRAP, - PPC32Registers.DAR, - PPC32Registers.DSISR, - PPC32Registers.RESULT }; - + PPC32Registers.NIP, PPC32Registers.MSR, PPC32Registers.ORIGR3, + PPC32Registers.CTR, PPC32Registers.LR, PPC32Registers.XER, + PPC32Registers.CCR, PPC32Registers.MQ, PPC32Registers.TRAP, + PPC32Registers.DAR, PPC32Registers.DSISR, PPC32Registers.RESULT, + PPC32Registers.GPR0, PPC32Registers.GPR1, PPC32Registers.GPR2, + PPC32Registers.GPR3, PPC32Registers.GPR4, PPC32Registers.GPR5, + PPC32Registers.GPR6, PPC32Registers.GPR7, PPC32Registers.GPR8, + PPC32Registers.GPR9, PPC32Registers.GPR10, PPC32Registers.GPR11, + PPC32Registers.GPR12, PPC32Registers.GPR13, PPC32Registers.GPR14, + PPC32Registers.GPR15, PPC32Registers.GPR16, PPC32Registers.GPR17, + PPC32Registers.GPR18, PPC32Registers.GPR19, PPC32Registers.GPR20, + PPC32Registers.GPR21, PPC32Registers.GPR22, PPC32Registers.GPR23, + PPC32Registers.GPR24, PPC32Registers.GPR25, PPC32Registers.GPR26, + PPC32Registers.GPR27, PPC32Registers.GPR28, PPC32Registers.GPR29, + PPC32Registers.GPR30, PPC32Registers.GPR31}; + for (int i = 0; i < ptracePpcRegMap.length; i++) { - int registerSize = ptracePpcRegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpcRegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); + int registerSize = ptracePpcRegMap[i].getType().getSize(); + byte[] byteOrderedRegister = new byte[registerSize]; + task.access(ptracePpcRegMap[i], 0, registerSize, byteOrderedRegister, 0, false); + prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); } - - // Set the general purpose registers. - for (int index = 0; index < gprSize; index++) - prStatus.setPrGPReg - (index, - task.getBigIntegerRegisterFIXME("gpr" + index)); - - blankRegisterIndex = gprSize + ptracePpcRegMap.length; - + + + blankRegisterIndex = ptracePpcRegMap.length; + BigInteger bigInt = new BigInteger(zeroVal); - - // On ppc, some register indexes are not defined in + + // On ppc, some register indexes are not defined in // asm-/ptrace.h. for (int index = blankRegisterIndex; index < elfNGREG; index++) prStatus.setPrGPReg(index, bigInt); - // Write it + // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); } diff --git a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java index bc0be2a..ffcc899 100644 --- a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java @@ -187,9 +187,6 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { // are the names are the same. Create a string[] map to bridge // gap between frysk and core file register order. - // The number of general purpose regiser. - int gprSize = 32; - // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc64/elf.h. int elfNGREG = 48; @@ -200,37 +197,36 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { // XXX: if one register's offset is not defined in asm-ppc/ptrace.h or // asm-ppc64/ptrace.h,we did not dump it out and fill give the null Name. Register[] ptracePpc64RegMap = { - PPC64Registers.NIP, - PPC64Registers.MSR, - PPC64Registers.ORIGR3, - PPC64Registers.CTR, - PPC64Registers.LR, - PPC64Registers.XER, - PPC64Registers.CCR, - PPC64Registers.SOFTE, - PPC64Registers.TRAP, - PPC64Registers.DAR, - PPC64Registers.DSISR, - PPC64Registers.RESULT }; + PPC64Registers.NIP, PPC64Registers.MSR, PPC64Registers.ORIGR3, + PPC64Registers.CTR, PPC64Registers.LR, PPC64Registers.XER, + PPC64Registers.CCR, PPC64Registers.SOFTE, PPC64Registers.TRAP, + PPC64Registers.DAR, PPC64Registers.DSISR, PPC64Registers.RESULT, + PPC64Registers.GPR0, PPC64Registers.GPR1, PPC64Registers.GPR2, + PPC64Registers.GPR3, PPC64Registers.GPR4, PPC64Registers.GPR5, + PPC64Registers.GPR6, PPC64Registers.GPR7, PPC64Registers.GPR8, + PPC64Registers.GPR9, PPC64Registers.GPR10, PPC64Registers.GPR11, + PPC64Registers.GPR12, PPC64Registers.GPR13, PPC64Registers.GPR14, + PPC64Registers.GPR15, PPC64Registers.GPR16, PPC64Registers.GPR17, + PPC64Registers.GPR18, PPC64Registers.GPR19, PPC64Registers.GPR20, + PPC64Registers.GPR21, PPC64Registers.GPR22, PPC64Registers.GPR23, + PPC64Registers.GPR24, PPC64Registers.GPR25, PPC64Registers.GPR26, + PPC64Registers.GPR27, PPC64Registers.GPR28, PPC64Registers.GPR29, + PPC64Registers.GPR30, PPC64Registers.GPR31}; for (int i = 0; i < ptracePpc64RegMap.length; i++) { - int registerSize = ptracePpc64RegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpc64RegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister)); + int registerSize = ptracePpc64RegMap[i].getType().getSize(); + byte[] byteOrderedRegister = new byte[registerSize]; + task.access(ptracePpc64RegMap[i], 0, registerSize, byteOrderedRegister, 0, false); + prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister)); } - // Set the general purpose registers. - for (int index = 0; index < gprSize; index++) - prStatus.setPrGPReg - (index, task.getBigIntegerRegisterFIXME("gpr" + index)); - blankRegisterIndex = gprSize + ptracePpc64RegMap.length; + blankRegisterIndex = ptracePpc64RegMap.length; BigInteger bigInt = new BigInteger(zeroVal); // On ppc, some register indexes are not defined in - // asm-/ptrace.h. + // asm-/ptrace.h. for (int index = blankRegisterIndex; index < elfNGREG; index++) prStatus.setPrGPReg(index, bigInt); hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 28 15:44:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 28 Nov 2007 15:44:00 -0000 Subject: [SCM] master: Enable all debuginfo repos for fdebugrpm. Message-ID: <20071128154431.22621.qmail@sourceware.org> The branch, master has been updated via 73d248bf48736b4e48a0ea9cc006704c287df727 (commit) from 9ce87ebc824d9ddd20bff9b53e89b87948c45e9a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 73d248bf48736b4e48a0ea9cc006704c287df727 Author: Teresa Date: Wed Nov 28 10:41:03 2007 -0500 Enable all debuginfo repos for fdebugrpm. frysk-core/frysk/bindir/ChangeLog 2007-11-28 Teresa Thomas * fdebugrpm.sh: Enable all debuginfo repos. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 ++++ frysk-core/frysk/bindir/fdebugrpm.sh | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index e6f4efa..4ad0a65 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-28 Teresa Thomas + + * fdebugrpm.sh: Enable all debuginfo repos. + 2007-11-27 Teresa Thomas * fdebugrpm.sh: Update enabled repos list for fc7 diff --git a/frysk-core/frysk/bindir/fdebugrpm.sh b/frysk-core/frysk/bindir/fdebugrpm.sh index 63c5215..38ce411 100644 --- a/frysk-core/frysk/bindir/fdebugrpm.sh +++ b/frysk-core/frysk/bindir/fdebugrpm.sh @@ -65,10 +65,7 @@ then read -p "Do you wish to install the above packages? [y/n]: " ch if [ "$ch" = "y" ] then - sudo yum install --enablerepo=fedora-debuginfo \ - --enablerepo=updates-debuginfo \ - --enablerepo=updates-testing-debuginfo \ - --enablerepo=development-debuginfo $packages + sudo yum install --enablerepo=*-debuginfo $packages fi else hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Nov 28 16:20:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 28 Nov 2007 16:20:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071128162017.19496.qmail@sourceware.org> The branch, master has been updated via 0d030927ffff2842d7175af81a37b725c7842fc4 (commit) via 14da5f49f8bcd34a91f22062329966a6ca541d09 (commit) from 73d248bf48736b4e48a0ea9cc006704c287df727 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0d030927ffff2842d7175af81a37b725c7842fc4 Merge: 14da5f49f8bcd34a91f22062329966a6ca541d09 73d248bf48736b4e48a0ea9cc006704c287df727 Author: Jose Flavio Aguilar Paulino Date: Wed Nov 28 14:19:50 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 14da5f49f8bcd34a91f22062329966a6ca541d09 Author: Jose Flavio Aguilar Paulino Date: Wed Nov 28 14:19:23 2007 -0200 Fixing PowerPC access to regs and corefile fp notes section. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 12 ++--- .../proc/live/PtraceRegisterBanksFactory.java | 14 ++++-- frysk-core/frysk/util/ChangeLog | 9 +++ frysk-core/frysk/util/PPC64LinuxElfCorefile.java | 53 +++++++++++++++---- frysk-core/frysk/util/TestFCore.java | 8 +++- frysk-sys/frysk/sys/ChangeLog | 5 ++ frysk-sys/frysk/sys/cni/Ptrace.cxx | 10 +++- 7 files changed, 86 insertions(+), 25 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 05f1824..ee712f6 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,12 +1,8 @@ -2007-11-28 Zhao Shujing +2007-11-27 Jose Flavio Aguilar Paulino - * TestByteBuffer.java (testMemoryBufferCapacity()): Update; Add PPC - support and make it simpler. - -2007-11-22 Zhao shujing - - * TestByteBuffer.java (testMemoryBufferCapacity()): Fix bug 5394. - Renabled test. + * PtraceRegisterBanksFactory.java: Putting single PowerPC ptrace + register bank (holds all registers with different sizes, even + floating pointer ones and vector register. 2007-11-22 Andrew Cagney diff --git a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java index 0621b3c..74232f0 100644 --- a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java @@ -83,10 +83,16 @@ class PtraceRegisterBanksFactory { } private static ByteBuffer[] ppcBanksBE(int pid) { - ByteBuffer registers - = new AddressSpaceByteBuffer(pid, AddressSpace.USR); - registers.order(ByteOrder.BIG_ENDIAN); // set explicitly - return new ByteBuffer[] { registers }; + ByteBuffer[] bankBuffers = new ByteBuffer[] { + new RegisterSetByteBuffer(pid, RegisterSet.REGS), + new AddressSpaceByteBuffer(pid, AddressSpace.USR) + }; + + for (int i = 0; i < bankBuffers.length; i++) { + bankBuffers[i].order(ByteOrder.BIG_ENDIAN); + } + + return bankBuffers; } static RegisterBanks create(ISA isa, int pid) { diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 2452a84..24e3eb0 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,12 @@ +2007-11-28 Jose Flavio Aguilar Paulino + + * PPC64LinuxElfCorefile.java: Fixed the floating pointer + notes writer. + + * TestFCore.java: Marked testFloatingPointRegisters as an Unresolved + test since doesnt make sense to test for fp regs in the second bank, + they are together with all other regs in the first bank. + 2007-11-28 Phil Muldoon * PPC64LinuxElfCorefile.java (writeNotePrstatus): Add GPR diff --git a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java index ffcc899..58553c7 100644 --- a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java @@ -47,7 +47,6 @@ import java.math.BigInteger; import frysk.proc.Proc; import frysk.proc.Task; -import inua.eio.ByteBuffer; import inua.eio.ByteOrder; import lib.dwfl.ElfNhdr; @@ -241,20 +240,52 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { * frysk.proc.Task) */ protected void writeNoteFPRegset(ElfNhdr nhdrEntry, Task task) { - ElfPrFPRegSet fpRegSet = new ElfPrFPRegSet(); - // Write FP Register info over wholesae. Do not interpret. - ByteBuffer registerMaps[] = task.getRegisterBuffersFIXME(); - byte[] regBuffer = new byte[(int) registerMaps[1].capacity()]; - registerMaps[1].get(regBuffer); + ElfPrFPRegSet fpRegSet = new ElfPrFPRegSet(); + + Register[] ppc64FloatingPointerRegMap = { + PPC64Registers.FPR0, PPC64Registers.FPR1, PPC64Registers.FPR2, + PPC64Registers.FPR3, PPC64Registers.FPR4, PPC64Registers.FPR5, + PPC64Registers.FPR6, PPC64Registers.FPR7, PPC64Registers.FPR8, + PPC64Registers.FPR9, PPC64Registers.FPR10, PPC64Registers.FPR11, + PPC64Registers.FPR12, PPC64Registers.FPR13, PPC64Registers.FPR14, + PPC64Registers.FPR15, PPC64Registers.FPR16, PPC64Registers.FPR17, + PPC64Registers.FPR18, PPC64Registers.FPR19, PPC64Registers.FPR20, + PPC64Registers.FPR21, PPC64Registers.FPR22, PPC64Registers.FPR23, + PPC64Registers.FPR24, PPC64Registers.FPR25, PPC64Registers.FPR26, + PPC64Registers.FPR27, PPC64Registers.FPR28, PPC64Registers.FPR29, + PPC64Registers.FPR30, PPC64Registers.FPR31 }; + + int totalBufferSize = 0; + for (int i = 0; i < ppc64FloatingPointerRegMap.length; i++) { + int registerSize = ppc64FloatingPointerRegMap[i].getType().getSize(); + totalBufferSize += registerSize; + } - fpRegSet.setFPRegisterBuffer(regBuffer); + // Creating a raw byte buffer to fill with fp regs value + byte[] regBuffer = new byte[totalBufferSize]; + + // Filling the buffer + int regBufferIndex = 0; + for (int i = 0; i < ppc64FloatingPointerRegMap.length; i++) { + int registerSize = ppc64FloatingPointerRegMap[i].getType().getSize(); + byte[] currentRegBuffer = new byte[registerSize]; + task.access(ppc64FloatingPointerRegMap[i], 0, + registerSize, currentRegBuffer, 0, false); + for(int j=0; j < registerSize; j++) { + regBuffer[regBufferIndex] = currentRegBuffer[j]; + regBufferIndex++; + } + } - // Write it - nhdrEntry.setNhdrDesc(ElfNhdrType.NT_FPREGSET, fpRegSet); - } + // Write FP Register info over wholesae. Do not interpret. + fpRegSet.setFPRegisterBuffer(regBuffer); - /* (non-Javadoc) + // Write it + nhdrEntry.setNhdrDesc(ElfNhdrType.NT_FPREGSET, fpRegSet); + } + + /*F(non-Javadoc) * @see frysk.util.LinuxElfCorefile#writeNotePRXFPRegset(lib.dwfl.ElfNhdr, frysk.proc.Task) */ protected boolean writeNotePRXFPRegset(ElfNhdr nhdrEntry, Task task) { diff --git a/frysk-core/frysk/util/TestFCore.java b/frysk-core/frysk/util/TestFCore.java index 1cc29d7..9b32905 100644 --- a/frysk-core/frysk/util/TestFCore.java +++ b/frysk-core/frysk/util/TestFCore.java @@ -236,7 +236,8 @@ public class TestFCore // Get the live process register banks and store them ByteBuffer liveRegisterMaps[] = mainLiveTask.getRegisterBuffersFIXME(); - byte[] liveRegBuffer = new byte[(int) liveRegisterMaps[0].capacity()]; + long bankSize = liveRegisterMaps[0].capacity(); + byte[] liveRegBuffer = new byte[(int)bankSize]; liveRegisterMaps[0].get(0,liveRegBuffer,0,(int) liveRegisterMaps[0].capacity()); // Create a corefile from process @@ -274,6 +275,11 @@ public class TestFCore public void testFloatingPointRegisters () { + // PowerPc doesnt have a bank for Floating Point registers + // this registers are with all others in the main bank + if (unresolvedOnPPC(4890)) + return; + // Construct a process Proc ackProc = giveMeABlockedProc(); assertNotNull("Found Process",ackProc); diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index fcea6d1..d194c16 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Jose Flavio Aguilar Paulino + + * cni/Ptrace.cxx: Add PowerPC single register bank access + (its size and parammeter to access register). + 2007-11-15 Andrew Cagney * Errno.java (Errno()): Delete. diff --git a/frysk-sys/frysk/sys/cni/Ptrace.cxx b/frysk-sys/frysk/sys/cni/Ptrace.cxx index fc08d63..5959eb3 100644 --- a/frysk-sys/frysk/sys/cni/Ptrace.cxx +++ b/frysk-sys/frysk/sys/cni/Ptrace.cxx @@ -76,7 +76,7 @@ op_as_string (int op) OP(PTRACE_SINGLESTEP); OP(PTRACE_CONT); OP(PTRACE_SYSCALL); -#if defined(__i386__)|| defined(__x86_64__) +#if defined(__i386__) || defined(__x86_64__) OP(PTRACE_GETREGS); OP(PTRACE_SETREGS); OP(PTRACE_GETFPREGS); @@ -207,6 +207,10 @@ frysk::sys::Ptrace$RegisterSet::regs () #if defined(__i386__)|| defined(__x86_64__) return new frysk::sys::Ptrace$RegisterSet (sizeof (user_regs_struct), PTRACE_GETREGS, PTRACE_SETREGS); +#elif defined(__powerpc64__) + /* PowerPc single register bank which holds ALL registers (of all kinds) */ + return new frysk::sys::Ptrace$RegisterSet (sizeof(mcontext_t), + PTRACE_PEEKUSR , PTRACE_POKEUSR); #else return NULL; #endif @@ -219,6 +223,10 @@ frysk::sys::Ptrace$RegisterSet::fpregs () return new frysk::sys::Ptrace$RegisterSet (sizeof(user_fpregs_struct), PTRACE_GETFPREGS, PTRACE_SETFPREGS); +#elif defined(__powerpc64__) + /* PowerPC has a single register bank (by ptrace) and it hold all + registers, even the floating pointer ones, special and vector regs */ + return NULL; #else return NULL; #endif hooks/post-receive -- frysk system monitor/debugger From moore@sourceware.org Wed Nov 28 17:03:00 2007 From: moore@sourceware.org (moore@sourceware.org) Date: Wed, 28 Nov 2007 17:03:00 -0000 Subject: [SCM] master: More while loops around wait() calls Message-ID: <20071128170304.3426.qmail@sourceware.org> The branch, master has been updated via 06c524cb3ec657e014e7aa1d796a9f5945fc3093 (commit) from 0d030927ffff2842d7175af81a37b725c7842fc4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 06c524cb3ec657e014e7aa1d796a9f5945fc3093 Author: Tim Moore Date: Wed Nov 28 17:58:21 2007 +0100 More while loops around wait() calls frysk-core/frysk/event/ChangeLog 2007-11-28 Tim Moore * EventLoop.java (run, start, running) Loop around the wait, testing the state of the running object. frysk-core/frysk/util/ChangeLog 2007-11-28 Tim Moore * TestCountDownLatch.java (testTimeout): wrap time out await in while loop. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/event/ChangeLog | 5 +++++ frysk-core/frysk/event/EventLoop.java | 20 +++++++++++++------- frysk-core/frysk/util/ChangeLog | 5 +++++ frysk-core/frysk/util/TestCountDownLatch.java | 12 ++++++++++-- 4 files changed, 33 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/event/ChangeLog b/frysk-core/frysk/event/ChangeLog index 9cfcd38..4eb7b01 100644 --- a/frysk-core/frysk/event/ChangeLog +++ b/frysk-core/frysk/event/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Tim Moore + + * EventLoop.java (run, start, running) Loop around the wait, + testing the state of the running object. + 2007-11-27 Tim Moore * Request.java (Handler.execute, Handler.request): Wait inside a diff --git a/frysk-core/frysk/event/EventLoop.java b/frysk-core/frysk/event/EventLoop.java index 365f2d9..bf62450 100644 --- a/frysk-core/frysk/event/EventLoop.java +++ b/frysk-core/frysk/event/EventLoop.java @@ -473,6 +473,10 @@ public abstract class EventLoop * existing pending events are always processed before performing * the first poll. */ + private class Running { + boolean isRunning = false; + } + public final void run () { logger.log (Level.FINE, "{0} run\n", this); @@ -480,6 +484,7 @@ public abstract class EventLoop // running. synchronized (running) { updateTid(); + running.isRunning = true; running.notify(); } runEventLoop (false); @@ -495,15 +500,16 @@ public abstract class EventLoop setDaemon(true); super.start(); // Make certain that the server really is running. - try { - running.wait(); - } - catch (InterruptedException ie) { - throw new RuntimeException (ie); - } + while (!running.isRunning) { + try { + running.wait(); + } + catch (InterruptedException ie) { + } + } } } - private Object running = new Object(); + private Running running = new Running(); /** diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 24e3eb0..d8feb8e 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Tim Moore + + * TestCountDownLatch.java (testTimeout): wrap time out await in + while loop. + 2007-11-28 Jose Flavio Aguilar Paulino * PPC64LinuxElfCorefile.java: Fixed the floating pointer diff --git a/frysk-core/frysk/util/TestCountDownLatch.java b/frysk-core/frysk/util/TestCountDownLatch.java index 61b687a..3535d02 100644 --- a/frysk-core/frysk/util/TestCountDownLatch.java +++ b/frysk-core/frysk/util/TestCountDownLatch.java @@ -77,6 +77,14 @@ public class TestCountDownLatch Thread thread2 = new CountDownThread(); thread1.start(); thread2.start(); - assertEquals("timeout", latch.await(1000), false); + boolean timedOut = false; + while (true) { + try { + timedOut = latch.await(1000); + break; + } catch (InterruptedException e) { + } + } + assertEquals("timeout", timedOut, false); } -} \ No newline at end of file +} hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Wed Nov 28 18:07:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Wed, 28 Nov 2007 18:07:00 -0000 Subject: [SCM] master: swagiaal: Removed frame requirement from LocationExpression constructor Message-ID: <20071128180732.9646.qmail@sourceware.org> The branch, master has been updated via 83b71d8dbfed32527d4bace5f13fb7827fcff409 (commit) from 06c524cb3ec657e014e7aa1d796a9f5945fc3093 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 83b71d8dbfed32527d4bace5f13fb7827fcff409 Author: Sami Wagiaalla Date: Wed Nov 28 10:42:40 2007 -0500 swagiaal: Removed frame requirement from LocationExpression constructor frysk-core/frysk/debuginfo/ChangeLog +2007-11-28 Sami Wagiaalla + + * LocationExpression.java: Removed frame requirement from constructor + to be passed as an argument to decoding functions. + * TestAddress.java: Updated. + * TestLocationExpression.java: Updated. + frysk-core/frysk/value/ChangeLog +2007-11-28 Sami Wagiaalla + + LocationExpression.java: Removed frame requirement from constructor + to be passed as an argument to decoding functions. + * Variable.java: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 7 ++ frysk-core/frysk/debuginfo/LocationExpression.java | 68 ++++++++------------ frysk-core/frysk/debuginfo/TestAddress.java | 9 ++- .../frysk/debuginfo/TestLocationExpression.java | 4 +- frysk-core/frysk/value/ChangeLog | 6 ++ frysk-core/frysk/value/Variable.java | 4 +- 6 files changed, 50 insertions(+), 48 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 63a81b7..1308ae6 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,10 @@ +2007-11-28 Sami Wagiaalla + + * LocationExpression.java: Removed frame requirement from constructor + to be passed as an argument to decoding functions. + * TestAddress.java: Updated. + * TestLocationExpression.java: Updated. + 2007-11-26 Sami Wagiaalla Added a boolean for printing source libraries to Frame.toPrint(). diff --git a/frysk-core/frysk/debuginfo/LocationExpression.java b/frysk-core/frysk/debuginfo/LocationExpression.java index 48c9258..b1e3d81 100644 --- a/frysk-core/frysk/debuginfo/LocationExpression.java +++ b/frysk-core/frysk/debuginfo/LocationExpression.java @@ -39,48 +39,43 @@ package frysk.debuginfo; -import java.lang.Math; - -import java.util.LinkedList; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; -import frysk.isa.ISA; -import frysk.isa.Register; -import frysk.stack.Frame; +import lib.dwfl.DwAt; +import lib.dwfl.DwOp; import lib.dwfl.DwarfDie; import lib.dwfl.DwarfOp; -import lib.dwfl.DwOp; -import lib.dwfl.DwAt; +import frysk.isa.Register; +import frysk.isa.RegisterMap; +import frysk.stack.Frame; public class LocationExpression { public final static int locationTypeRegDisp = 1, locationTypeAddress = 2, locationTypeReg = 3; - private final Frame frame; DwarfDie die; List ops; int locationType; LinkedList stack; - private final ISA isa; - public LocationExpression(Frame frame, DwarfDie die, List ops) { + public LocationExpression(DwarfDie die, List ops) { locationType = 0; - this.frame = frame; this.die = die; this.ops = ops; this.stack = null; - this.isa = frame.getTask().getISA(); } /** * Decode a location list and return the value. * */ - public long decode () { + public long decode (Frame frame) { stack = new LinkedList(); int nops = ops.size(); - + RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()); + if (nops == 0) if (die.getAttrBoolean(DwAt.LOCATION)) throw new VariableOptimizedOutException(); @@ -162,8 +157,7 @@ public class LocationExpression { case DwOp.REG31_: if (locationType == 0) locationType = locationTypeReg; - Register register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister(operator - DwOp.REG0_); + Register register = registerMap.getRegister(operator - DwOp.REG0_); long regval = frame.getRegister(register); stack.addFirst(new Long(regval)); break; @@ -201,16 +195,14 @@ public class LocationExpression { case DwOp.BREG30_: case DwOp.BREG31_: locationType = locationTypeRegDisp; - register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister(operator - DwOp.BREG0_); + register = registerMap.getRegister(operator - DwOp.BREG0_); regval = frame.getRegister(register); stack.addFirst(new Long(operand1 + regval)); break; case DwOp.REGX_: - register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister((int)operand1); + register = registerMap.getRegister((int)operand1); regval = frame.getRegister(register); stack.addFirst(new Long(regval)); break; @@ -224,8 +216,8 @@ public class LocationExpression { case DwOp.FBREG_: locationType = locationTypeRegDisp; long pc = frame.getAdjustedAddress(); - LocationExpression frameBaseOps = new LocationExpression (frame, die, die.getFrameBase(pc)); - stack.addFirst(new Long(operand1 + frameBaseOps.decode())); + LocationExpression frameBaseOps = new LocationExpression (die, die.getFrameBase(pc)); + stack.addFirst(new Long(operand1 + frameBaseOps.decode(frame))); break; // ??? unsigned not properly handled (use bignum?) See DwarfDie.java @@ -408,11 +400,11 @@ public class LocationExpression { * @param size - Size of variable * @return List of memory or register pieces */ - public List decode (int size) + public List decode (Frame frame, int size) { stack = new LinkedList(); int nops = ops.size(); - + RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()); //pieces will contain a list of MemoryPiece, RegisterPiece or UnavaiablePiece ArrayList pieces = new ArrayList(); @@ -501,8 +493,7 @@ public class LocationExpression { case DwOp.REG31_: if (locationType == 0) locationType = locationTypeReg; - Register register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister(operator - DwOp.REG0_); + Register register = registerMap.getRegister(operator - DwOp.REG0_); // Push the register onto the dwfl stack stack.addFirst(register); break; @@ -540,8 +531,7 @@ public class LocationExpression { case DwOp.BREG30_: case DwOp.BREG31_: locationType = locationTypeRegDisp; - register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister(operator - DwOp.BREG0_); + register = registerMap.getRegister(operator - DwOp.BREG0_); long regval = frame.getRegister(register); stack.addFirst(new Long(operand1 + regval)); break; @@ -549,15 +539,13 @@ public class LocationExpression { case DwOp.REGX_: if (locationType == 0) locationType = locationTypeReg; - register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister((int)operand1); + register = registerMap.getRegister((int)operand1); stack.addFirst(register); break; case DwOp.BREGX_: locationType = locationTypeRegDisp; - register = DwarfRegisterMapFactory.getRegisterMap(isa) - .getRegister((int)operand1); + register = registerMap.getRegister((int)operand1); regval = frame.getRegister(register); stack.addFirst(new Long(operand2 + regval)); break; @@ -571,8 +559,8 @@ public class LocationExpression { case DwOp.FBREG_: locationType = locationTypeRegDisp; long pc = frame.getAdjustedAddress(); - LocationExpression frameBaseOps = new LocationExpression (frame, die, die.getFrameBase(pc)); - stack.addFirst(new Long(operand1 + frameBaseOps.decode())); + LocationExpression frameBaseOps = new LocationExpression (die, die.getFrameBase(pc)); + stack.addFirst(new Long(operand1 + frameBaseOps.decode(frame))); break; // ??? unsigned not properly handled (use bignum?) See DwarfDie.java @@ -760,7 +748,7 @@ public class LocationExpression { break; } // Otherwise, check the type of element on stack top and add to list - addToList (pieces, operand1); + addToList (frame, pieces, operand1); break; default: @@ -774,7 +762,7 @@ public class LocationExpression { */ if (pieces.isEmpty()) { - addToList (pieces, size); + addToList (frame, pieces, size); } return pieces; @@ -784,7 +772,7 @@ public class LocationExpression { * Function that checks the type of element on the stack top and adds it to the * list of location */ - private void addToList (List pieces, long size) + private void addToList (Frame frame, List pieces, long size) { /* * If stackTop is a Register, add it as a RegisterPiece to list pieces @@ -803,13 +791,13 @@ public class LocationExpression { * Return register number for a one entry DW_OP_regX location list * */ - public Register getRegisterNumber () { + public Register getRegisterNumber (Frame frame) { if (ops.size() == 1) { int operator = ((DwarfOp) ops.get(0)).operator; if (operator >= DwOp.REG0_ || operator <= DwOp.REG31_) { locationType = locationTypeReg; - return DwarfRegisterMapFactory.getRegisterMap(isa) + return DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()) .getRegister(operator - DwOp.REG0_); } } diff --git a/frysk-core/frysk/debuginfo/TestAddress.java b/frysk-core/frysk/debuginfo/TestAddress.java index 4e8ce65..e2c55d8 100644 --- a/frysk-core/frysk/debuginfo/TestAddress.java +++ b/frysk-core/frysk/debuginfo/TestAddress.java @@ -86,8 +86,8 @@ public class TestAddress Variable var = (Variable) declarationSearchEngine.getVariable(variable); DwarfDie varDie = var.getVariableDie(); List ops = varDie.getFormData(frame.getAdjustedAddress()); - LocationExpression locExpr = new LocationExpression(frame, varDie, ops); - PieceLocation loc = new PieceLocation(locExpr.decode(var.getType + LocationExpression locExpr = new LocationExpression(varDie, ops); + PieceLocation loc = new PieceLocation(locExpr.decode(frame,var.getType (frame.getTask().getISA()).getSize())); /* Get the value of the address. @@ -95,8 +95,9 @@ public class TestAddress Variable addr = (Variable) declarationSearchEngine.getVariable(address); DwarfDie addrDie = addr.getVariableDie(); List opsAddr = addrDie.getFormData(frame.getAdjustedAddress()); - LocationExpression locExprAddr = new LocationExpression(frame, addrDie, opsAddr); - PieceLocation p = new PieceLocation(locExprAddr.decode(addr.getType + LocationExpression locExprAddr = new LocationExpression( + addrDie, opsAddr); + PieceLocation p = new PieceLocation(locExprAddr.decode(frame, addr.getType (frame.getTask().getISA()).getSize())); Value addrVal = new Value(addr.getType(frame.getTask().getISA()), p); diff --git a/frysk-core/frysk/debuginfo/TestLocationExpression.java b/frysk-core/frysk/debuginfo/TestLocationExpression.java index cbb52e3..271a3ff 100644 --- a/frysk-core/frysk/debuginfo/TestLocationExpression.java +++ b/frysk-core/frysk/debuginfo/TestLocationExpression.java @@ -396,8 +396,8 @@ public class TestLocationExpression Task task = getStoppedTask(); Frame frame = StackFactory.createFrame(task); - LocationExpression locExp = new LocationExpression(frame, die, ops); - List loc = locExp.decode(12); + LocationExpression locExp = new LocationExpression(die, ops); + List loc = locExp.decode(frame,12); assertEquals ("Stack size", stackSize, locExp.getStackSize()); compareLocations (loc, expectedLoc); diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index aac4a06..39b20b5 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,9 @@ +007-11-28 Sami Wagiaalla + + LocationExpression.java: Removed frame requirement from constructor + to be passed as an argument to decoding functions. + * Variable.java: Updated. + 2007-11-27 Teresa Thomas * PointerType.java (toPrint): Add type printing. diff --git a/frysk-core/frysk/value/Variable.java b/frysk-core/frysk/value/Variable.java index c8050f6..dc51ff3 100644 --- a/frysk-core/frysk/value/Variable.java +++ b/frysk-core/frysk/value/Variable.java @@ -141,9 +141,9 @@ public class Variable extends ObjectDeclaration{ public Value getValue(DebugInfoFrame frame) { List ops = variableDie.getFormData(frame.getAdjustedAddress()); ISA isa = frame.getTask().getISA(); - LocationExpression locationExpression = new LocationExpression(frame, variableDie, ops); + LocationExpression locationExpression = new LocationExpression(variableDie, ops); PieceLocation pieceLocation - = new PieceLocation(locationExpression.decode(this.getType(isa) + = new PieceLocation(locationExpression.decode(frame, this.getType(isa) .getSize())); Value value = new Value(this.getType(isa), pieceLocation); return value; hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Nov 28 21:40:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 28 Nov 2007 21:40:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071128214039.4506.qmail@sourceware.org> The branch, master has been updated via 1e71dcb17fdefb823eeef9a67f0e27f616e86882 (commit) via 38af65fc3da29c49822aeb2ef885f6ceb80aa2ae (commit) from 83b71d8dbfed32527d4bace5f13fb7827fcff409 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1e71dcb17fdefb823eeef9a67f0e27f616e86882 Merge: 38af65fc3da29c49822aeb2ef885f6ceb80aa2ae 83b71d8dbfed32527d4bace5f13fb7827fcff409 Author: Jose Flavio Aguilar Paulino Date: Wed Nov 28 19:40:22 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 38af65fc3da29c49822aeb2ef885f6ceb80aa2ae Author: Jose Flavio Aguilar Paulino Date: Wed Nov 28 19:39:40 2007 -0200 Adding test values Registers and added Power32/64 to factory. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 4 + frysk-core/frysk/isa/RegistersFactory.java | 2 + .../proc/live/PtraceRegisterBanksFactory.java | 3 +- frysk-core/frysk/testbed/ChangeLog | 4 + frysk-core/frysk/testbed/RegsCase.java | 84 +++++++++++++++++++- 5 files changed, 94 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index f467b7c..09245ef 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,7 @@ +2007-11-28 Jose Flavio Aguilar Paulino + + * RegistersFactory.java: Adding Power32/64 registers to factory. + 2007-11-26 Andrew Cagney * X8664Registers.java (XMM0, ..., XMM15): Delete. diff --git a/frysk-core/frysk/isa/RegistersFactory.java b/frysk-core/frysk/isa/RegistersFactory.java index 4ced9a8..31cf74f 100644 --- a/frysk-core/frysk/isa/RegistersFactory.java +++ b/frysk-core/frysk/isa/RegistersFactory.java @@ -48,6 +48,8 @@ public class RegistersFactory { = new ISAMap("RegistersFactory") .put(ISA.IA32, new IA32Registers()) .put(ISA.X8664, new X8664Registers()) + .put(ISA.PPC32BE, new PPC32Registers()) + .put(ISA.PPC64BE, new PPC64Registers()) ; static public Registers getRegisters(ISA isa) { return (Registers)isaToRegisters.get(isa); diff --git a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java index 74232f0..75aeed9 100644 --- a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java @@ -84,14 +84,13 @@ class PtraceRegisterBanksFactory { private static ByteBuffer[] ppcBanksBE(int pid) { ByteBuffer[] bankBuffers = new ByteBuffer[] { - new RegisterSetByteBuffer(pid, RegisterSet.REGS), new AddressSpaceByteBuffer(pid, AddressSpace.USR) }; for (int i = 0; i < bankBuffers.length; i++) { bankBuffers[i].order(ByteOrder.BIG_ENDIAN); } - + System.out.println("Usr Addr Space Size: " + bankBuffers[0].capacity()); return bankBuffers; } diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 01c6bb7..56ba41e 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,7 @@ +2007-11-28 Jose Flavio Aguilar Paulino + + * RegsCase.java: Add the PowerPC32 general purpose register values. + 2007-11-12 Andrew Cagney * DaemonBlockedAtSignal.java (DaemonBlockedAtSignal(File)): New. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 2078cff..6521e2b 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -43,6 +43,8 @@ import java.util.Map.Entry; import frysk.isa.Register; import frysk.isa.IA32Registers; import frysk.isa.X8664Registers; +import frysk.isa.PPC32Registers; +import frysk.isa.PPC64Registers; import frysk.isa.ISA; import frysk.isa.ISAMap; import frysk.proc.Task; @@ -347,7 +349,87 @@ public abstract class RegsCase extends TestLib { .put(X8664Registers.RIP, "crash") ; + private Values PPC32 = new Values() + .put(PPC32Registers.GPR0, + new byte[] { (byte)0xa3,(byte)0x9c,0x20,(byte)0x08 }) + .put(PPC32Registers.GPR1, + new byte[] { (byte)0x3a,(byte)0x82,0x27,(byte)0xf1 }) + .put(PPC32Registers.GPR2, + new byte[] { (byte)0x1b,(byte)0x12,(byte)0xa0,(byte)0xa2 }) + .put(PPC32Registers.GPR3, + new byte[] { (byte)0xe2,(byte)0xab,(byte)0xff,(byte)0xcc }) + .put(PPC32Registers.GPR4, + new byte[] { (byte)0xc4,(byte)0x46,(byte)0xeb,(byte)0xf1 }) + .put(PPC32Registers.GPR5, + new byte[] { (byte)0xa9,(byte)0x94,0x2a,(byte)0x4e }) + .put(PPC32Registers.GPR6, + new byte[] { (byte)0x55,(byte)0xa2,(byte)0x92,(byte)0x51 }) + .put(PPC32Registers.GPR7, + new byte[] { (byte)0x4f,(byte)0x61,0x6e,(byte)0xf2 }) + .put(PPC32Registers.GPR8, + new byte[] { (byte)0xf1,(byte)0x76,(byte)0xef,(byte)0x4d }) + .put(PPC32Registers.GPR9, + new byte[] { (byte)0xdf,(byte)0xac,0x22,(byte)0x56 }) + .put(PPC32Registers.GPR10, + new byte[] { (byte)0xad,(byte)0x1a,(byte)0x8a,(byte)0x99 }) + .put(PPC32Registers.GPR11, + new byte[] { (byte)0x11,(byte)0x2e,(byte)0x88,(byte)0xab }) + .put(PPC32Registers.GPR12, + new byte[] { (byte)0xf7,(byte)0xfc,(byte)0xd1,(byte)0xf2 }) + .put(PPC32Registers.GPR13, + new byte[] { (byte)0x88,(byte)0x3e,(byte)0xf1,(byte)0x01 }) + .put(PPC32Registers.GPR14, + new byte[] { (byte)0xef,(byte)0x2e,0x26,(byte)0x91 }) + .put(PPC32Registers.GPR15, + new byte[] { (byte)0x9c,(byte)0x1a,(byte)0x6e,(byte)0xe1 }) + .put(PPC32Registers.GPR16, + new byte[] { (byte)0x20,(byte)0x0d,0x11,(byte)0x34 }) + .put(PPC32Registers.GPR17, + new byte[] { (byte)0x63,(byte)0x4b,(byte)0x99,(byte)0x11 }) + .put(PPC32Registers.GPR18, + new byte[] { (byte)0xd8,(byte)0x9b,(byte)0xde,(byte)0x81 }) + .put(PPC32Registers.GPR19, + new byte[] { (byte)0x6e,(byte)0x6e,(byte)0xf9,(byte)0xba }) + .put(PPC32Registers.GPR20, + new byte[] { (byte)0x55,(byte)0x51,(byte)0xaa,(byte)0xc3 }) + .put(PPC32Registers.GPR21, + new byte[] { (byte)0x12,(byte)0x9c,(byte)0x72,(byte)0x3e }) + .put(PPC32Registers.GPR22, + new byte[] { (byte)0x29,(byte)0x9c,(byte)0x77,(byte)0x33 }) + .put(PPC32Registers.GPR23, + new byte[] { (byte)0x31,(byte)0x9c,0x20,(byte)0x44 }) + .put(PPC32Registers.GPR24, + new byte[] { (byte)0xf3,(byte)0x9c,0x45,(byte)0xbb }) + .put(PPC32Registers.GPR25, + new byte[] { (byte)0x10,(byte)0x9c,(byte)0x92,(byte)0xfa }) + .put(PPC32Registers.GPR26, + new byte[] { (byte)0xe4,(byte)0x9c,(byte)0xbc,(byte)0xd8 }) + .put(PPC32Registers.GPR27, + new byte[] { (byte)0x39,(byte)0x9c,(byte)0xe5,(byte)0xc6 }) + .put(PPC32Registers.GPR28, + new byte[] { (byte)0x43,(byte)0x9c,(byte)0x4a,(byte)0x99 }) + .put(PPC32Registers.GPR29, + new byte[] { (byte)0xd7,(byte)0x9c,0x44,(byte)0x01 }) + .put(PPC32Registers.GPR30, + new byte[] { (byte)0x62,(byte)0x9c,0x09,(byte)0xeb }) + .put(PPC32Registers.GPR31, + new byte[] { (byte)0x42,(byte)0x9c,0x78,(byte)0xa1 }) + + .put(PPC32Registers.FPR0, + new byte[] { (byte)0xa3,(byte)0x9c,0x20,(byte)0xd8, + (byte)0xe2,(byte)0xb4,0x7b,(byte)0x83 }) + ; + + private Values PPC64 = new Values() + .put(PPC64Registers.GPR0, // 0x837bb4e2d8209ca3 + new byte[] { (byte)0xa3,(byte)0x9c,0x20,(byte)0xd8, + (byte)0xe2,(byte)0xb4,0x7b,(byte)0x83 }) + ; + private final ISAMap isaValues = new ISAMap("RegsCase") - .put(ISA.IA32, IA32).put(ISA.X8664, X8664) + .put(ISA.IA32, IA32) + .put(ISA.X8664, X8664) + .put(ISA.PPC32BE, PPC32) + .put(ISA.PPC64BE, PPC64) ; } hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Wed Nov 28 22:01:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Wed, 28 Nov 2007 22:01:00 -0000 Subject: [SCM] master: Add dynamic array types to funit-address. Message-ID: <20071128220110.12000.qmail@sourceware.org> The branch, master has been updated via 74d6f72347b4ddd28315728a507de7215f3d11c0 (commit) via 1e4fb52a6de8676091de06750e82b78ce64c69ba (commit) via 0748ad52a7271e7f6b929f6661b99061bebca519 (commit) from 1e71dcb17fdefb823eeef9a67f0e27f616e86882 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 74d6f72347b4ddd28315728a507de7215f3d11c0 Author: Teresa Thomas Date: Wed Nov 28 16:56:08 2007 -0500 Add dynamic array types to funit-address. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-28 Teresa Thomas * funit-addresses.c (dynamicOneD): New (dynamicTwoD): New. commit 1e4fb52a6de8676091de06750e82b78ce64c69ba Author: Teresa Thomas Date: Wed Nov 28 16:48:37 2007 -0500 Clean up PieceLocation. frysk-core/frysk/debuginfo/ChangeLog 2007-11-28 Teresa Thomas * TestPieceLocation.java (testMapping): Delete - redundant test. * PieceLocation.java (indexOf): Make private, Throw exception on failure. (pieceOf): Ditto. commit 0748ad52a7271e7f6b929f6661b99061bebca519 Author: Teresa Thomas Date: Wed Nov 28 16:43:16 2007 -0500 Re-write slice for pointers, simplify. frysk-core/frysk/value/ChangeLog 2007-11-28 Teresa Thomas * PointerType.java (slice): Re-write. * ArrayType.java (slice): Remove FIX-ME comment. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 10 ++++++- frysk-core/frysk/debuginfo/PieceLocation.java | 10 +++--- frysk-core/frysk/debuginfo/TestPieceLocation.java | 10 ------ frysk-core/frysk/pkglibdir/ChangeLog | 5 +++ frysk-core/frysk/pkglibdir/funit-addresses.c | 23 ++++++++++++++- frysk-core/frysk/value/ArrayType.java | 6 +-- frysk-core/frysk/value/ChangeLog | 7 ++++- frysk-core/frysk/value/PointerType.java | 32 +++++--------------- 8 files changed, 57 insertions(+), 46 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 1308ae6..10c7918 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,5 +1,13 @@ -2007-11-28 Sami Wagiaalla +2007-11-28 Teresa Thomas + * TestPieceLocation.java (testMapping): Delete - redundant + test. + * PieceLocation.java (indexOf): Make private, Throw + exception on failure. + (pieceOf): Ditto. + +2007-11-28 Sami Wagiaalla + * LocationExpression.java: Removed frame requirement from constructor to be passed as an argument to decoding functions. * TestAddress.java: Updated. diff --git a/frysk-core/frysk/debuginfo/PieceLocation.java b/frysk-core/frysk/debuginfo/PieceLocation.java index c356dfa..6f888fb 100644 --- a/frysk-core/frysk/debuginfo/PieceLocation.java +++ b/frysk-core/frysk/debuginfo/PieceLocation.java @@ -103,7 +103,7 @@ extends Location * @param offset - overall byte offset of value * @return - piece index */ - protected long indexOf(long offset) + private long indexOf(long offset) { // indexCount will be set to contain the overall byte index of // first byte of every piece. @@ -125,7 +125,7 @@ extends Location else indexCount += len; } - return -1; + throw new RuntimeException("Index out of range for offset " + offset); } /** @@ -134,7 +134,7 @@ extends Location * @param offset - overall byte offset of value * @return - piece that contains the byte at OFFSET */ - protected Piece pieceOf(long offset) + private Piece pieceOf(long offset) { // indexCount will be set to contain the overall byte // index of first byte of every piece. @@ -148,14 +148,14 @@ extends Location if ( offset >= indexCount && offset < indexCount+len ) { // If condition will satisfy if (overall) offset - //is within current piece. + // is within current piece. return (Piece)o; } else indexCount += len; } - return null; + throw new RuntimeException("Piece out of range for offset " + offset); } /** diff --git a/frysk-core/frysk/debuginfo/TestPieceLocation.java b/frysk-core/frysk/debuginfo/TestPieceLocation.java index 690c232..1ea10c8 100644 --- a/frysk-core/frysk/debuginfo/TestPieceLocation.java +++ b/frysk-core/frysk/debuginfo/TestPieceLocation.java @@ -88,16 +88,6 @@ extends TestLib l = null; } - public void testMapping() - { - // Test for length - assertEquals ("total bytes", l.length(), 15); - - // Test for index and piece mapping - assertEquals("piece index", 1, l.indexOf(6)); - assertEquals("piece", l.getPieces().get(1), l.pieceOf(6)); - } - public void testGetPutByte() { // Test for putByte & getByte of MemoryPiece diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 67dfeab..1706b00 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Teresa Thomas + + * funit-addresses.c (dynamicOneD): New + (dynamicTwoD): New. + 2007-11-26 Teresa Thomas * funit-addresses.c (ptrStrings): New. diff --git a/frysk-core/frysk/pkglibdir/funit-addresses.c b/frysk-core/frysk/pkglibdir/funit-addresses.c index ba02f13..cf057b9 100644 --- a/frysk-core/frysk/pkglibdir/funit-addresses.c +++ b/frysk-core/frysk/pkglibdir/funit-addresses.c @@ -65,12 +65,28 @@ int oneD[] = { 4, 3, 2, 1}; char* string = "hello world"; int* ptr = NULL; char* ptrStrings[] = {"zero", "one", "two", "three"}; +int** dynamicTwoD = NULL; +int* dynamicOneD = NULL; int main(int argc, char* argv[]) { static int static_int = 22; volatile int volatile_int = 33; - register int reg = 5; + register int reg = 5; + int i, k; + + // Dynamically allocated two d array [5][3] + dynamicTwoD = malloc (sizeof (int*) * 5); + for (i=0; i<5; i++) + dynamicTwoD[i] = malloc (sizeof(int) * 3); + // Fill with value 9 + for (i=0; i<5; i++) + for (k=0; k<3; k++) + dynamicTwoD[i][k] = 9; + + dynamicOneD = malloc (sizeof(int) * 3); + for (i =0 ; i<3; i++) + dynamicOneD[i] = 5; static_int_address = &static_int; volatile_int_address = &volatile_int; @@ -82,6 +98,11 @@ int main(int argc, char* argv[]) *(my_cars.audi) = 3; my_cars.lexus = reg; + // Free Dynamic memory + /*for (i = 0; i < 5; i ++) + free(twoDArray[i]); + free(twoDArray);*/ + if (strcmp(argv[1], "loop") == 0) while (1) {} diff --git a/frysk-core/frysk/value/ArrayType.java b/frysk-core/frysk/value/ArrayType.java index 0011ead..c3a38ff 100644 --- a/frysk-core/frysk/value/ArrayType.java +++ b/frysk-core/frysk/value/ArrayType.java @@ -168,11 +168,9 @@ public class ArrayType */ public Value slice (Value v, Value i, Value j, ByteBuffer taskMem) { - int len = (int)(j.asLong() - i.asLong() + 1); - - // FIXME: Allow this case instead of throwing error? + int len = (int)(j.asLong() - i.asLong() + 1); if (len < 0) { - throw new RuntimeException("Error: Index 1 should be less than Index 2"); + throw new RuntimeException("Error: Index 1 should be <= than Index 2"); } // Create a new dimensions list diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index 39b20b5..5c4f559 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,6 +1,11 @@ +2007-11-28 Teresa Thomas + + * PointerType.java (slice): Re-write. + * ArrayType.java (slice): Remove FIX-ME comment. + 007-11-28 Sami Wagiaalla - LocationExpression.java: Removed frame requirement from constructor + * LocationExpression.java: Removed frame requirement from constructor to be passed as an argument to decoding functions. * Variable.java: Updated. diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index 43e5d97..d72c414 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -142,40 +142,24 @@ public class PointerType /** * Slice operation for pointers. - * - * Supports upto 2-dimensional results. */ public Value slice (Value v, Value i, Value j, ByteBuffer taskMem) { // Evaluate length and offset of slice. long offset = v.asLong() + i.asLong()*type.getSize(); - int len = (int)(j.asLong() - i.asLong() + 1)*type.getSize(); + int len = (int)(j.asLong() - i.asLong() + 1); + if (len < 0) { + throw new RuntimeException("Error: Index 1 should be <= than Index 2"); + } // Create a simple memory location with it. Location loc = PieceLocation.createSimpleLoc - (offset, len, taskMem); - - /* Determine return type. - * Note: Slicing can give one-D or multi-D results - * depending on the type of value being pointed to. - */ + (offset, len*type.getSize(), taskMem); ArrayList dims = new ArrayList(); - // Set default return type as type of value being - // pointed to. - Type resultType = type; - - // When length of slice calculated is greater than type's - // size, result will be an array. - if (len > type.getSize()) - { - dims.add(new Integer(len/type.getSize()-1)); - // Create 2-d arrays in case of ptrs to ptrs or arrays. - if (type instanceof PointerType || type instanceof ArrayType) - dims.add(new Integer(len-1)); - resultType = new ArrayType(type, len, dims); - } - + dims.add(new Integer(len-1)); + Type resultType = new ArrayType(type, len*type.getSize(), dims); + return new Value (resultType, loc); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Nov 28 23:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 28 Nov 2007 23:25:00 -0000 Subject: [SCM] master: Add unresolvedOnIA32. Message-ID: <20071128232534.10151.qmail@sourceware.org> The branch, master has been updated via ee243016c11937ddbfb0ba23e0f6f4376708998a (commit) via a4318dcbb637d8132ead4c532eb8b10b916ab3b4 (commit) via a0aa5a60c75b9b6320004d377fa2eac17897aa5e (commit) via a3e8d9a0e3d86f29829fa744f2654f03f500340c (commit) via bfbd92b051f6da2597be8f50b1623c447a8f1023 (commit) from 74d6f72347b4ddd28315728a507de7215f3d11c0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ee243016c11937ddbfb0ba23e0f6f4376708998a Author: Andrew Cagney Date: Wed Nov 28 18:18:19 2007 -0500 Add unresolvedOnIA32. frysk-core/frysk/testbed/ChangeLog 2007-11-28 Andrew Cagney * TestRegs.java (testGeneralRegistersPresent()): Rename testDefaultRegistersPresent. frysk-sys/frysk/junit/ChangeLog 2007-11-28 Andrew Cagney * TestCase.java (unresolvedOnIA32(int)): New. commit a4318dcbb637d8132ead4c532eb8b10b916ab3b4 Author: Andrew Cagney Date: Wed Nov 28 17:59:19 2007 -0500 Rename Registers.getDefaultRegisterGroup to getGeneralRegisterGroup. frysk-core/frysk/hpd/ChangeLog 2007-11-28 Andrew Cagney * RegsCommand.java: Update; Registers .getDefaultRegisterGroup renamed to getGeneralRegisterGroup. frysk-core/frysk/isa/ChangeLog 2007-11-28 Andrew Cagney * TestRegisters.java (testGeneralRegisterGroup()): Rename testDefaultRegisterGroup. * Registers.java (getGeneralRegisterGroup()): Rename getDefaultRegisterGroup. frysk-core/frysk/testbed/ChangeLog 2007-11-28 Andrew Cagney * RegsCase.java (testGeneralRegisters()): Rename testDefaultRegisters. commit a0aa5a60c75b9b6320004d377fa2eac17897aa5e Author: Andrew Cagney Date: Wed Nov 28 17:45:05 2007 -0500 Split integer, floating-point, and vector tests. frysk-core/frysk/testbed/ChangeLog 2007-11-28 Andrew Cagney * RegsCase.java (testDefaultRegisters()): New. (testFloatRegisters()): New; unresolved on IA32 and X86-64. (testVectorRegisters()): New; ditto. (checkRegisterGroup()): New. (Values.get(Register)): New. commit a3e8d9a0e3d86f29829fa744f2654f03f500340c Author: Andrew Cagney Date: Wed Nov 28 17:20:04 2007 -0500 Add IA-32 floating-point and vector register test values. frysk-core/frysk/isa/ChangeLog 2007-11-28 Andrew Cagney * X87Registers.java (FSW): Fix typo in name. * TestRegisters.java (testGetGroupNames()): Fix group order. (testAllRegistersGroup()): Delete. * IA32Registers.java (REGS_GROUP): Fix name. frysk-core/frysk/testbed/ChangeLog 2007-11-28 Andrew Cagney * RegsCase.java (IA32): Add floating-point and vector registers. commit bfbd92b051f6da2597be8f50b1623c447a8f1023 Author: Andrew Cagney Date: Wed Nov 28 13:35:41 2007 -0500 Add floating-point and vector registers to frysk.testbed.TestRegs. frysk-core/frysk/isa/ChangeLog 2007-11-28 Andrew Cagney * Registers.java (getVectorRegisterGroup()): New. (getFloatRegisterGroup()): New. (getDefaultRegisterGroup()): Make concrete. (getAllRegistersGroup()): Make concrete. * IA32Registers.java (REGS_GROUP): Rename GENERAL. (ALL_GROUP): Delete. (getDefaultRegisterGroup()): Delete. (getAllRegistersGroup()): Delete. (SEGMENT_GROUP): Rename SEGMENT. * X8664Registers.java (REGS_GROUP): Rename GENERAL. (ALL_GROUP): Delete. (getDefaultRegisterGroup()): Delete. (getAllRegistersGroup()): Delete. * X87Registers.java (FLOAT32_GROUP): Rename FLOAT32. (FLOAT64_GROUP): Rename FLOAT64. (VECTOR32_GROUP): Rename VECTOR32. (VECTOR64_GROUP): Rename VECTOR64. * TestRegisters.java: Update. (testAllRegisterGroup()): Change to fail. frysk-core/frysk/testbed/ChangeLog 2007-11-27 Andrew Cagney * RegsCase.java (testAccessRegisterRead()): Remove unresolved on X86-64, bug 5195. * TestRegs.java (testFloatRegistersPresent()): New. (testVectorRegistersPresent()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 + frysk-core/frysk/hpd/RegsCommand.java | 2 +- frysk-core/frysk/isa/ChangeLog | 32 +++++++ frysk-core/frysk/isa/IA32Registers.java | 47 +++------- frysk-core/frysk/isa/Registers.java | 23 ++++- frysk-core/frysk/isa/TestRegisters.java | 18 ++--- frysk-core/frysk/isa/X8664Registers.java | 33 +++----- frysk-core/frysk/isa/X87Registers.java | 14 ++-- frysk-core/frysk/testbed/ChangeLog | 21 +++++ frysk-core/frysk/testbed/RegsCase.java | 143 +++++++++++++++++++++++++++--- frysk-core/frysk/testbed/TestRegs.java | 12 ++- frysk-sys/frysk/junit/ChangeLog | 4 + frysk-sys/frysk/junit/TestCase.java | 13 ++- 13 files changed, 271 insertions(+), 96 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 79e9b2b..5043737 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-28 Andrew Cagney + + * RegsCommand.java: Update; Registers .getDefaultRegisterGroup + renamed to getGeneralRegisterGroup. + 2007-11-27 Teresa Thomas * EvalCommands.java (Printer..print): Remove type printing diff --git a/frysk-core/frysk/hpd/RegsCommand.java b/frysk-core/frysk/hpd/RegsCommand.java index fde1767..76accb0 100644 --- a/frysk-core/frysk/hpd/RegsCommand.java +++ b/frysk-core/frysk/hpd/RegsCommand.java @@ -63,7 +63,7 @@ public class RegsCommand extends ParameterizedCommand { TaskData td = (TaskData) taskDataIter.next(); ISA isa = td.getTask().getISA(); Registers regs = RegistersFactory.getRegisters(isa); - RegisterGroup selectedGroup = regs.getDefaultRegisterGroup(); + RegisterGroup selectedGroup = regs.getGeneralRegisterGroup(); if (cmd.size() > 0) { String groupName = cmd.parameter(0); selectedGroup = regs.getGroup(groupName); diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 09245ef..cb10669 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,35 @@ +2007-11-28 Andrew Cagney + + * TestRegisters.java (testGeneralRegisterGroup()): Rename + testDefaultRegisterGroup. + * Registers.java (getGeneralRegisterGroup()): Rename + getDefaultRegisterGroup. + + * X87Registers.java (FSW): Fix typo in name. + * TestRegisters.java (testGetGroupNames()): Fix group order. + (testAllRegistersGroup()): Delete. + * IA32Registers.java (REGS_GROUP): Fix name. + + * Registers.java (getVectorRegisterGroup()): New. + (getFloatRegisterGroup()): New. + (getDefaultRegisterGroup()): Make concrete. + (getAllRegistersGroup()): Make concrete. + * IA32Registers.java (REGS_GROUP): Rename GENERAL. + (ALL_GROUP): Delete. + (getDefaultRegisterGroup()): Delete. + (getAllRegistersGroup()): Delete. + (SEGMENT_GROUP): Rename SEGMENT. + * X8664Registers.java (REGS_GROUP): Rename GENERAL. + (ALL_GROUP): Delete. + (getDefaultRegisterGroup()): Delete. + (getAllRegistersGroup()): Delete. + * X87Registers.java (FLOAT32_GROUP): Rename FLOAT32. + (FLOAT64_GROUP): Rename FLOAT64. + (VECTOR32_GROUP): Rename VECTOR32. + (VECTOR64_GROUP): Rename VECTOR64. + * TestRegisters.java: Update. + (testAllRegisterGroup()): Change to fail. + 2007-11-28 Jose Flavio Aguilar Paulino * RegistersFactory.java: Adding Power32/64 registers to factory. diff --git a/frysk-core/frysk/isa/IA32Registers.java b/frysk-core/frysk/isa/IA32Registers.java index a94d053..2460ffc 100644 --- a/frysk-core/frysk/isa/IA32Registers.java +++ b/frysk-core/frysk/isa/IA32Registers.java @@ -116,49 +116,26 @@ public class IA32Registers extends Registers { public static final Register ORIG_EAX = new Register("orig_eax", StandardTypes.INT32L_T); - public final static RegisterGroup GENERAL - = new RegisterGroup("general", + public final static RegisterGroup REGS_GROUP + = new RegisterGroup("regs", new Register[] { EAX, EBX, ECX, EDX, ESI, EDI, EBP, EIP, EFLAGS, ESP }); - public final static RegisterGroup SEGMENT + public final static RegisterGroup SEGMENT_GROUP = new RegisterGroup("segment", new Register[] { GS, FS, ES, DS, SS, CS }); - public final static RegisterGroup ALL; - static { - Register[] allRegs - = new Register[GENERAL.getRegisters().length - + X87Registers.FLOAT32.getRegisters().length - + X87Registers.XMM32.getRegisters().length - + SEGMENT.getRegisters().length]; - int count = 0; - System.arraycopy(GENERAL.getRegisters(), 0, allRegs, count, - GENERAL.getRegisters().length); - count += GENERAL.getRegisters().length; - System.arraycopy(X87Registers.FLOAT32.getRegisters(), - 0, allRegs, count, - X87Registers.FLOAT32.getRegisters().length); - count += X87Registers.FLOAT32.getRegisters().length; - System.arraycopy(X87Registers.XMM32.getRegisters(), - 0, allRegs, count, - X87Registers.XMM32.getRegisters().length); - count += X87Registers.XMM32.getRegisters().length; - System.arraycopy(SEGMENT.getRegisters(), 0, allRegs, count, - SEGMENT.getRegisters().length); - - ALL = new RegisterGroup("all", allRegs); - } IA32Registers() { super (new RegisterGroup[] { - GENERAL, - X87Registers.FLOAT32, X87Registers.XMM32, - SEGMENT, ALL + REGS_GROUP, + X87Registers.FLOAT32_GROUP, + X87Registers.VECTOR32_GROUP, + SEGMENT_GROUP, }); } @@ -171,10 +148,14 @@ public class IA32Registers extends Registers { } public RegisterGroup getDefaultRegisterGroup() { - return GENERAL; + return REGS_GROUP; + } + + public RegisterGroup getFloatRegisterGroup() { + return X87Registers.FLOAT32_GROUP; } - public RegisterGroup getAllRegistersGroup() { - return ALL; + public RegisterGroup getVectorRegisterGroup() { + return X87Registers.VECTOR32_GROUP; } } diff --git a/frysk-core/frysk/isa/Registers.java b/frysk-core/frysk/isa/Registers.java index ae9ad2e..2241228 100644 --- a/frysk-core/frysk/isa/Registers.java +++ b/frysk-core/frysk/isa/Registers.java @@ -78,14 +78,29 @@ public abstract class Registers { */ public abstract Register getStackPointer(); /** - * Return the "default" register group. + * Return the "default" or "regs" register group. */ - public abstract RegisterGroup getDefaultRegisterGroup(); + public RegisterGroup getGeneralRegisterGroup() { + return getGroup("regs"); + } + /** + * Return the "float" register group. + */ + public RegisterGroup getFloatRegisterGroup() { + return getGroup("float"); + } + /** + * Return the "multi-media" or vector register group. + */ + public RegisterGroup getVectorRegisterGroup() { + return getGroup("vector"); + } /** * Return the "all" register group. */ - public abstract RegisterGroup getAllRegistersGroup(); - + public RegisterGroup getAllRegistersGroup() { + return null; + } /** * Return the register group; searched by NAME. */ diff --git a/frysk-core/frysk/isa/TestRegisters.java b/frysk-core/frysk/isa/TestRegisters.java index 72040a2..7fc0d44 100644 --- a/frysk-core/frysk/isa/TestRegisters.java +++ b/frysk-core/frysk/isa/TestRegisters.java @@ -55,8 +55,8 @@ public class TestRegisters extends TestCase { } public void testGetGroup() { - assertEquals("getGroup", IA32Registers.GENERAL, - regs.getGroup("general")); + assertEquals("getGroup", IA32Registers.REGS_GROUP, + regs.getGroup("regs")); } public void testGetRegister() { @@ -67,18 +67,12 @@ public class TestRegisters extends TestCase { public void testGetGroupNames() { assertEquals("getGroupNames", new String[] { - "general", "float", "xmm", - "segment", "all" + "regs", "float", "vector", "segment" }, regs.getGroupNames()); } - public void testDefaultRegisterGroup() { - assertEquals("getDefaultRegisterGroup", IA32Registers.GENERAL, - regs.getDefaultRegisterGroup()); - } - - public void testAllRegistersGroup() { - assertEquals("getAllRegistersGroup", IA32Registers.ALL, - regs.getAllRegistersGroup()); + public void testGeneralRegisterGroup() { + assertEquals("getGeneralRegisterGroup", IA32Registers.REGS_GROUP, + regs.getGeneralRegisterGroup()); } } diff --git a/frysk-core/frysk/isa/X8664Registers.java b/frysk-core/frysk/isa/X8664Registers.java index a913c6c..bac439a 100644 --- a/frysk-core/frysk/isa/X8664Registers.java +++ b/frysk-core/frysk/isa/X8664Registers.java @@ -127,20 +127,19 @@ public class X8664Registers extends Registers { public static final Register ORIG_RAX = new Register("orig_rax", StandardTypes.INT64L_T); - public static final RegisterGroup GENERAL = new RegisterGroup("general", - new Register[] { RAX, RDX, RCX, RBX, RSI, RDI, RBP, RSP, R8, R9, - R10, R11, R12, R13, R14, R15, RIP }); - - public static final RegisterGroup ALL; - static { - Register[] allRegs = new Register[GENERAL.getRegisters().length]; - System.arraycopy(GENERAL.getRegisters(), 0, allRegs, 0, - GENERAL.getRegisters().length); - ALL = new RegisterGroup("all", allRegs); - } - + public static final RegisterGroup REGS_GROUP + = new RegisterGroup("regs", + new Register[] { + RAX, RDX, RCX, RBX, RSI, RDI, RBP, RSP, R8, R9, + R10, R11, R12, R13, R14, R15, RIP + }); + protected X8664Registers() { - super(new RegisterGroup[] { GENERAL, ALL }); + super(new RegisterGroup[] { + REGS_GROUP, + X87Registers.FLOAT64_GROUP, + X87Registers.VECTOR64_GROUP, + }); } public Register getProgramCounter() { @@ -150,12 +149,4 @@ public class X8664Registers extends Registers { public Register getStackPointer() { return RSP; } - - public RegisterGroup getDefaultRegisterGroup() { - return GENERAL; - } - - public RegisterGroup getAllRegistersGroup() { - return ALL; - } } diff --git a/frysk-core/frysk/isa/X87Registers.java b/frysk-core/frysk/isa/X87Registers.java index 23cb1c0..89c64ad 100644 --- a/frysk-core/frysk/isa/X87Registers.java +++ b/frysk-core/frysk/isa/X87Registers.java @@ -153,7 +153,7 @@ public class X87Registers { = new Register("fcw", StandardTypes.INT16L_T); // status word public static final Register FSW - = new Register("fcw", StandardTypes.INT16L_T); + = new Register("fsw", StandardTypes.INT16L_T); // tag word public static final Register FTW = new Register("ftw", StandardTypes.INT8L_T); @@ -180,7 +180,7 @@ public class X87Registers { public static final Register MXCSR_MASK = new Register("mxcsr_mask", StandardTypes.INT32L_T); - public final static RegisterGroup FLOAT32 + public final static RegisterGroup FLOAT32_GROUP = new RegisterGroup("float", new Register[] { ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, @@ -188,7 +188,7 @@ public class X87Registers { EIP, CS, DP, DS, }); - public final static RegisterGroup FLOAT64 + public final static RegisterGroup FLOAT64_GROUP = new RegisterGroup("float", new Register[] { ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, @@ -203,14 +203,14 @@ public class X87Registers { MXCSR, MXCSR_MASK }); - public final static RegisterGroup XMM32 - = new RegisterGroup("xmm", + public final static RegisterGroup VECTOR32_GROUP + = new RegisterGroup("vector", new Register[] { XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, }); - public final static RegisterGroup XMM64 - = new RegisterGroup("xmm", + public final static RegisterGroup VECTOR64_GROUP + = new RegisterGroup("vector", new Register[] { XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 56ba41e..fb84632 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,24 @@ +2007-11-28 Andrew Cagney + + * TestRegs.java (testGeneralRegistersPresent()): Rename + testDefaultRegistersPresent. + + * RegsCase.java (testGeneralRegisters()): Rename + testDefaultRegisters. + + * RegsCase.java (testDefaultRegisters()): New. + (testFloatRegisters()): New; unresolved on IA32 and X86-64. + (testVectorRegisters()): New; ditto. + (checkRegisterGroup()): New. + (Values.get(Register)): New. + + * RegsCase.java (IA32): Add floating-point and vector registers. + + * RegsCase.java (testAccessRegisterRead()): Remove unresolved on + X86-64, bug 5195. + * TestRegs.java (testFloatRegistersPresent()): New. + (testVectorRegistersPresent()): New. + 2007-11-28 Jose Flavio Aguilar Paulino * RegsCase.java: Add the PowerPC32 general purpose register values. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 6521e2b..23f3fba 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -39,12 +39,15 @@ package frysk.testbed; -import java.util.Map.Entry; +import frysk.isa.RegistersFactory; +import frysk.isa.Registers; +import frysk.isa.RegisterGroup; import frysk.isa.Register; import frysk.isa.IA32Registers; import frysk.isa.X8664Registers; import frysk.isa.PPC32Registers; import frysk.isa.PPC64Registers; +import frysk.isa.X87Registers; import frysk.isa.ISA; import frysk.isa.ISAMap; import frysk.proc.Task; @@ -68,17 +71,21 @@ public abstract class RegsCase extends TestLib { private Values values; private ByteOrder order; private ISA isa; + private Registers registers; public void setUp() { super.setUp(); task = new DaemonBlockedAtSignal("funit-regs").getMainTask(); isa = task.getISA(); order = isa.order(); + registers = RegistersFactory.getRegisters(isa); if (isaValues.containsKey(isa)) values = (Values)isaValues.get(isa); } public void tearDown() { task = null; values = null; + registers = null; + isa = null; super.tearDown(); } @@ -99,19 +106,36 @@ public abstract class RegsCase extends TestLib { int start, boolean write); protected abstract long getRegister(Object task, Register reg); - public void testAccessRegisterRead() { - if(unresolvedOnx8664(5195)){ - return; - } - if (values == null && unresolved(0)) - return; - for (Iterator i = values.iterator(); i.hasNext(); ) { - Entry entry = (Entry)i.next(); - Register register = (Register)entry.getKey(); - Value value = (Value)entry.getValue(); + private void checkRegisterGroup(RegisterGroup registerGroup) { + Register[] registers = registerGroup.getRegisters(); + for (int i = 0; i < registers.length; i++) { + Register register = registers[i]; + Value value = (Value)values.get(register); value.checkRegister(this, register); } } + + public void testGeneralRegisters() { + if(unresolvedOnx8664(5195)) + return; + checkRegisterGroup(registers.getGeneralRegisterGroup()); + } + + public void testFloatRegisters() { + if (unresolvedOnIA32(4911)) + return; + if(unresolvedOnx8664(5195)) + return; + checkRegisterGroup(registers.getFloatRegisterGroup()); + } + + public void testVectorRegisters() { + if (unresolvedOnIA32(4911)) + return; + if(unresolvedOnx8664(5195)) + return; + checkRegisterGroup(registers.getVectorRegisterGroup()); + } /** * Convert the ByteOrdered byte array to a BigInteger. @@ -244,6 +268,9 @@ public abstract class RegsCase extends TestLib { boolean containsKey(Register key) { return map.containsKey(key); } + Value get(Register register) { + return (Value)map.get(register); + } Values put(Register register, byte[] bytes) { map.put(register, new ByteValue(register, bytes)); return this; @@ -275,6 +302,7 @@ public abstract class RegsCase extends TestLib { */ private Values IA32 = new Values() + // general registers .put(IA32Registers.EAX, // 0x7eb03efc new byte[] { (byte)0xfc, 0x3e, (byte)0xb0, 0x7e }) .put(IA32Registers.EBX, // 0x35a322a0 @@ -290,11 +318,100 @@ public abstract class RegsCase extends TestLib { .put(IA32Registers.EBP, // 0xcbfed73c new byte[] { 0x3c, (byte)0xd7, (byte)0xfe, (byte)0xcb }) .put(IA32Registers.EFLAGS, 0x10246, - 1 << 21 // Mask CPUID - ) + 1 << 21) // Mask CPUID .put(IA32Registers.ESP, // 0x93d4a6ed new byte[] { (byte)0xed, (byte)0xa6, (byte)0xd4, (byte)0x93 }) .put(IA32Registers.EIP, "crash") + // floating-point registers + .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 + new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, + 0x77,(byte)0xdc,(byte)0x89,0x72, + 0x36,(byte)0xa7 }) + .put(X87Registers.ST1, // 0x64abfe452c2a5b8d0eb1 + new byte[] { (byte)0xb1,0xe,(byte)0x8d,0x5b, + 0x2a,0x2c,0x45,(byte)0xfe, + (byte)0xab,0x64 }) + .put(X87Registers.ST2, // 0xb829e094740ce9d53a04 + new byte[] { 0x4,0x3a,(byte)0xd5,(byte)0xe9, + 0xc,0x74,(byte)0x94,(byte)0xe0, + 0x29,(byte)0xb8 }) + .put(X87Registers.ST3, // 0x4bd27ebf86294a4a48f8 + new byte[] { (byte)0xf8,0x48,0x4a,0x4a, + 0x29,(byte)0x86,(byte)0xbf,0x7e, + (byte)0xd2,0x4b }) + .put(X87Registers.ST4, // 0xb96a6b1dabba9af1fa66 + new byte[] { 0x66,(byte)0xfa,(byte)0xf1,(byte)0x9a, + (byte)0xba,(byte)0xab,0x1d,0x6b, + 0x6a,(byte)0xb9 }) + .put(X87Registers.ST5, // 0x87d05c0a1e9c9bb98ebc + new byte[] { (byte)0xbc,(byte)0x8e,(byte)0xb9,(byte)0x9b, + (byte)0x9c,0x1e,0xa,0x5c, + (byte)0xd0,(byte)0x87 }) + .put(X87Registers.ST6, // 0x5a0f14dcf87c56690b5f + new byte[] { 0x5f,0xb,0x69,0x56, + 0x7c,(byte)0xf8,(byte)0xdc,0x14, + 0xf,0x5a }) + .put(X87Registers.ST7, // 0x1f12ae5ec49479a8cb19 + new byte[] { 0x19,(byte)0xcb,(byte)0xa8,0x79, + (byte)0x94,(byte)0xc4,0x5e,(byte)0xae, hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Thu Nov 29 01:32:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Thu, 29 Nov 2007 01:32:00 -0000 Subject: [SCM] master: Add ability to "run" core commands that have executables specified. Message-ID: <20071129013234.25683.qmail@sourceware.org> The branch, master has been updated via 2db907516bfc9f5f893e64b795ec2ffed349d6f8 (commit) from ee243016c11937ddbfb0ba23e0f6f4376708998a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 2db907516bfc9f5f893e64b795ec2ffed349d6f8 Author: Rick Moseley Date: Wed Nov 28 19:29:06 2007 -0600 Add ability to "run" core commands that have executables specified. * RunCommand.java: Added code to implement the ability to run core files loaded with the core command with a path-to- executable parameter. * CLI.java: Ditto. * CoreCommand.java: Ditto. * TestCoreCommand.java: Test above changes. * LoadCommand.java: Move output of "Loaded*" message until after debuginfo has been retrieved. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/CLI.java | 11 ++++++ frysk-core/frysk/hpd/ChangeLog | 11 ++++++ frysk-core/frysk/hpd/CoreCommand.java | 10 +++++- frysk-core/frysk/hpd/LoadCommand.java | 8 ++--- frysk-core/frysk/hpd/RunCommand.java | 57 +++++++++++++++++++---------- frysk-core/frysk/hpd/TestCoreCommand.java | 31 ++++++++++++++++ 6 files changed, 102 insertions(+), 26 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java index 032caa3..1e072b1 100644 --- a/frysk-core/frysk/hpd/CLI.java +++ b/frysk-core/frysk/hpd/CLI.java @@ -74,6 +74,8 @@ public class CLI { final HashSet runningProcs = new HashSet(); //Processes loaded with load command final HashMap loadedProcs = new HashMap(); + //Processes loaded with core command + final HashMap coreProcs = new HashMap(); //Task ID to use int taskID = -1; @@ -455,6 +457,15 @@ public class CLI { return loadedProcs; } + /** + * Get the set of processes (Proc) started by the core command. Access to the + * CLI object should be synchronized when using the set. + * @return the set + */ + public HashMap getCoreProcs() { + return coreProcs; + } + SteppingEngine getSteppingEngine () { return this.steppingEngine; } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 5043737..1970598 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,14 @@ +2007-11-29 Rick Moseley + + * RunCommand.java: Added code to implement the ability to run + core files loaded with the core command with a path-to- + executable parameter. + * CLI.java: Ditto. + * CoreCommand.java: Ditto. + * TestCoreCommand.java: Test above changes. + * LoadCommand.java: Move output of "Loaded*" message until + after debuginfo has been retrieved. + 2007-11-28 Andrew Cagney * RegsCommand.java: Update; Registers .getDefaultRegisterGroup diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 31d75b6..7ebd163 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -92,7 +92,8 @@ public class CoreCommand extends ParameterizedCommand { parseCommandLine(cmd); // Does the corefile exist? - if ((!coreFile.exists()) || (!coreFile.canRead())) + if ((!coreFile.exists()) || (!coreFile.canRead() + || coreFile.isDirectory())) throw new InvalidCommandException( "No core file found, or cannot read corefile"); @@ -117,6 +118,7 @@ public class CoreCommand extends ParameterizedCommand { // All checks are done. Host is built. Now start reserving space in the sets int procID = cli.idManager.reserveProcID(); cli.idManager.manageProc(coreProc, procID); + // Build debug info for each task and frame. Iterator foo = cli.targetset.getTasks(); @@ -131,6 +133,12 @@ public class CoreCommand extends ParameterizedCommand { // Finally, done. cli.addMessage("Attached to core file: " + cmd.parameter(0), Message.TYPE_NORMAL); + // See if there was an executable specified + if (coreHost.getStatus().hasExe == false) + return; + synchronized (cli) { + cli.getCoreProcs().put(coreProc, new Integer(procID)); + } } diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/LoadCommand.java index 8ec7fd8..312c084 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/LoadCommand.java @@ -80,12 +80,8 @@ public class LoadCommand extends ParameterizedCommand { Proc exeProc = frysk.util.Util.getProcFromExeFile(exeHost); int procID = cli.idManager.reserveProcID(); - cli.idManager.manageProc(exeProc, procID); - cli.addMessage("Loaded executable file: " + cmd.parameter(0), - Message.TYPE_NORMAL); - Iterator foo = cli.targetset.getTasks(); while (foo.hasNext()) { Task task = (Task) foo.next(); @@ -100,9 +96,11 @@ public class LoadCommand extends ParameterizedCommand { synchronized (cli) { cli.getLoadedProcs().put(exeProc, new Integer(procID)); } + + cli.addMessage("Loaded executable file: " + cmd.parameter(0), + Message.TYPE_NORMAL); } - int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeFileName(cli, input, cursor, completions); diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/RunCommand.java index edc4501..5ae9fd3 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/RunCommand.java @@ -127,9 +127,9 @@ class RunCommand extends ParameterizedCommand { public void interpret(CLI cli, Input cmd, Object options) { /* If the run command is given no args, check to see if any procs were loaded with the load command or loaded - when fhpd was started */ + when fhpd was started or loaded with the core command*/ if (cmd.size() < 1) { - if (cli.runningProcs.isEmpty() && cli.loadedProcs.isEmpty()) + if (cli.coreProcs.isEmpty() && cli.loadedProcs.isEmpty()) throw new InvalidCommandException("missing program"); } @@ -140,32 +140,27 @@ class RunCommand extends ParameterizedCommand { } /* If we made it here, a run command was given with no parameters - * and there should be either running procs or loaded procs + * and there should be either running procs or loaded procs or + * core procs */ - + /* This is the case where there are loaded procs */ if (!cli.loadedProcs.isEmpty()) { Set procSet = cli.loadedProcs.entrySet(); - Iterator foo = procSet.iterator(); - while (foo.hasNext()) { - Map.Entry me = (Map.Entry)foo.next(); - Proc proc = (Proc) me.getKey(); - Integer taskid = (Integer)me.getValue(); - synchronized(cli) { - cli.taskID = taskid.intValue(); - } - cli.execCommand("run " + proc.getExe()); - synchronized(cli) { - cli.taskID = -1; - } - } + runProcs(cli, procSet); synchronized (cli) { cli.loadedProcs.clear(); } } - // Found no loaded procs, print usage message - // XXX Need to fix, add core files and running proc handling - else throw new InvalidCommandException("missing program"); + + /* Check to see if there were procs loaded from a core command */ + if (!cli.coreProcs.isEmpty()) { + Set coreSet = cli.coreProcs.entrySet(); + runProcs(cli, coreSet); + synchronized (cli) { + cli.coreProcs.clear(); + } + } } private void run(CLI cli, Input cmd) { @@ -183,6 +178,28 @@ class RunCommand extends ParameterizedCommand { runner.launchedTask.requestUnblock(runner); } + /* + * runProcs does as the name implies, it runs procs found to be loaded by a + * load or a core command. + */ + private void runProcs(CLI cli, Set procs) { + Iterator foo = procs.iterator(); + while (foo.hasNext()) { + Map.Entry me = (Map.Entry) foo.next(); + Proc proc = (Proc) me.getKey(); + Integer taskid = (Integer) me.getValue(); + // Set the TaskID to be used to what was used when the + // proc was loaded with the core or load commands + synchronized (cli) { + cli.taskID = taskid.intValue(); + } + cli.execCommand("run " + proc.getExe()); + synchronized (cli) { + cli.taskID = -1; + } + } + } + int completer(CLI cli, Input input, int cursor, List completions) { return CompletionFactory.completeFileName(cli, input, cursor, completions); diff --git a/frysk-core/frysk/hpd/TestCoreCommand.java b/frysk-core/frysk/hpd/TestCoreCommand.java index 505513e..834ce6c 100644 --- a/frysk-core/frysk/hpd/TestCoreCommand.java +++ b/frysk-core/frysk/hpd/TestCoreCommand.java @@ -55,6 +55,22 @@ public class TestCoreCommand extends TestLib { e.expect(5, "Attached to core file.*"); e.close(); } + + public void testCoreCommandError() { + e = new HpdTestbed(); + e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + + "\n"); + e.expect(5, "Error:*"); + e.close(); + } + + public void testCoreCommandErrorTwo() { + e = new HpdTestbed(); + e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + + "foo\n"); + e.expect(5, "Error:*"); + e.close(); + } public void testCoreExeCommand() { TestLinuxCore tester = new TestLinuxCore(); @@ -68,4 +84,19 @@ public class TestCoreCommand extends TestLib { e.close(); core.delete(); } + + public void testCoreThenRunCommand() { + TestLinuxCore tester = new TestLinuxCore(); + SlaveOffspring funit = SlaveOffspring.createDaemon(); + Proc funitProc = funit.assertFindProcAndTasks(); + File core = new File(tester.constructCore(funitProc)); + e = new HpdTestbed(); + e.send("core " + core.getPath() + " " + + SlaveOffspring.getExecutable().getPath() + "\n"); + e.expect(5, "Attached to core file.*"); + e.send("run\n"); + e.expect(5, "Attached to process*"); + e.close(); + core.delete(); + } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 29 09:40:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 29 Nov 2007 09:40:00 -0000 Subject: [SCM] master: Complete move to constructing GPR notes as byte buffers, not BigIntegers. Message-ID: <20071129094059.24823.qmail@sourceware.org> The branch, master has been updated via ad3897b147d7d155b38ee9bb666c953b782a7fdd (commit) from 2db907516bfc9f5f893e64b795ec2ffed349d6f8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ad3897b147d7d155b38ee9bb666c953b782a7fdd Author: Phil Muldoon Date: Thu Nov 29 09:40:51 2007 +0000 Complete move to constructing GPR notes as byte buffers, not BigIntegers. 2007-11-29 Phil Muldoon * IA32LinuxElfCorefile.java(writeNotePrstatus): Construct byte-ordered buffer for GP Registers. Do not use BigIntegers. Account for wordSize with Registers < wordSize. (bytesToBigInteger) Delete. * X8664LinuxElfCorefile.java: Ditto. * PPC32LinuxElfCorefile.java: Ditto. * PPC64LinuxElfCorefile.java: Ditto. 2007-11-29 Phil Muldoon * cni/ElfPrstatus.cxx (ElfPrstatus::fillMemRegion): Copy buffer to structure, do not build buffer. * ElfPrstatus.java (setPrGPRegisterBuffer): New. (setPrGPReg): Delete. (convertToLong): Delete. (getPrGPRegIterator): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 10 +++ frysk-core/frysk/util/IA32LinuxElfCorefile.java | 83 +++++++++++---------- frysk-core/frysk/util/PPC32LinuxElfCorefile.java | 77 ++++++++------------ frysk-core/frysk/util/PPC64LinuxElfCorefile.java | 85 +++++++++------------- frysk-core/frysk/util/X8664LinuxElfCorefile.java | 62 ++++++++-------- frysk-sys/lib/dwfl/ChangeLog | 9 +++ frysk-sys/lib/dwfl/ElfPrstatus.java | 36 +--------- frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx | 16 +---- 8 files changed, 165 insertions(+), 213 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index d8feb8e..8e69317 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,13 @@ +2007-11-29 Phil Muldoon + + * IA32LinuxElfCorefile.java(writeNotePrstatus): Construct + byte-ordered buffer for GP Registers. Do not use BigIntegers. + Account for wordSize with Registers < wordSize. + (bytesToBigInteger) Delete. + * X8664LinuxElfCorefile.java: Ditto. + * PPC32LinuxElfCorefile.java: Ditto. + * PPC64LinuxElfCorefile.java: Ditto. + 2007-11-28 Tim Moore * TestCountDownLatch.java (testTimeout): wrap time out await in diff --git a/frysk-core/frysk/util/IA32LinuxElfCorefile.java b/frysk-core/frysk/util/IA32LinuxElfCorefile.java index 7e6f17a..be6bdfc 100644 --- a/frysk-core/frysk/util/IA32LinuxElfCorefile.java +++ b/frysk-core/frysk/util/IA32LinuxElfCorefile.java @@ -42,7 +42,6 @@ package frysk.util; import frysk.proc.Proc; import frysk.proc.Task; import inua.eio.ByteBuffer; -import inua.eio.ByteOrder; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfNhdrType; @@ -59,7 +58,7 @@ import frysk.sys.proc.Stat; import frysk.sys.proc.Status; import frysk.isa.IA32Registers; import frysk.isa.Register; -import java.math.BigInteger; + /** * LinuxElfCorefilex86. Extends LinuxCorefile. Fill in @@ -181,32 +180,52 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile { // are the names are the same. Create a string[] map to bridge // gap between frysk and core file register order. - Register[] ptraceRegisterMap = {IA32Registers.EBX, - IA32Registers.ECX, - IA32Registers.EDX, - IA32Registers.ESI, - IA32Registers.EDI, - IA32Registers.EBP, - IA32Registers.EAX, - IA32Registers.DS, - IA32Registers.ES, - IA32Registers.FS, - IA32Registers.GS, - IA32Registers.ORIG_EAX, - IA32Registers.EIP, - IA32Registers.CS, - IA32Registers.EFLAGS, - IA32Registers.ESP, - IA32Registers.SS}; + Register[] ptraceRegisterMap = { + IA32Registers.EBX, + IA32Registers.ECX, + IA32Registers.EDX, + IA32Registers.ESI, + IA32Registers.EDI, + IA32Registers.EBP, + IA32Registers.EAX, + IA32Registers.DS, + IA32Registers.ES, + IA32Registers.FS, + IA32Registers.GS, + IA32Registers.ORIG_EAX, + IA32Registers.EIP, + IA32Registers.CS, + IA32Registers.EFLAGS, + IA32Registers.ESP, + IA32Registers.SS + }; // Set GP register info + int index = 0; + int arraySize = 0; + int regSize; + int wordSize = task.getISA().wordSize(); + + // Allocate space in array. Even though there are some registers < wordSize, they still have + // to sit in a wordSize area + for (int l = 0; l < ptraceRegisterMap.length; l++) + if (ptraceRegisterMap[l].getType().getSize() < wordSize) + arraySize +=wordSize; + else + arraySize +=ptraceRegisterMap[l].getType().getSize(); + + byte[] byteOrderedRegister= new byte[arraySize]; + + // Populate array, using wordSize as minimum size for (int i = 0; i < ptraceRegisterMap.length; i++) { - int registerSize = ptraceRegisterMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptraceRegisterMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); + regSize = ptraceRegisterMap[i].getType().getSize(); + if (regSize < wordSize) + regSize = wordSize; + task.access(ptraceRegisterMap[i], 0, regSize, byteOrderedRegister, index, false); + index += regSize; } - + + prStatus.setPrGPRegisterBuffer(byteOrderedRegister); // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); @@ -292,20 +311,4 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile { return ElfEHeader.PHEADER_ELFCLASS32; } - // XXX: Function to convert bytes[] to BigInteger. - // Will disappear when all BankRegisters are present on all - // all architectures, and we can call task.access() on all - // registers, and not convert to BigInteger. - private BigInteger bytesToBigInteger(byte[] bytes) - { - if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) { - for (int left = 0; left < bytes.length / 2; left++) { - int right = bytes.length - 1 - left; - byte temp = bytes[left]; - bytes[left] = bytes[right]; - bytes[right] = temp; - } - } - return new BigInteger(bytes); - } } diff --git a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java index 8180acf..fec155f 100644 --- a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java @@ -43,23 +43,19 @@ package frysk.util; -import java.math.BigInteger; - -import frysk.proc.Proc; -import frysk.proc.Task; import inua.eio.ByteBuffer; -import inua.eio.ByteOrder; - +import lib.dwfl.ElfEHeader; +import lib.dwfl.ElfEMachine; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfNhdrType; -import lib.dwfl.ElfEMachine; -import lib.dwfl.ElfEHeader; import lib.dwfl.ElfPrAuxv; +import lib.dwfl.ElfPrFPRegSet; import lib.dwfl.ElfPrpsinfo; import lib.dwfl.ElfPrstatus; -import lib.dwfl.ElfPrFPRegSet; import frysk.isa.PPC32Registers; import frysk.isa.Register; +import frysk.proc.Proc; +import frysk.proc.Task; import frysk.sys.proc.AuxvBuilder; import frysk.sys.proc.CmdLineBuilder; import frysk.sys.proc.Stat; @@ -188,11 +184,6 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc/elf.h. - int elfNGREG = 48; - int blankRegisterIndex = elfNGREG; - - byte[] zeroVal = new byte[] { 0 }; - Register[] ptracePpcRegMap = { PPC32Registers.NIP, PPC32Registers.MSR, PPC32Registers.ORIGR3, PPC32Registers.CTR, PPC32Registers.LR, PPC32Registers.XER, @@ -210,23 +201,37 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { PPC32Registers.GPR27, PPC32Registers.GPR28, PPC32Registers.GPR29, PPC32Registers.GPR30, PPC32Registers.GPR31}; - for (int i = 0; i < ptracePpcRegMap.length; i++) { - int registerSize = ptracePpcRegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpcRegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); - } + + // Set GP register info + int index = 0; + int arraySize = 0; + int regSize; + int wordSize = task.getISA().wordSize(); + int elfNGREG = 48; + // Allocate space in array. Even though there are some registers < wordSize, they still have + // to sit in a wordSize area + for (int l = 0; l < ptracePpcRegMap.length; l++) + if (ptracePpcRegMap[l].getType().getSize() < wordSize) + arraySize +=wordSize; + else + arraySize +=ptracePpcRegMap[l].getType().getSize(); - blankRegisterIndex = ptracePpcRegMap.length; + int blankRegisterIndex = (elfNGREG - ptracePpcRegMap.length) * wordSize; - BigInteger bigInt = new BigInteger(zeroVal); + byte[] byteOrderedRegister= new byte[arraySize+blankRegisterIndex]; + + // Populate array, using wordSize as minimum size + for (int i = 0; i < ptracePpcRegMap.length; i++) { + regSize = ptracePpcRegMap[i].getType().getSize(); + if (regSize < wordSize) + regSize = wordSize; + task.access(ptracePpcRegMap[i], 0, regSize, byteOrderedRegister, index, false); + index += regSize; + } + + prStatus.setPrGPRegisterBuffer(byteOrderedRegister); - // On ppc, some register indexes are not defined in - // asm-/ptrace.h. - for (int index = blankRegisterIndex; index < elfNGREG; index++) - prStatus.setPrGPReg(index, bigInt); - // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); } @@ -295,22 +300,4 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile { protected byte getElfMachineClass() { return ElfEHeader.PHEADER_ELFCLASS32; } - - // XXX: Function to convert bytes[] to BigInteger. - // Will disappear when all BankRegisters are present on all - // all architectures, and we can call task.access() on all - // registers, and not convert to BigInteger. - private BigInteger bytesToBigInteger(byte[] bytes) - { - if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) { - for (int left = 0; left < bytes.length / 2; left++) { - int right = bytes.length - 1 - left; - byte temp = bytes[left]; - bytes[left] = bytes[right]; - bytes[right] = temp; - } - } - return new BigInteger(bytes); - } - } diff --git a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java index 58553c7..df6b20b 100644 --- a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java +++ b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java @@ -43,25 +43,20 @@ package frysk.util; -import java.math.BigInteger; - -import frysk.proc.Proc; -import frysk.proc.Task; -import inua.eio.ByteOrder; - +import lib.dwfl.ElfEHeader; +import lib.dwfl.ElfEMachine; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfNhdrType; -import lib.dwfl.ElfEMachine; -import lib.dwfl.ElfEHeader; import lib.dwfl.ElfPrAuxv; +import lib.dwfl.ElfPrFPRegSet; import lib.dwfl.ElfPrpsinfo; import lib.dwfl.ElfPrstatus; -import lib.dwfl.ElfPrFPRegSet; - -import frysk.sys.proc.AuxvBuilder; -import frysk.sys.proc.CmdLineBuilder; import frysk.isa.PPC64Registers; import frysk.isa.Register; +import frysk.proc.Proc; +import frysk.proc.Task; +import frysk.sys.proc.AuxvBuilder; +import frysk.sys.proc.CmdLineBuilder; import frysk.sys.proc.Stat; import frysk.sys.proc.Status; @@ -188,11 +183,6 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { // The number of total common registers in PPC/PPC64 including nip, msr, // etc. Defined in the asm-ppc64/elf.h. - int elfNGREG = 48; - int blankRegisterIndex = elfNGREG; - - byte[] zeroVal = new byte[] { 0 }; - // XXX: if one register's offset is not defined in asm-ppc/ptrace.h or // asm-ppc64/ptrace.h,we did not dump it out and fill give the null Name. Register[] ptracePpc64RegMap = { @@ -212,23 +202,36 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { PPC64Registers.GPR27, PPC64Registers.GPR28, PPC64Registers.GPR29, PPC64Registers.GPR30, PPC64Registers.GPR31}; - for (int i = 0; i < ptracePpc64RegMap.length; i++) { - int registerSize = ptracePpc64RegMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptracePpc64RegMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister)); - } - - - blankRegisterIndex = ptracePpc64RegMap.length; - - BigInteger bigInt = new BigInteger(zeroVal); + // Set GP register info + int index = 0; + int arraySize = 0; + int regSize; + int wordSize = task.getISA().wordSize(); + int elfNGREG = 48; + + // Allocate space in array. Even though there are some registers < wordSize, they still have + // to sit in a wordSize area + for (int l = 0; l < ptracePpc64RegMap.length; l++) + if (ptracePpc64RegMap[l].getType().getSize() < wordSize) + arraySize +=wordSize; + else + arraySize +=ptracePpc64RegMap[l].getType().getSize(); + + int blankRegisterIndex = (elfNGREG - ptracePpc64RegMap.length) * wordSize; + + byte[] byteOrderedRegister= new byte[arraySize+blankRegisterIndex]; + + // Populate array, using wordSize as minimum size + for (int i = 0; i < ptracePpc64RegMap.length; i++) { + regSize = ptracePpc64RegMap[i].getType().getSize(); + if (regSize < wordSize) + regSize = wordSize; + task.access(ptracePpc64RegMap[i], 0, regSize, byteOrderedRegister, index, false); + index += regSize; + } + + prStatus.setPrGPRegisterBuffer(byteOrderedRegister); - // On ppc, some register indexes are not defined in - // asm-/ptrace.h. - for (int index = blankRegisterIndex; index < elfNGREG; index++) - prStatus.setPrGPReg(index, bigInt); - // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); } @@ -330,20 +333,4 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile { return ElfEHeader.PHEADER_ELFCLASS64; } - // XXX: Function to convert bytes[] to BigInteger. - // Will disappear when all BankRegisters are present on all - // all architectures, and we can call task.access() on all - // registers, and not convert to BigInteger. - private BigInteger bytesToBigInteger(byte[] bytes) - { - if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) { - for (int left = 0; left < bytes.length / 2; left++) { - int right = bytes.length - 1 - left; - byte temp = bytes[left]; - bytes[left] = bytes[right]; - bytes[right] = temp; - } - } - return new BigInteger(bytes); - } } diff --git a/frysk-core/frysk/util/X8664LinuxElfCorefile.java b/frysk-core/frysk/util/X8664LinuxElfCorefile.java index c2dab9d..7d4fb1c 100644 --- a/frysk-core/frysk/util/X8664LinuxElfCorefile.java +++ b/frysk-core/frysk/util/X8664LinuxElfCorefile.java @@ -39,23 +39,19 @@ package frysk.util; -import java.math.BigInteger; - -import frysk.isa.Register; -import frysk.isa.X8664Registers; -import frysk.proc.Proc; -import frysk.proc.Task; import inua.eio.ByteBuffer; -import inua.eio.ByteOrder; - +import lib.dwfl.ElfEHeader; +import lib.dwfl.ElfEMachine; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfNhdrType; -import lib.dwfl.ElfEMachine; -import lib.dwfl.ElfEHeader; import lib.dwfl.ElfPrAuxv; +import lib.dwfl.ElfPrFPRegSet; import lib.dwfl.ElfPrpsinfo; import lib.dwfl.ElfPrstatus; -import lib.dwfl.ElfPrFPRegSet; +import frysk.isa.Register; +import frysk.isa.X8664Registers; +import frysk.proc.Proc; +import frysk.proc.Task; import frysk.sys.proc.AuxvBuilder; import frysk.sys.proc.CmdLineBuilder; import frysk.sys.proc.Stat; @@ -212,12 +208,31 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile { X8664Registers.GS}; // Set GP register info + int index = 0; + int arraySize = 0; + int regSize; + int wordSize = task.getISA().wordSize(); + + // Allocate space in array. Even though there are some registers < wordSize, they still have + // to sit in a wordSize area + for (int l = 0; l < ptraceRegisterMap.length; l++) + if (ptraceRegisterMap[l].getType().getSize() < wordSize) + arraySize +=wordSize; + else + arraySize +=ptraceRegisterMap[l].getType().getSize(); + + byte[] byteOrderedRegister= new byte[arraySize]; + + // Populate array, using wordSize as minimum size for (int i = 0; i < ptraceRegisterMap.length; i++) { - int registerSize = ptraceRegisterMap[i].getType().getSize(); - byte[] byteOrderedRegister = new byte[registerSize]; - task.access(ptraceRegisterMap[i], 0, registerSize, byteOrderedRegister, 0, false); - prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister)); + regSize = ptraceRegisterMap[i].getType().getSize(); + if (regSize < wordSize) + regSize = wordSize; + task.access(ptraceRegisterMap[i], 0, regSize, byteOrderedRegister, index, false); + index += regSize; } + + prStatus.setPrGPRegisterBuffer(byteOrderedRegister); // Write it nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus); @@ -285,21 +300,4 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile { return ElfEHeader.PHEADER_ELFCLASS64; } - // XXX: Function to convert bytes[] to BigInteger. - // Will disappear when all BankRegisters are present on all - // all architectures, and we can call task.access() on all - // registers, and not convert to BigInteger. - private BigInteger bytesToBigInteger(byte[] bytes) - { - if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) { - for (int left = 0; left < bytes.length / 2; left++) { - int right = bytes.length - 1 - left; - byte temp = bytes[left]; - bytes[left] = bytes[right]; - bytes[right] = temp; - } - } - return new BigInteger(bytes); - } - } diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 7debe8b..4e0117e 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,12 @@ +2007-11-29 Phil Muldoon + + * cni/ElfPrstatus.cxx (ElfPrstatus::fillMemRegion): Copy + buffer to structure, do not build buffer. + * ElfPrstatus.java (setPrGPRegisterBuffer): New. + (setPrGPReg): Delete. + (convertToLong): Delete. + (getPrGPRegIterator): Delete. + 2007-11-20 Stan Cox * BaseTypes.java: Remove. diff --git a/frysk-sys/lib/dwfl/ElfPrstatus.java b/frysk-sys/lib/dwfl/ElfPrstatus.java index 6c2e999..0539521 100644 --- a/frysk-sys/lib/dwfl/ElfPrstatus.java +++ b/frysk-sys/lib/dwfl/ElfPrstatus.java @@ -41,7 +41,6 @@ package lib.dwfl; import java.util.ArrayList; import java.util.Iterator; -import java.math.BigInteger; import inua.eio.ArrayByteBuffer; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; @@ -77,10 +76,7 @@ public class ElfPrstatus extends ElfNhdr.ElfNoteSectionEntry hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Thu Nov 29 11:20:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 29 Nov 2007 11:20:00 -0000 Subject: [SCM] master: Make libunwind get_unwind_table a bit more 64bit safe. Message-ID: <20071129112005.17099.qmail@sourceware.org> The branch, master has been updated via 8e1270adf259c3816e9b0f8acd229bddaa2e77a7 (commit) from ad3897b147d7d155b38ee9bb666c953b782a7fdd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 8e1270adf259c3816e9b0f8acd229bddaa2e77a7 Author: Mark Wielaard Date: Thu Nov 29 12:19:51 2007 +0100 Make libunwind get_unwind_table a bit more 64bit safe. frysk-imports/libunwind/ChangeLog 2007-11-28 Mark Wielaard * src/mi/Gget_unwind_table.c (unw_get_unwind_table): Make addr a char *, pass addr as arg to dwarf_read functions, make local_access_mem use arg as base address for start indexed reads. frysk-sys/lib/unwind/ChangeLog 2007-11-29 Mark Wielaard * cni/ElfImage.cxx: Don't define MAP_32BIT. (mapElfImage): Don't use MAP_32BIT. * cni/UnwindH.hxx: Don't define MAP_32BIT. (createElfImageFromVDSO): Don't use MAP_32BIT. ----------------------------------------------------------------------- Summary of changes: frysk-imports/libunwind/ChangeLog | 6 ++ frysk-imports/libunwind/src/mi/Gget_unwind_table.c | 66 +++++++++++--------- frysk-sys/lib/unwind/ChangeLog | 7 ++ frysk-sys/lib/unwind/cni/ElfImage.cxx | 7 +-- frysk-sys/lib/unwind/cni/UnwindH.hxx | 6 +-- 5 files changed, 51 insertions(+), 41 deletions(-) First 500 lines of diff: diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index cc60b59..f7af421 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,5 +1,11 @@ 2007-11-28 Mark Wielaard + * src/mi/Gget_unwind_table.c (unw_get_unwind_table): Make addr a + char *, pass addr as arg to dwarf_read functions, make + local_access_mem use arg as base address for start indexed reads. + +2007-11-28 Mark Wielaard + Revert: 2006-12-10 Jan Kratochvil diff --git a/frysk-imports/libunwind/src/mi/Gget_unwind_table.c b/frysk-imports/libunwind/src/mi/Gget_unwind_table.c index 3f71bb3..2acb947 100644 --- a/frysk-imports/libunwind/src/mi/Gget_unwind_table.c +++ b/frysk-imports/libunwind/src/mi/Gget_unwind_table.c @@ -32,7 +32,8 @@ unw_get_unwind_table(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, { Debug(99, "Entering get_unwind_table\n"); Elf_W(Phdr) *phdr, *ptxt = NULL, *peh_hdr = NULL, *pdyn = NULL; - unw_word_t addr, eh_frame_start, fde_count, load_base; + unw_word_t eh_frame_start, fde_count, load_base; + char *addr; struct dwarf_eh_frame_hdr *hdr; Elf_W(Ehdr) *ehdr; int i, ret; @@ -110,7 +111,7 @@ unw_get_unwind_table(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, Debug(99, "EH_VERSION is correct\n"); - addr = (unw_word_t) (hdr + 1); + addr = hdr + 1; Debug (99, "Got addr\n"); /* Fill in a dummy proc_info structure. We just need to fill in enough to ensure that dwarf_read_encoded_pointer() can do it's @@ -122,45 +123,48 @@ unw_get_unwind_table(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, Debug(99, "set pi gp\n"); - -//The following is a dummy local address space used by dwarf_read_encoded_pointer. +// The following is a local address space memory accessor used by +// dwarf_read_encoded_pointer. The arg pointer is the base address, +// addr is the offset from the base address. int local_access_mem (unw_addr_space_t as, unw_word_t addr, - unw_word_t *val, int write, void *arg) + unw_word_t *val, int write, void *arg) { - Debug(99, "entering local_access_mem, reading addr: 0x%lx into: %p\n", - (long) addr, val); - if (write) - { - Debug (16, "mem[%x] <- %x\n", addr, *val); - *(unw_word_t *) addr = *val; - } - else - { - *val = *(unw_word_t *) addr; - Debug (16, "mem[%x] -> %x\n", addr, *val); - } - Debug(99, "leaving local_access_mem\n"); - return 0; + Debug(99, "entering local_access_mem, reading addr: 0x%lx into: %p\n", + (long) addr, val); + if (write) + { + // Writing is not supported + return -UNW_EINVAL; + } + else + { + *val = *(unw_word_t *) (addr + (char *) arg); + Debug (16, "mem[%x] -> %x\n", (addr + (char *) arg), *val); + } + Debug(99, "leaving local_access_mem\n"); + return 0; } - unw_accessors_t temp_local_accessors = {NULL, NULL, NULL, local_access_mem, - NULL, NULL, NULL, NULL, NULL}; - unw_addr_space_t temp_local_addr_space - = unw_create_addr_space(&temp_local_accessors, 0); + unw_accessors_t local_accessors = {NULL, NULL, NULL, local_access_mem, + NULL, NULL, NULL, NULL, NULL}; + unw_addr_space_t local_addr_space + = unw_create_addr_space(&local_accessors, 0); + + unw_word_t start = 0; /* (Optionally) read eh_frame_ptr: */ - if ((ret = dwarf_read_encoded_pointer (temp_local_addr_space, &temp_local_accessors, - &addr, hdr->eh_frame_ptr_enc, pi, - &eh_frame_start, NULL)) < 0) + if ((ret = dwarf_read_encoded_pointer (local_addr_space, &local_accessors, + &start, hdr->eh_frame_ptr_enc, pi, + &eh_frame_start, addr)) < 0) return -1; Debug(99, "read eh_frame_start: 0x%lx\n", (long) eh_frame_start); /* (Optionally) read fde_count: */ - if ((ret = dwarf_read_encoded_pointer (temp_local_addr_space, &temp_local_accessors, - &addr, hdr->fde_count_enc, pi, - &fde_count, NULL)) < 0) + if ((ret = dwarf_read_encoded_pointer (local_addr_space, &local_accessors, + &start, hdr->fde_count_enc, pi, + &fde_count, addr)) < 0) return -1; Debug(99, "read fde_count: 0x%lx\n", (long) fde_count); @@ -169,7 +173,9 @@ unw_get_unwind_table(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi, return -1; } - load_base = segbase - ptxt->p_vaddr; + addr += start; + + load_base = segbase - ptxt->p_vaddr; di_cache.start_ip = segbase; di_cache.end_ip = di_cache.start_ip + ptxt->p_memsz; diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index ebb93ad..81e9ccb 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,10 @@ +2007-11-29 Mark Wielaard + + * cni/ElfImage.cxx: Don't define MAP_32BIT. + (mapElfImage): Don't use MAP_32BIT. + * cni/UnwindH.hxx: Don't define MAP_32BIT. + (createElfImageFromVDSO): Don't use MAP_32BIT. + 2007-11-23 Mark Wielaard * AddressSpace.java (getProcName): Removed. diff --git a/frysk-sys/lib/unwind/cni/ElfImage.cxx b/frysk-sys/lib/unwind/cni/ElfImage.cxx index bda8e25..d521643 100644 --- a/frysk-sys/lib/unwind/cni/ElfImage.cxx +++ b/frysk-sys/lib/unwind/cni/ElfImage.cxx @@ -48,10 +48,6 @@ #include "lib/unwind/ElfImage.h" -#ifndef MAP_32BIT -#define MAP_32BIT 0 -#endif - lib::unwind::ElfImage* lib::unwind::ElfImage::mapElfImage(jstring elfImageName, jlong segbase, jlong hi, jlong mapoff) @@ -77,8 +73,7 @@ lib::unwind::ElfImage::mapElfImage(jstring elfImageName, jlong segbase, jlong hi } size = stat.st_size; - image = mmap (NULL, size, PROT_READ, MAP_PRIVATE | MAP_32BIT, fd, 0); - + image = mmap (NULL, size, PROT_READ, MAP_PRIVATE, fd, 0); close (fd); if (image == MAP_FAILED) diff --git a/frysk-sys/lib/unwind/cni/UnwindH.hxx b/frysk-sys/lib/unwind/cni/UnwindH.hxx index 77a24cf..7be5254 100644 --- a/frysk-sys/lib/unwind/cni/UnwindH.hxx +++ b/frysk-sys/lib/unwind/cni/UnwindH.hxx @@ -77,10 +77,6 @@ # define MAX_VDSO_SIZE ((size_t) sysconf (_SC_PAGESIZE)) #endif -#ifndef MAP_32BIT -# define MAP_32BIT 0 -#endif - static lib::unwind::AddressSpace* addressSpace(void* arg) { @@ -477,7 +473,7 @@ lib::unwind::TARGET::createElfImageFromVDSO(lib::unwind::AddressSpace* addressSp logFine(this, logger, "checked magic size"); image = mmap (0, size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); + MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (image == MAP_FAILED) return new lib::unwind::ElfImage((jint) -1); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Nov 29 15:39:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 29 Nov 2007 15:39:00 -0000 Subject: [SCM] master: Tweak CorefileByteBuffer illegal address error message. Message-ID: <20071129153939.3374.qmail@sourceware.org> The branch, master has been updated via 048aeff01d868840ad9fb2f821592dc516a8b78a (commit) from 8e1270adf259c3816e9b0f8acd229bddaa2e77a7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 048aeff01d868840ad9fb2f821592dc516a8b78a Author: Phil Muldoon Date: Thu Nov 29 15:39:32 2007 +0000 Tweak CorefileByteBuffer illegal address error message. 2007-11-29 Phil Muldoon * CorefileByteBuffer.java (peek): Tweak error message on peek() at illegal address. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/ChangeLog | 5 +++++ frysk-core/frysk/proc/dead/CorefileByteBuffer.java | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index d0829f3..8790a32 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Phil Muldoon + + * CorefileByteBuffer.java (peek): Tweak error message + on peek() at illegal address. + 2007-11-26 Sami Wagiaalla Added a boolean for printing source libraries to Frame.toPrint(). diff --git a/frysk-core/frysk/proc/dead/CorefileByteBuffer.java b/frysk-core/frysk/proc/dead/CorefileByteBuffer.java index d3150af..3ef2164 100644 --- a/frysk-core/frysk/proc/dead/CorefileByteBuffer.java +++ b/frysk-core/frysk/proc/dead/CorefileByteBuffer.java @@ -124,9 +124,12 @@ public class CorefileByteBuffer } else - throw new RuntimeException("peek() at address " + - Long.toHexString(address)+" cannot be "+ - "found in metadata table."); + throw new RuntimeException("CorefileByteBuffer: Cannot peek() " + + "at address 0x" + + Long.toHexString(address)+"." + + " Address location is unknown " + + " (not in corefile, executable or "+ + " mapped solibs)."); return buffer[0]; } hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Nov 29 16:34:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 29 Nov 2007 16:34:00 -0000 Subject: [SCM] master: swagiaal: Removed LocationExpression.decode(Frame frame) Message-ID: <20071129163421.9952.qmail@sourceware.org> The branch, master has been updated via 48c29626db12707e63e75671c9a5c1cd77c86be4 (commit) via 6007065cbdef79d041559b8925ffd3c60c844ec6 (commit) via 6ae6ac4106e0abb1b7edbfa2c8fdc007594881bd (commit) via 8f903354f31d10c840f90f1b10c8c2df98bad46c (commit) via 5d59f04617e97a2856150fcb9407cbf80be84a13 (commit) from 048aeff01d868840ad9fb2f821592dc516a8b78a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 48c29626db12707e63e75671c9a5c1cd77c86be4 Author: Sami Wagiaalla Date: Thu Nov 29 11:26:08 2007 -0500 swagiaal: Removed LocationExpression.decode(Frame frame) +2007-11-29 Sami Wagiaalla + + * LocationExpression.java (decode): Delete decode(Frame frame). + commit 6007065cbdef79d041559b8925ffd3c60c844ec6 Author: Sami Wagiaalla Date: Thu Nov 29 10:52:48 2007 -0500 swagiaal: Removed List ops from LocationExpression constructor. frysk-core/frysk/debuginfo/ChangeLog +2007-11-29 Sami Wagiaalla + + * LocationExpression.java (LocationExpression): Removed ops from + constructor. + * TestLocationExpression.java: Updated. + * TestAddress.java: Updated. + frysk-core/frysk/value/ChangeLog +2007-11-29 Sami Wagiaalla + + Removed List ops from LocationExpression constructor. + * Variable.java: Updated. + Moved LocationExpression construction to constructor. + commit 6ae6ac4106e0abb1b7edbfa2c8fdc007594881bd Author: Sami Wagiaalla Date: Wed Nov 28 15:36:24 2007 -0500 swagiaal: CompositeType.java: Eliminated generic add function. frysk-core/frysk/value/ChangeLog +2007-11-28 Sami Wagiaalla + + * CompositeType.java: Eliminated generic add function and moved + member instantiation to repecteve add methods. commit 8f903354f31d10c840f90f1b10c8c2df98bad46c Author: Sami Wagiaalla Date: Wed Nov 28 15:00:35 2007 -0500 swagiaal: created CompositeType.addMemberTomap frysk-core/frysk/value/ChangeLog +2007-11-28 Sami Wagiaalla + + * CompositeType.java (addMemberToMap): New function. + commit 5d59f04617e97a2856150fcb9407cbf80be84a13 Author: Sami Wagiaalla Date: Wed Nov 28 14:51:23 2007 -0500 swagiaal: Renamed CompositeType addStaticBitFieldMember and addBitFieldMember. frysk-core/frysk/debuginfo/ChangeLog +2007-11-28 Sami Wagiaalla + + CompositeType.java: Renamed addStaticBitFieldMember and + addBitFieldMember. + * TypeEntry.java: Updated. + frysk-core/frysk/expr/ChangeLog +2007-11-28 Sami Wagiaalla + + CompositeType.java: Renamed addStaticBitFieldMember and + addBitFieldMember. + * TestbedSymTab.java: Updated. + frysk-core/frysk/value/ChangeLog +2007-11-28 Sami Wagiaalla + + * CompositeType.java (addStaticBitFieldMember): Renamed. + (addBitFieldMember): Renamed. + * TestComposite.java: Updated + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 19 + frysk-core/frysk/debuginfo/LocationExpression.java | 350 ++------------------ frysk-core/frysk/debuginfo/TestAddress.java | 8 +- .../frysk/debuginfo/TestLocationExpression.java | 4 +- frysk-core/frysk/debuginfo/TypeEntry.java | 6 +- frysk-core/frysk/expr/ChangeLog | 6 + frysk-core/frysk/expr/TestbedSymTab.java | 4 +- frysk-core/frysk/value/ChangeLog | 21 ++ frysk-core/frysk/value/CompositeType.java | 82 ++--- frysk-core/frysk/value/TestComposite.java | 16 +- frysk-core/frysk/value/Variable.java | 7 +- 11 files changed, 122 insertions(+), 401 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 10c7918..f33e9f7 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,20 @@ +2007-11-29 Sami Wagiaalla + + * LocationExpression.java (decode): Delete decode(Frame frame). + +2007-11-29 Sami Wagiaalla + + * LocationExpression.java (LocationExpression): Removed ops from + constructor. + * TestLocationExpression.java: Updated. + * TestAddress.java: Updated. + +2007-11-28 Sami Wagiaalla + + CompositeType.java: Renamed addStaticBitFieldMember and + addBitFieldMember. + * TypeEntry.java: Updated. + 2007-11-28 Teresa Thomas * TestPieceLocation.java (testMapping): Delete - redundant @@ -12,6 +29,8 @@ to be passed as an argument to decoding functions. * TestAddress.java: Updated. * TestLocationExpression.java: Updated. + * TypeEntry.java: Updated. + 2007-11-26 Sami Wagiaalla diff --git a/frysk-core/frysk/debuginfo/LocationExpression.java b/frysk-core/frysk/debuginfo/LocationExpression.java index b1e3d81..7db72aa 100644 --- a/frysk-core/frysk/debuginfo/LocationExpression.java +++ b/frysk-core/frysk/debuginfo/LocationExpression.java @@ -47,6 +47,7 @@ import lib.dwfl.DwAt; import lib.dwfl.DwOp; import lib.dwfl.DwarfDie; import lib.dwfl.DwarfOp; +import frysk.Config; import frysk.isa.Register; import frysk.isa.RegisterMap; import frysk.stack.Frame; @@ -56,14 +57,12 @@ public class LocationExpression { locationTypeAddress = 2, locationTypeReg = 3; DwarfDie die; - List ops; int locationType; LinkedList stack; - public LocationExpression(DwarfDie die, List ops) { + public LocationExpression(DwarfDie die) { locationType = 0; this.die = die; - this.ops = ops; this.stack = null; } @@ -71,337 +70,20 @@ public class LocationExpression { * Decode a location list and return the value. * */ - public long decode (Frame frame) { - stack = new LinkedList(); - int nops = ops.size(); - RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()); - - if (nops == 0) - if (die.getAttrBoolean(DwAt.LOCATION)) - throw new VariableOptimizedOutException(); - else - throw new ValueUavailableException(); - - for(int i = 0; i < nops; i++) { - int operator = ((DwarfOp) ops.get(i)).operator; - long operand1 = ((DwarfOp) ops.get(i)).operand1; - long operand2 = ((DwarfOp) ops.get(i)).operand2; - switch (operator) { - case DwOp.LIT0_: - case DwOp.LIT1_: - case DwOp.LIT2_: - case DwOp.LIT3_: - case DwOp.LIT4_: - case DwOp.LIT5_: - case DwOp.LIT6_: - case DwOp.LIT7_: - case DwOp.LIT8_: - case DwOp.LIT9_: - case DwOp.LIT10_: - case DwOp.LIT11_: - case DwOp.LIT12_: - case DwOp.LIT13_: - case DwOp.LIT14_: - case DwOp.LIT15_: - case DwOp.LIT16_: - case DwOp.LIT17_: - case DwOp.LIT18_: - case DwOp.LIT19_: - case DwOp.LIT20_: - case DwOp.LIT21_: - case DwOp.LIT22_: - case DwOp.LIT23_: - case DwOp.LIT24_: - case DwOp.LIT25_: - case DwOp.LIT26_: - case DwOp.LIT27_: - case DwOp.LIT28_: - case DwOp.LIT29_: - case DwOp.LIT30_: - case DwOp.LIT31_: - stack.addFirst(new Long(operator - DwOp.LIT0_)); - break; - - // Register name Operators - case DwOp.REG0_: - case DwOp.REG1_: - case DwOp.REG2_: - case DwOp.REG3_: - case DwOp.REG4_: - case DwOp.REG5_: - case DwOp.REG6_: - case DwOp.REG7_: - case DwOp.REG8_: - case DwOp.REG9_: - case DwOp.REG10_: - case DwOp.REG11_: - case DwOp.REG12_: - case DwOp.REG13_: - case DwOp.REG14_: - case DwOp.REG15_: - case DwOp.REG16_: - case DwOp.REG17_: - case DwOp.REG18_: - case DwOp.REG19_: - case DwOp.REG20_: - case DwOp.REG21_: - case DwOp.REG22_: - case DwOp.REG23_: - case DwOp.REG24_: - case DwOp.REG25_: - case DwOp.REG26_: - case DwOp.REG27_: - case DwOp.REG28_: - case DwOp.REG29_: - case DwOp.REG30_: - case DwOp.REG31_: - if (locationType == 0) - locationType = locationTypeReg; - Register register = registerMap.getRegister(operator - DwOp.REG0_); - long regval = frame.getRegister(register); - stack.addFirst(new Long(regval)); - break; - - case DwOp.BREG0_: - case DwOp.BREG1_: - case DwOp.BREG2_: - case DwOp.BREG3_: - case DwOp.BREG4_: - case DwOp.BREG5_: - case DwOp.BREG6_: - case DwOp.BREG7_: - case DwOp.BREG8_: - case DwOp.BREG9_: - case DwOp.BREG10_: - case DwOp.BREG11_: - case DwOp.BREG12_: - case DwOp.BREG13_: - case DwOp.BREG14_: - case DwOp.BREG15_: - case DwOp.BREG16_: - case DwOp.BREG17_: - case DwOp.BREG18_: - case DwOp.BREG19_: - case DwOp.BREG20_: - case DwOp.BREG21_: - case DwOp.BREG22_: - case DwOp.BREG23_: - case DwOp.BREG24_: - case DwOp.BREG25_: - case DwOp.BREG26_: - case DwOp.BREG27_: - case DwOp.BREG28_: - case DwOp.BREG29_: - case DwOp.BREG30_: - case DwOp.BREG31_: - locationType = locationTypeRegDisp; - register = registerMap.getRegister(operator - DwOp.BREG0_); - regval = frame.getRegister(register); - stack.addFirst(new Long(operand1 + regval)); - break; - - - case DwOp.REGX_: - register = registerMap.getRegister((int)operand1); - regval = frame.getRegister(register); - stack.addFirst(new Long(regval)); - break; - - case DwOp.ADDR_: - locationType = locationTypeAddress; - stack.addFirst(new Long(operand1)); - break; - - // DW_OP_fbreg calls recursively and pushes that value on the stack - case DwOp.FBREG_: - locationType = locationTypeRegDisp; - long pc = frame.getAdjustedAddress(); - LocationExpression frameBaseOps = new LocationExpression (die, die.getFrameBase(pc)); - stack.addFirst(new Long(operand1 + frameBaseOps.decode(frame))); - break; - - // ??? unsigned not properly handled (use bignum?) See DwarfDie.java - case DwOp.CONST1U_: - case DwOp.CONST1S_: - case DwOp.CONST2U_: - case DwOp.CONST2S_: - case DwOp.CONST4U_: - case DwOp.CONST4S_: - case DwOp.CONSTU_: - case DwOp.CONSTS_: - stack.addFirst(new Long(operand1)); - break; - - // Stack Operations - case DwOp.DUP_: - stack.addFirst(stack.getFirst()); - break; - - case DwOp.OVER_: - stack.addFirst(stack.get(1)); - break; - - case DwOp.DROP_: - stack.removeFirst(); - break; - - case DwOp.SWAP_: - Long first = (Long) stack.removeFirst(); - Long second = (Long) stack.removeFirst(); - stack.addFirst(first); - stack.addFirst(second); - break; - - case DwOp.ROT_: - first = (Long) stack.removeFirst(); - second = (Long) stack.removeFirst(); - Long third = (Long) stack.removeFirst(); - stack.addFirst(first); - stack.addFirst(third); - stack.addFirst(second); - break; - - // Arithmetic Operations - case DwOp.PLUS_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 + operand2)); - break; - - case DwOp.PLUS_UCONST_: - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 + operand2)); - break; - - case DwOp.MINUS_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 + operand2)); // - ? - break; - - case DwOp.MUL_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 * operand2)); - break; - - case DwOp.DIV_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - // Should there be a check here for operand1!=0 ? - stack.addFirst(new Long(operand2 / operand1)); - break; - - case DwOp.MOD_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - // Should there be a check here for operand1!=0 ? - stack.addFirst(new Long(operand2 % operand1)); - break; - - case DwOp.ABS_: - operand1 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(Math.abs(operand1))); - break; - - case DwOp.AND_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 & operand2)); - break; - - case DwOp.OR_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 | operand2)); - break; - - case DwOp.SHL_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand2 << operand1)); - break; - - case DwOp.SHR_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand2 >>> operand1)); - break; - - case DwOp.SHRA_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand2 >> operand1)); - break; - - case DwOp.XOR_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(operand1 ^ operand2)); - break; - - case DwOp.NEG_: - operand1 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(0-operand1)); - break; - - case DwOp.NOT_: - operand1 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long(~operand1)); - break; - - // Control flow operations - case DwOp.LE_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 <= operand1)? 1:0)); - break; - - case DwOp.GE_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 >= operand1)? 1:0)); - break; - - case DwOp.EQ_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 == operand1)? 1:0)); - break; - - case DwOp.LT_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 < operand1)? 1:0)); - break; - - case DwOp.GT_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 > operand1)? 1:0)); - break; - - case DwOp.NE_: - operand1 = ((Long)stack.removeFirst()).longValue(); - operand2 = ((Long)stack.removeFirst()).longValue(); - stack.addFirst(new Long((operand2 != operand1)? 1:0)); - break; - - // ??? Support remaining operators - default: - throw new ValueUavailableException(); - } - } - return ((Long)stack.removeFirst()).longValue(); + + public List decode(DebugInfoFrame frame, int size) { + List ops = die.getFormData(frame.getAdjustedAddress()); + return decode(frame, ops, size); } - + /** * Decode a location list and return the value * @param size - Size of variable * @return List of memory or register pieces */ - public List decode (Frame frame, int size) + public List decode (Frame frame, List ops, int size) { + stack = new LinkedList(); int nops = ops.size(); RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()); @@ -559,8 +241,14 @@ public class LocationExpression { case DwOp.FBREG_: locationType = locationTypeRegDisp; long pc = frame.getAdjustedAddress(); - LocationExpression frameBaseOps = new LocationExpression (die, die.getFrameBase(pc)); - stack.addFirst(new Long(operand1 + frameBaseOps.decode(frame))); + LocationExpression frameBaseOps = new LocationExpression (die); + + // FBREG is expected to return a memory address + // so we make that assumption when casting element 0 to MemoryPiece + stack.addFirst(new Long(operand1 + + ((MemoryPiece) frameBaseOps.decode(frame, + die.getFrameBase(pc), Config.getWordSize()) + .get(0)).getMemory())); break; // ??? unsigned not properly handled (use bignum?) See DwarfDie.java @@ -791,7 +479,8 @@ public class LocationExpression { * Return register number for a one entry DW_OP_regX location list * */ - public Register getRegisterNumber (Frame frame) { + public Register getRegisterNumber (Frame frame, List ops) { + if (ops.size() == 1) { int operator = ((DwarfOp) ops.get(0)).operator; if (operator >= DwOp.REG0_ @@ -811,4 +500,5 @@ public class LocationExpression { public int getStackSize() { return ((stack != null) ? stack.size() : 0); } + } diff --git a/frysk-core/frysk/debuginfo/TestAddress.java b/frysk-core/frysk/debuginfo/TestAddress.java index e2c55d8..cca5ef8 100644 --- a/frysk-core/frysk/debuginfo/TestAddress.java +++ b/frysk-core/frysk/debuginfo/TestAddress.java @@ -86,8 +86,8 @@ public class TestAddress Variable var = (Variable) declarationSearchEngine.getVariable(variable); DwarfDie varDie = var.getVariableDie(); List ops = varDie.getFormData(frame.getAdjustedAddress()); - LocationExpression locExpr = new LocationExpression(varDie, ops); - PieceLocation loc = new PieceLocation(locExpr.decode(frame,var.getType + LocationExpression locExpr = new LocationExpression(varDie); + PieceLocation loc = new PieceLocation(locExpr.decode(frame, ops,var.getType (frame.getTask().getISA()).getSize())); /* Get the value of the address. @@ -96,8 +96,8 @@ public class TestAddress DwarfDie addrDie = addr.getVariableDie(); List opsAddr = addrDie.getFormData(frame.getAdjustedAddress()); LocationExpression locExprAddr = new LocationExpression( - addrDie, opsAddr); - PieceLocation p = new PieceLocation(locExprAddr.decode(frame, addr.getType + addrDie); + PieceLocation p = new PieceLocation(locExprAddr.decode(frame, opsAddr, addr.getType (frame.getTask().getISA()).getSize())); Value addrVal = new Value(addr.getType(frame.getTask().getISA()), p); diff --git a/frysk-core/frysk/debuginfo/TestLocationExpression.java b/frysk-core/frysk/debuginfo/TestLocationExpression.java index 271a3ff..4393145 100644 --- a/frysk-core/frysk/debuginfo/TestLocationExpression.java +++ b/frysk-core/frysk/debuginfo/TestLocationExpression.java @@ -396,8 +396,8 @@ public class TestLocationExpression Task task = getStoppedTask(); Frame frame = StackFactory.createFrame(task); - LocationExpression locExp = new LocationExpression(die, ops); - List loc = locExp.decode(frame,12); + LocationExpression locExp = new LocationExpression(die); + List loc = locExp.decode(frame, ops,12); assertEquals ("Stack size", stackSize, locExp.getStackSize()); compareLocations (loc, expectedLoc); diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 2e8d01f..d1b5861 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -175,10 +175,10 @@ public class TypeEntry int bitOffset = member .getAttrConstant(DwAt.BIT_OFFSET); if(staticMember){ - classType.addStaticMember(member.getName(), memberType, offset, access, + classType.addStaticBitFieldMember(member.getName(), memberType, offset, access, bitOffset, bitSize); }else{ - classType.addMember(member.getName(), memberType, offset, access, + classType.addBitFieldMember(member.getName(), memberType, offset, access, bitOffset, bitSize); } } @@ -272,7 +272,7 @@ public class TypeEntry if (bitSize != -1) { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 29 17:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 29 Nov 2007 17:54:00 -0000 Subject: [SCM] master: Change AddressSpace.accessReg(int, ...) to take a number. Message-ID: <20071129175459.30968.qmail@sourceware.org> The branch, master has been updated via 31a3d5e95b53ff38962a6cd09ec526b28119c3ab (commit) from 48c29626db12707e63e75671c9a5c1cd77c86be4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 31a3d5e95b53ff38962a6cd09ec526b28119c3ab Author: Andrew Cagney Date: Thu Nov 29 12:52:23 2007 -0500 Change AddressSpace.accessReg(int, ...) to take a number. frysk-core/frysk/debuginfo/ChangeLog 2007-11-29 Andrew Cagney * DwarfRegisterMapFactory.java: Update; RegisterMap constructor takes a String. frysk-core/frysk/isa/ChangeLog 2007-11-29 Andrew Cagney * RegisterMap.java (RegisterMap(String)): New. (getRegister(Number)): New. (getRegisterNumber(Register)): Check for missing key. (getRegister(int)): Ditto. frysk-core/frysk/stack/ChangeLog 2007-11-29 Andrew Cagney * LibunwindRegisterMapFactory.java: Update; RegisterMap constructor takes a String. * LibunwindAddressSpace.java (accessReg(Number,byte[],boolean)): Replace accessFPReg(int,byte[],boolean). (getReg(Number)): Replace getReg(int). (setReg(Number,long)): Replace setReg(int,long). (findRegister(int)): Delete. frysk-sys/lib/unwind/ChangeLog 2007-11-29 Andrew Cagney * AddressSpace.java (getReg(Number)): Replace getReg(int). (setReg(Number,long)): Replace setReg(int,long). (accessReg(Number,byte[],boolean)): Replace accessFPReg(int,byte[],boolean). * TestUnwind.java: Update. * cni/UnwindX8664.cxx (LIB_UNWIND_REGISTERS_H): Define. (TARGET_REGISTERS): Define. * cni/UnwindPPC64.cxx: Ditto. * cni/UnwindPPC32.cxx: Ditto. * cni/UnwindX86.cxx: Ditto. * Unwind.java (getRegister(RawDataManaged,Number,long,int,byte[],int)): Replace getRegister(RawDataManaged,int,long,int,byte[],int). (setRegister(RawDataManaged,Number,long,int,byte[],int)): Replace setRegister(RawDataManaged,int,long,int,byte[],int). * Cursor.java: Update. * cni/UnwindH.hxx (access_fpreg): Update. (access_reg): Update. (getRegister): Update. (setRegister): Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++ .../frysk/debuginfo/DwarfRegisterMapFactory.java | 6 ++- frysk-core/frysk/isa/ChangeLog | 7 ++++ frysk-core/frysk/isa/RegisterMap.java | 34 +++++++++++++++++- frysk-core/frysk/stack/ChangeLog | 10 +++++ frysk-core/frysk/stack/LibunwindAddressSpace.java | 37 +++++-------------- .../frysk/stack/LibunwindRegisterMapFactory.java | 12 ++++-- frysk-sys/lib/unwind/AddressSpace.java | 15 +++++--- frysk-sys/lib/unwind/ChangeLog | 23 ++++++++++++ frysk-sys/lib/unwind/Cursor.java | 6 +-- frysk-sys/lib/unwind/TestUnwind.java | 6 ++-- frysk-sys/lib/unwind/Unwind.java | 4 +- frysk-sys/lib/unwind/cni/UnwindH.hxx | 20 ++++++++--- frysk-sys/lib/unwind/cni/UnwindPPC32.cxx | 2 + frysk-sys/lib/unwind/cni/UnwindPPC64.cxx | 2 + frysk-sys/lib/unwind/cni/UnwindX86.cxx | 2 + frysk-sys/lib/unwind/cni/UnwindX8664.cxx | 2 + 17 files changed, 139 insertions(+), 54 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index f33e9f7..104cfd7 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Andrew Cagney + + * DwarfRegisterMapFactory.java: Update; RegisterMap constructor + takes a String. + 2007-11-29 Sami Wagiaalla * LocationExpression.java (decode): Delete decode(Frame frame). diff --git a/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java b/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java index 68a6476..52646a3 100644 --- a/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java +++ b/frysk-core/frysk/debuginfo/DwarfRegisterMapFactory.java @@ -49,7 +49,8 @@ import frysk.isa.X8664Registers; public class DwarfRegisterMapFactory { - private static final RegisterMap IA32 = new RegisterMap() + private static final RegisterMap IA32 + = new RegisterMap("IA-32 DWARF") .add(IA32Registers.EAX, DwarfRegistersX86.EAX) .add(IA32Registers.ECX, DwarfRegistersX86.ECX) .add(IA32Registers.EDX, DwarfRegistersX86.EDX) @@ -60,7 +61,8 @@ public class DwarfRegisterMapFactory { .add(IA32Registers.EDI, DwarfRegistersX86.EDI) ; - private static final RegisterMap X8664 = new RegisterMap() + private static final RegisterMap X8664 + = new RegisterMap("X86-64 DWARF") .add(X8664Registers.RAX, DwarfRegistersX8664.RAX) .add(X8664Registers.RDX, DwarfRegistersX8664.RDX) .add(X8664Registers.RCX, DwarfRegistersX8664.RCX) diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index cb10669..20ce4cd 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,10 @@ +2007-11-29 Andrew Cagney + + * RegisterMap.java (RegisterMap(String)): New. + (getRegister(Number)): New. + (getRegisterNumber(Register)): Check for missing key. + (getRegister(int)): Ditto. + 2007-11-28 Andrew Cagney * TestRegisters.java (testGeneralRegisterGroup()): Rename diff --git a/frysk-core/frysk/isa/RegisterMap.java b/frysk-core/frysk/isa/RegisterMap.java index 43d4976..5b27c35 100644 --- a/frysk-core/frysk/isa/RegisterMap.java +++ b/frysk-core/frysk/isa/RegisterMap.java @@ -42,23 +42,53 @@ package frysk.isa; import java.util.HashMap; import java.util.Map; +/** + * Provides a map between an internal and external register format. + */ public class RegisterMap { private final Map integerToRegister = new HashMap(); private final Map registerToNumber = new HashMap(); + private final Map numberToRegister = new HashMap(); + private final String what; + + public RegisterMap(String what) { + this.what = what; + } public final RegisterMap add(Register register, Number number) { registerToNumber.put(register, number); integerToRegister.put(new Integer(number.intValue()), register); + numberToRegister.put(number, register); return this; } public Number getRegisterNumber(Register register) { - return (Number) registerToNumber.get(register); + Number number = (Number) registerToNumber.get(register); + if (number == null) + throw new NullPointerException("register <" + register + + "> not found in " + what + + " register map"); + return number; } public Register getRegister(int regNum) { - return (Register) integerToRegister.get(new Integer(regNum)); + Register register + = (Register) integerToRegister.get(new Integer(regNum)); + if (register == null) + throw new NullPointerException("register number <" + regNum + + "> not found in " + what + + " register map"); + return register; + } + + public Register getRegister(Number number) { + Register register = (Register) numberToRegister.get(number); + if (register == null) + throw new NullPointerException("register number <" + number + + "> not found in " + what + + " register map"); + return register; } } diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 7fc09c4..3ecebc0 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,13 @@ +2007-11-29 Andrew Cagney + + * LibunwindRegisterMapFactory.java: Update; RegisterMap + constructor takes a String. + * LibunwindAddressSpace.java (accessReg(Number,byte[],boolean)): + Replace accessFPReg(int,byte[],boolean). + (getReg(Number)): Replace getReg(int). + (setReg(Number,long)): Replace setReg(int,long). + (findRegister(int)): Delete. + 2007-11-26 Andrew Cagney * LibunwindRegisterMapFactory.java: Replace IA32Registers.FOP diff --git a/frysk-core/frysk/stack/LibunwindAddressSpace.java b/frysk-core/frysk/stack/LibunwindAddressSpace.java index 4b5f8d5..0027b0c 100644 --- a/frysk-core/frysk/stack/LibunwindAddressSpace.java +++ b/frysk-core/frysk/stack/LibunwindAddressSpace.java @@ -104,43 +104,26 @@ class LibunwindAddressSpace extends AddressSpace { return 0; } - /** - * Why not map from libunwind's regnum straight through to - * frysk.proc.BankRegister? "banks" are an underlying - * implementation detail that may not apply to all tasks; and for - * a 32-bit tasks different maps are used dependant on it being a - * 32-bit or 64-bit system - something that isn't relevant here.. - */ - private Register findRegister(int regnum) { - Register reg = registerMap.getRegister(regnum); - if (reg == null) - throw new RuntimeException("unknown libunwind register: " - + regnum); - return reg; - } - - public int accessFPReg (int regnum, byte[] fpvalp, boolean write) { - Register reg = registerMap.getRegister(regnum); - task.access(reg, 0, fpvalp.length, fpvalp, 0, write); + public int accessReg (Number regnum, byte[] fpvalp, boolean write) { + Register register = registerMap.getRegister(regnum); + task.access(register, 0, fpvalp.length, fpvalp, 0, write); return 0; } - public long getReg(int regnum) { - Register register = findRegister(regnum); + public long getReg(Number regnum) { + Register register = registerMap.getRegister(regnum); logger.log(Level.FINE, "{0}: getReg {1} ({2})", - new Object[] { this, new Integer(regnum), register }); - long val = task.getRegister(findRegister(regnum)); + new Object[] { this, regnum, register }); + long val = task.getRegister(register); logger.log(Level.FINE, "read value: 0x{0}\n", Long.toHexString(val)); return val; } - public void setReg(int regnum, long regval) { - Register register = findRegister(regnum); + public void setReg(Number regnum, long regval) { + Register register = registerMap.getRegister(regnum); logger.log(Level.FINE, "{0}: setReg {1} ({2}), val {3}", - new Object[] { - this, new Integer(regnum), register, new Long(regval) - }); + new Object[] { this, regnum, register, new Long(regval) }); task.setRegister(register, regval); } diff --git a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java index 7763b64..51b65c1 100644 --- a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java +++ b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java @@ -54,7 +54,8 @@ import frysk.isa.ISAMap; public class LibunwindRegisterMapFactory { - private static final RegisterMap IA32 = new RegisterMap() + private static final RegisterMap IA32 + = new RegisterMap("IA-32 libunwind") .add(IA32Registers.EAX, UnwindRegistersX86.EAX) .add(IA32Registers.EDX, UnwindRegistersX86.EDX) .add(IA32Registers.ECX, UnwindRegistersX86.ECX) @@ -97,7 +98,8 @@ public class LibunwindRegisterMapFactory { .add(IA32Registers.LDT, UnwindRegistersX86.LDT) ; - private static final RegisterMap X8664 = new RegisterMap() + private static final RegisterMap X8664 + = new RegisterMap("X86-64 libunwind") .add(X8664Registers.RAX, UnwindRegistersX8664.RAX) .add(X8664Registers.RDX, UnwindRegistersX8664.RDX) .add(X8664Registers.RCX, UnwindRegistersX8664.RCX) @@ -117,7 +119,8 @@ public class LibunwindRegisterMapFactory { .add(X8664Registers.RIP, UnwindRegistersX8664.RIP) ; - private static final RegisterMap PPC64 = new RegisterMap() + private static final RegisterMap PPC64 + = new RegisterMap("PPC64 libunwind") .add(PPC64Registers.GPR0, UnwindRegistersPPC64.R0) .add(PPC64Registers.GPR1, UnwindRegistersPPC64.R1) .add(PPC64Registers.GPR2, UnwindRegistersPPC64.R2) @@ -152,7 +155,8 @@ public class LibunwindRegisterMapFactory { .add(PPC64Registers.GPR29, UnwindRegistersPPC64.R31) ; - private static final RegisterMap PPC32 = new RegisterMap() + private static final RegisterMap PPC32 + = new RegisterMap("PPC32 libunwind") .add(PPC32Registers.GPR0, UnwindRegistersPPC32.R0) .add(PPC32Registers.GPR1, UnwindRegistersPPC32.R1) .add(PPC32Registers.GPR2, UnwindRegistersPPC32.R2) diff --git a/frysk-sys/lib/unwind/AddressSpace.java b/frysk-sys/lib/unwind/AddressSpace.java index c1df18b..fafd777 100644 --- a/frysk-sys/lib/unwind/AddressSpace.java +++ b/frysk-sys/lib/unwind/AddressSpace.java @@ -93,15 +93,20 @@ public abstract class AddressSpace public abstract int accessMem (long addr, byte[] valp, boolean write); /** - * See access_reg(write=false). + * See UnwindH.hxx:access_reg(write=false); only used for small + * integer registers. */ - public abstract long getReg(int regnum); + public abstract long getReg(Number regnum); /** - * See access_reg(write=true). + * See UnwindH.hxx:access_reg(write=true); only used for small + * integer registers. */ - public abstract void setReg(int regnum, long regval); + public abstract void setReg(Number regnum, long regval); - public abstract int accessFPReg (int regnum, byte[] fpvalp, boolean write); + /** + * Access LIBUNWIND Register REGNUM. + */ + public abstract int accessReg(Number regnum, byte[] val, boolean write); public abstract int resume (Cursor cursor); } diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index 81e9ccb..3ec704a 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,26 @@ +2007-11-29 Andrew Cagney + + * AddressSpace.java (getReg(Number)): Replace getReg(int). + (setReg(Number,long)): Replace setReg(int,long). + (accessReg(Number,byte[],boolean)): Replace + accessFPReg(int,byte[],boolean). + * TestUnwind.java: Update. + * cni/UnwindX8664.cxx (LIB_UNWIND_REGISTERS_H): Define. + (TARGET_REGISTERS): Define. + * cni/UnwindPPC64.cxx: Ditto. + * cni/UnwindPPC32.cxx: Ditto. + * cni/UnwindX86.cxx: Ditto. + * Unwind.java + (getRegister(RawDataManaged,Number,long,int,byte[],int)): Replace + getRegister(RawDataManaged,int,long,int,byte[],int). + (setRegister(RawDataManaged,Number,long,int,byte[],int)): Replace + setRegister(RawDataManaged,int,long,int,byte[],int). + * Cursor.java: Update. + * cni/UnwindH.hxx (access_fpreg): Update. + (access_reg): Update. + (getRegister): Update. + (setRegister): Update. + 2007-11-29 Mark Wielaard * cni/ElfImage.cxx: Don't define MAP_32BIT. diff --git a/frysk-sys/lib/unwind/Cursor.java b/frysk-sys/lib/unwind/Cursor.java index 8628bd9..f12156d 100644 --- a/frysk-sys/lib/unwind/Cursor.java +++ b/frysk-sys/lib/unwind/Cursor.java @@ -71,14 +71,12 @@ public class Cursor public void getRegister(Number regNum, long offset, int length, byte[] bytes, int start) { - unwinder.getRegister(cursor, regNum.intValue(), offset, length, - bytes, start); + unwinder.getRegister(cursor, regNum, offset, length, bytes, start); } public void setRegister(Number regNum, long offset, int length, byte[] bytes, int start) { - unwinder.setRegister(cursor, regNum.intValue(), offset, length, - bytes, start); + unwinder.setRegister(cursor, regNum, offset, length, bytes, start); } public long getIP() { diff --git a/frysk-sys/lib/unwind/TestUnwind.java b/frysk-sys/lib/unwind/TestUnwind.java index 255b36a..828eba2 100644 --- a/frysk-sys/lib/unwind/TestUnwind.java +++ b/frysk-sys/lib/unwind/TestUnwind.java @@ -56,16 +56,16 @@ public class TestUnwind TestAddressSpace(Unwind unwind, ByteOrder byteOrder) { super(unwind, byteOrder); } - public int accessFPReg (int regnum, byte[] fpvalp, boolean write) { + public int accessReg(Number regnum, byte[] fpvalp, boolean write) { return 0; } public int accessMem (long addr, byte[] valp, boolean write) { return 0; } - public long getReg (int regnum) { + public long getReg(Number regnum) { return 0; } - public void setReg (int regnum, long regval) { + public void setReg(Number regnum, long regval) { } public ProcInfo findProcInfo (long ip, boolean needUnwindInfo) { return null; diff --git a/frysk-sys/lib/unwind/Unwind.java b/frysk-sys/lib/unwind/Unwind.java index 2ab70ef..27bfaa3 100644 --- a/frysk-sys/lib/unwind/Unwind.java +++ b/frysk-sys/lib/unwind/Unwind.java @@ -63,9 +63,9 @@ public abstract class Unwind abstract ProcInfo getProcInfo (RawDataManaged cursor); - abstract void getRegister(RawDataManaged cursor, int regNum, + abstract void getRegister(RawDataManaged cursor, Number regNum, long offset, int length, byte[] word, int start); - abstract void setRegister(RawDataManaged cursor, int regNum, + abstract void setRegister(RawDataManaged cursor, Number regNum, long offset, int length, byte[] word, int start); public abstract long getIP(RawDataManaged cursor); diff --git a/frysk-sys/lib/unwind/cni/UnwindH.hxx b/frysk-sys/lib/unwind/cni/UnwindH.hxx index 7be5254..2580365 100644 --- a/frysk-sys/lib/unwind/cni/UnwindH.hxx +++ b/frysk-sys/lib/unwind/cni/UnwindH.hxx @@ -68,6 +68,7 @@ #include "lib/unwind/CachingPolicy.h" #include "lib/unwind/ProcInfo.h" #include "lib/unwind/ElfImage.h" +#include LIB_UNWIND_REGISTERS_H #include "frysk/sys/cni/Errno.hxx" @@ -152,11 +153,13 @@ access_reg(::unw_addr_space_t as, ::unw_regnum_t regnum, ::unw_word_t *valp, int write, void *arg) { jbyteArray tmp = JvNewByteArray(sizeof (unw_word_t)); + // Map the REGNUM back to the published ENUM. + java::lang::Number* num = lib::unwind::TARGET_REGISTERS::valueOf(regnum); memcpy (elements (tmp), valp, JvGetArrayLength(tmp)); if (write) - addressSpace(arg)->setReg(regnum, *valp); + addressSpace(arg)->setReg(num, *valp); else - *valp = addressSpace(arg)->getReg(regnum); + *valp = addressSpace(arg)->getReg(num); return 0; } @@ -168,8 +171,11 @@ access_fpreg(::unw_addr_space_t as, ::unw_regnum_t regnum, ::unw_fpreg_t *fpvalp, int write, void *arg) { jbyteArray tmp = JvNewByteArray(sizeof (unw_word_t)); + // Map the REGNUM back to the published ENUM. + java::lang::Number* num = lib::unwind::TARGET_REGISTERS::valueOf(regnum); + // Implement read/modify/write style op. memcpy (elements (tmp), fpvalp, JvGetArrayLength(tmp)); - int ret = addressSpace(arg)->accessFPReg((jint) regnum, tmp, (jboolean) write); + int ret = addressSpace(arg)->accessReg(num, tmp, (jboolean) write); memcpy(fpvalp, elements (tmp), JvGetArrayLength(tmp)); return ret; } @@ -272,9 +278,11 @@ verifyBounds(jlong offset, jint length, jbyteArray bytes, jint start, int size) void lib::unwind::TARGET::getRegister(gnu::gcj::RawDataManaged* cursor, - jint regNum, jlong offset, jint length, + java::lang::Number* num, + jlong offset, jint length, jbyteArray bytes, jint start) { + int regNum = num->intValue(); int status; union { unw_word_t w; @@ -301,9 +309,11 @@ lib::unwind::TARGET::getRegister(gnu::gcj::RawDataManaged* cursor, void lib::unwind::TARGET::setRegister(gnu::gcj::RawDataManaged* cursor, - jint regNum, jlong offset, jint length, + java::lang::Number *num, + jlong offset, jint length, jbyteArray bytes, jint start) { + int regNum = num->intValue(); int status; union { unw_word_t w; diff --git a/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx b/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx index 3c2584a..2376111 100644 --- a/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx +++ b/frysk-sys/lib/unwind/cni/UnwindPPC32.cxx @@ -40,5 +40,7 @@ #define TARGET UnwindPPC32 #define LIBUNWIND_TARGET_H #define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindPPC32.h" +#define LIB_UNWIND_REGISTERS_H "lib/unwind/UnwindRegistersPPC32.h" +#define TARGET_REGISTERS UnwindRegistersPPC32 #include "lib/unwind/cni/UnwindH.hxx" diff --git a/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx b/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx index bafdc9d..20b41e5 100644 --- a/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx +++ b/frysk-sys/lib/unwind/cni/UnwindPPC64.cxx @@ -40,5 +40,7 @@ #define TARGET UnwindPPC64 #define LIBUNWIND_TARGET_H #define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindPPC64.h" +#define LIB_UNWIND_REGISTERS_H "lib/unwind/UnwindRegistersPPC64.h" +#define TARGET_REGISTERS UnwindRegistersPPC64 #include "lib/unwind/cni/UnwindH.hxx" diff --git a/frysk-sys/lib/unwind/cni/UnwindX86.cxx b/frysk-sys/lib/unwind/cni/UnwindX86.cxx index 8af5b16..b31bfed 100644 --- a/frysk-sys/lib/unwind/cni/UnwindX86.cxx +++ b/frysk-sys/lib/unwind/cni/UnwindX86.cxx @@ -40,5 +40,7 @@ #define TARGET UnwindX86 #define LIBUNWIND_TARGET_H #define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindX86.h" +#define LIB_UNWIND_REGISTERS_H "lib/unwind/UnwindRegistersX86.h" +#define TARGET_REGISTERS UnwindRegistersX86 #include "lib/unwind/cni/UnwindH.hxx" diff --git a/frysk-sys/lib/unwind/cni/UnwindX8664.cxx b/frysk-sys/lib/unwind/cni/UnwindX8664.cxx index dd3d44c..856a70b 100644 --- a/frysk-sys/lib/unwind/cni/UnwindX8664.cxx +++ b/frysk-sys/lib/unwind/cni/UnwindX8664.cxx @@ -40,5 +40,7 @@ #define TARGET UnwindX8664 #define LIBUNWIND_TARGET_H #define LIB_UNWIND_UNWIND_TARGET_H "lib/unwind/UnwindX8664.h" +#define LIB_UNWIND_REGISTERS_H "lib/unwind/UnwindRegistersX8664.h" +#define TARGET_REGISTERS UnwindRegistersX8664 #include "lib/unwind/cni/UnwindH.hxx" hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Thu Nov 29 18:08:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Thu, 29 Nov 2007 18:08:00 -0000 Subject: [SCM] master: Catch exceptions on memory errors while printing pointers. Message-ID: <20071129180842.11401.qmail@sourceware.org> The branch, master has been updated via bf8d1a49cb3923ca81180d014b9fd03eb699a10a (commit) from 31a3d5e95b53ff38962a6cd09ec526b28119c3ab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bf8d1a49cb3923ca81180d014b9fd03eb699a10a Author: Teresa Thomas Date: Thu Nov 29 13:04:53 2007 -0500 Catch exceptions on memory errors while printing pointers. frysk-core/frysk/value/ChangeLog 2007-11-29 Teresa Thomas * PointerType.java (toPrint): Catch exception on memory error. frysk-core/frysk/debuginfo/ChangeLog 2007-11-29 Teresa Thomas * PieceLocation.java (pieceOf): Modify exception messages. (indexOf): Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++++ frysk-core/frysk/debuginfo/PieceLocation.java | 4 ++-- frysk-core/frysk/pkglibdir/funit-addresses.c | 3 ++- frysk-core/frysk/value/ChangeLog | 7 ++++++- frysk-core/frysk/value/PointerType.java | 17 ++++++++++++----- 5 files changed, 27 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 104cfd7..86b763b 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Teresa Thomas + + * PieceLocation.java (pieceOf): Modify exception messages. + (indexOf): Ditto. + 2007-11-29 Andrew Cagney * DwarfRegisterMapFactory.java: Update; RegisterMap constructor diff --git a/frysk-core/frysk/debuginfo/PieceLocation.java b/frysk-core/frysk/debuginfo/PieceLocation.java index 6f888fb..b129e77 100644 --- a/frysk-core/frysk/debuginfo/PieceLocation.java +++ b/frysk-core/frysk/debuginfo/PieceLocation.java @@ -125,7 +125,7 @@ extends Location else indexCount += len; } - throw new RuntimeException("Index out of range for offset " + offset); + throw new RuntimeException("Out of range."); } /** @@ -155,7 +155,7 @@ extends Location else indexCount += len; } - throw new RuntimeException("Piece out of range for offset " + offset); + throw new RuntimeException("Out of range."); } /** diff --git a/frysk-core/frysk/pkglibdir/funit-addresses.c b/frysk-core/frysk/pkglibdir/funit-addresses.c index cf057b9..3a7fb88 100644 --- a/frysk-core/frysk/pkglibdir/funit-addresses.c +++ b/frysk-core/frysk/pkglibdir/funit-addresses.c @@ -63,7 +63,8 @@ int twoD[2][3] = { {99, 88, 77}, }; int oneD[] = { 4, 3, 2, 1}; char* string = "hello world"; -int* ptr = NULL; +char* char_ptr = NULL; +int* int_ptr = NULL; char* ptrStrings[] = {"zero", "one", "two", "three"}; int** dynamicTwoD = NULL; int* dynamicOneD = NULL; diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index da3361c..a1bc19a 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Teresa Thomas + + * PointerType.java (toPrint): Catch exception + on memory error. + 2007-11-29 Sami Wagiaalla Removed List ops from LocationExpression constructor. @@ -18,7 +23,7 @@ * CompositeType.java (addStaticBitFieldMember): Renamed. (addBitFieldMember): Renamed. * TestComposite.java: Updated - + 2007-11-28 Teresa Thomas * PointerType.java (slice): Re-write. diff --git a/frysk-core/frysk/value/PointerType.java b/frysk-core/frysk/value/PointerType.java index d72c414..b6e2f27 100644 --- a/frysk-core/frysk/value/PointerType.java +++ b/frysk-core/frysk/value/PointerType.java @@ -82,18 +82,25 @@ public class PointerType writer.print("("); this.toPrint(writer, 0); writer.print(") "); - format.print(writer, location, this); + try { + format.print(writer, location, this); + } catch (RuntimeException e) { + throw new RuntimeException("Peek Memory"); + } if (type instanceof CharType) { // XXX: ByteBuffer.slice wants longs. long addr = getBigInteger(location).longValue(); - // Null pointer - if (addr == 0) - return; writer.print(" \""); while (true) { Location l = new ByteBufferLocation(memory, addr, type.getSize()); - BigInteger c = ((CharType)type).getBigInteger(l); + BigInteger c = BigInteger.ZERO; + try { + c = ((CharType)type).getBigInteger(l); + } catch (RuntimeException e) { + writer.print(" < Memory Error > "); + break; + } if (c.equals(BigInteger.ZERO)) break; // NUL writer.print((char)c.longValue()); hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Thu Nov 29 19:03:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Thu, 29 Nov 2007 19:03:00 -0000 Subject: [SCM] master: Fixing 64 bit word loading for Power64, add CFI info and other minor issues. Message-ID: <20071129190301.11903.qmail@sourceware.org> The branch, master has been updated via c6bbbe730513c609fe78bb7f92c9cecab7b1aa33 (commit) from bf8d1a49cb3923ca81180d014b9fd03eb699a10a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c6bbbe730513c609fe78bb7f92c9cecab7b1aa33 Author: Jose Flavio Aguilar Paulino Date: Thu Nov 29 17:02:53 2007 -0200 Fixing 64 bit word loading for Power64, add CFI info and other minor issues. ----------------------------------------------------------------------- Summary of changes: frysk-imports/include/ChangeLog | 5 ++ frysk-imports/include/frysk-asm.h | 115 ++++++++++++++++++++----------------- 2 files changed, 68 insertions(+), 52 deletions(-) First 500 lines of diff: diff --git a/frysk-imports/include/ChangeLog b/frysk-imports/include/ChangeLog index d40a39a..74121b4 100644 --- a/frysk-imports/include/ChangeLog +++ b/frysk-imports/include/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Jose Flavio Aguilar Paulino + + * frysk-asm.h: Fixed loading immediate 64 bit word for Power64, + fixed function prologue and epilogue and add call frame info. + 2007-10-03 Andrew Cagney * frysk-asm.h (SP) [__x8664__]: Fix typo, %4sp -> %rsp. diff --git a/frysk-imports/include/frysk-asm.h b/frysk-imports/include/frysk-asm.h index c13173e..06f930b 100644 --- a/frysk-imports/include/frysk-asm.h +++ b/frysk-imports/include/frysk-asm.h @@ -234,10 +234,10 @@ # define LOAD_IMMED_BYTE(DEST_REG,CONST) mov $CONST, DEST_REG #elif defined __x86_64__ # define LOAD_IMMED_BYTE(DEST_REG,CONST) mov $CONST, DEST_REG -#elif defined __powerpc__ -# define LOAD_IMMED_BYTE(DEST_REG,CONST) li DEST_REG, CONST #elif defined __powerpc64__ # define LOAD_IMMED_BYTE(DEST_REG,CONST) li DEST_REG, CONST +#elif defined __powerpc__ +# define LOAD_IMMED_BYTE(DEST_REG,CONST) li DEST_REG, CONST #else # warning "No load immediate instruction sequence defined" #endif @@ -246,9 +246,17 @@ # define LOAD_IMMED_WORD(DEST_REG,CONST) mov $CONST, DEST_REG #elif defined __x86_64__ # define LOAD_IMMED_WORD(DEST_REG,CONST) mov $CONST, DEST_REG -#elif defined __powerpc__ -# define LOAD_IMMED_WORD(DEST_REG,CONST) li DEST_REG, CONST #elif defined __powerpc64__ +// PowerPC instructions have a fixed length +// So in Power64 +// 64-bit immediate must be loaded in 16-bit pieces +# define LOAD_IMMED_WORD(DEST_REG,CONST) \ + lis DEST_REG, CONST@highest ; \ + ori DEST_REG, DEST_REG, CONST@higher ; \ + rldicr DEST_REG, DEST_REG, 32, 31 ; \ + oris DEST_REG, DEST_REG, CONST@h ; \ + ori DEST_REG, DEST_REG, CONST@l ; +#elif defined __powerpc__ # define LOAD_IMMED_WORD(DEST_REG,CONST) li DEST_REG, CONST #else # warning "No load immediate instruction sequence defined" @@ -286,10 +294,10 @@ # define ADD(DEST_REG, SOURCE_REG) addl DEST_REG, SOURCE_REG #elif defined __x86_64__ # define ADD(DEST_REG, SOURCE_REG) addq DEST_REG, SOURCE_REG +#elif defined __powerpc64__ +# define ADD(DEST_REG, SOURCE_REG) add DEST_REG, DEST_REG, SOURCE_REG #elif defined __powerpc__ -# define ADD(DEST_REG, SOURCE_REG) add DEST_REG, SOURCE_REG, DEST_REG -//#elif defined __powerpc64__ -//# define ADD(DEST_REG, SOURCE_REG) +# define ADD(DEST_REG, SOURCE_REG) add DEST_REG, DEST_REG, SOURCE_REG #else # warning "No register-add instruction defined" #endif @@ -298,10 +306,10 @@ # define SUB(DEST_REG, SOURCE_REG) subl DEST_REG, SOURCE_REG #elif defined __x86_64__ # define SUB(DEST_REG, SOURCE_REG) subq DEST_REG, SOURCE_REG +#elif defined __powerpc64__ +# define SUB(DEST_REG, SOURCE_REG) subf DEST_REG, SOURCE_REG, DEST_REG #elif defined __powerpc__ # define SUB(DEST_REG, SOURCE_REG) subf DEST_REG, SOURCE_REG, DEST_REG -//#elif defined __powerpc64__ -//# define SUB(DEST_REG, SOURCE_REG) #else # warning "No register-subtract instruction defined" #endif @@ -310,10 +318,10 @@ # define MOV(SOURCE_REG, DEST_REG) movl SOURCE_REG, DEST_REG #elif defined __x86_64__ # define MOV(SOURCE_REG, DEST_REG) movq SOURCE_REG, DEST_REG +#elif defined __powerpc64__ +# define MOV(SOURCE_REG, DEST_REG) mr DEST_REG, SOURCE_REG #elif defined __powerpc__ # define MOV(SOURCE_REG, DEST_REG) mr DEST_REG, SOURCE_REG -//#elif defined __powerpc64__ -//# define MOV(SOURCE_REG, DEST_REG) #else # warning "No register-move instruction defined" #endif @@ -481,17 +489,18 @@ # define FUNCTION_BEGIN(FUNC,SLOTS) SANE_FUNCTION_BEGIN(FUNC) #elif defined __x86_64__ # define FUNCTION_BEGIN(FUNC,SLOTS) SANE_FUNCTION_BEGIN(FUNC) -#elif defined __powerpc__ -# define FUNCTION_BEGIN(FUNC,SLOTS) SANE_FUNCTION_BEGIN(FUNC) #elif defined __powerpc64__ -# define FUNCTION_BEGIN(FUNC) \ +# define FUNCTION_BEGIN(FUNC,SLOTS) \ .section ".opd","aw" ; \ - .global FUNC ; \ .align 3 ; \ + .global FUNC ; \ FUNC: ; \ - .quad _##FUNC, .TOC.@tocbase, 0 ; \ + .quad ._##FUNC, .TOC.@tocbase, 0 ; \ .text ; \ - _##FUNC: + ._##FUNC: \ + .cfi_startproc; +#elif defined __powerpc__ +# define FUNCTION_BEGIN(FUNC,SLOTS) SANE_FUNCTION_BEGIN(FUNC) #else # warning "no function-begin defined" #endif @@ -508,17 +517,15 @@ .cfi_adjust_cfa_offset 8; \ movq %rsp, %rbp; \ .cfi_offset %rbp, -8 -#elif defined __powerpc__ +#elif defined __powerpc64__ # define FUNCTION_PROLOGUE(FUNC,SLOTS) \ - stwu 1, -32(1) ; \ - mflr 0 ; \ - stw 0, 36(1) ; \ - stw 31, 28(1) ; \ - mr 31, 1 ; \ - stw REG0, 12(31) ; \ - stw REG1, 16(31) ; \ - stw REG2, 20(31) ; \ - stw REG3, 24(31) + mflr 0 ; \ + std 31, -8(1) ; \ + .cfi_offset 31, -8 ; \ + std 0, 16(1) ; \ + .cfi_offset lr, 16 ; \ + stdu 1, -128(1) ; \ + .cfi_adjust_cfa_offset 128 ; #else # warning "No function-prologue compound instruction defined" #endif @@ -533,17 +540,12 @@ leave; \ .cfi_restore %rbp; \ .cfi_adjust_cfa_offset -8 -#elif defined __powerpc__ +#elif defined __powerpc64__ # define FUNCTION_EPILOGUE(FUNC,SLOTS) \ - lwz REG3, 24(31) ; \ - lwz REG2, 20(31) ; \ - lwz REG1, 16(31) ; \ - lwz REG0, 12(31) ; \ - lwz 11, 0(1) ; \ - lwz 0, 4(11) ; \ - mtlr 0 ; \ - lwz 31, -4(11) ; \ - mr 1, 11 + ld 1, 0(1) ; \ + ld 0, 16(1) ; \ + mtlr 0 ; \ + ld 31, -8(1) ; #else # warning "No function-epilogue instruction sequence defined" #endif @@ -552,10 +554,10 @@ # define FUNCTION_RETURN(FUNC,SLOTS) ret #elif defined __x86_64__ # define FUNCTION_RETURN(FUNC,SLOTS) ret -#elif defined __powerpc__ -# define FUNCTION_RETURN(FUNC,SLOTS) blr #elif defined __powerpc64__ # define FUNCTION_RETURN(FUNC,SLOTS) blr +#elif defined __powerpc__ +# define FUNCTION_RETURN(FUNC,SLOTS) blr #else # warning "No function-epilogue instruction sequence defined" #endif @@ -567,10 +569,10 @@ # define FUNCTION_END(FUNC,SLOTS) SANE_FUNCTION_END(FUNC) #elif defined __x86_64__ # define FUNCTION_END(FUNC,SLOTS) SANE_FUNCTION_END(FUNC) +#elif defined __powerpc64__ +# define FUNCTION_END(FUNC,SLOTS) SANE_FUNCTION_END(FUNC) #elif defined __powerpc__ # define FUNCTION_END(FUNC,SLOTS) SANE_FUNCTION_END(FUNC) -#elif defined __powerpc64__ -# define FUNCTION_END(FUNC,SLOTS) .size FUNC, .-_##FUNC #else # warning "No function-epilogue instruction sequence defined" #endif @@ -584,21 +586,29 @@ #elif defined __x86_64__ # define MAIN_PROLOGUE(SLOTS) \ FUNCTION_PROLOGUE (main, SLOTS); // ARGC, ARGV, and ENVP already in correct registers. -#elif defined __powerpc__ -//In PowerPC ABI argc comes by default in reg 3 (Frysk REG1) and argv in reg 4 (Frysk REG2) -#define MAIN_PROLOGUE(SLOTS) FUNCTION_PROLOGUE(main,SLOTS) #elif defined __powerpc64__ -#define MAIN_PROLOGUE(SLOTS) FUNCTION_PROLOGUE(main,SLOTS) +//In PowerPC ABI argc comes +//by default in reg 3 (Frysk REG1) +//and argv in reg 4 (Frysk REG2) +#define MAIN_PROLOGUE(SLOTS) \ + FUNCTION_PROLOGUE(main,SLOTS) +#elif defined __powerpc__ +#define MAIN_PROLOGUE(SLOTS) \ + FUNCTION_PROLOGUE(main,SLOTS) #endif #if defined __i386__ # define MAIN_EPILOGUE(SLOTS) FUNCTION_EPILOGUE(main,SLOTS) #elif defined __x86_64__ # define MAIN_EPILOGUE(SLOTS) FUNCTION_EPILOGUE(main,SLOTS) -#elif defined __powerpc__ -# define MAIN_EPILOGUE(SLOTS) FUNCTION_EPILOGUE(main,SLOTS) #elif defined __powerpc64__ -# define MAIN_EPILOGUE(SLOTS) FUNCTION_EPILOGUE(main,SLOTS) +# define MAIN_EPILOGUE(SLOTS) \ + mr 3, REG0; \ + FUNCTION_EPILOGUE(main,SLOTS) +#elif defined __powerpc__ +# define MAIN_EPILOGUE(SLOTS) \ + mr 3, REG0; \ + FUNCTION_EPILOGUE(main,SLOTS) #endif //#if defined __i386__ @@ -642,9 +652,10 @@ # define SYSCALL int $0x80 #elif defined __x86_64__ # define SYSCALL syscall +#elif defined __powerpc64__ +# define SYSCALL sc #elif defined __powerpc__ # define SYSCALL sc -//#elif defined __powerpc64__ #else # warning "No sys-call instruction sequence defined" #endif @@ -697,7 +708,7 @@ #elif defined __powerpc__ #define FRAMELESS_FUNCTION_BEGIN(FUNC) \ FUNC: \ - + .cfi_startproc; #else # warning "No frameless function beginning instructions defined" #endif @@ -720,9 +731,9 @@ #elif defined __x86_64__ #define FRAMELESS_FUNCTION_END(FUNC) \ .cfi_endproc -#elif defined __powerpc__ +#elif defined __powerpc64__ #define FRAMELESS_FUNCTION_END(FUNC) \ - blr + .cfi_endproc; #else # warning "No frameless function ending instructions defined" #endif hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 29 20:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 29 Nov 2007 20:06:00 -0000 Subject: [SCM] master: Add frysk.proc.dead.TestCoreRegs. Message-ID: <20071129200553.8197.qmail@sourceware.org> The branch, master has been updated via 844d4ed8788ac42facac66356f9f800cb17d1f72 (commit) from c6bbbe730513c609fe78bb7f92c9cecab7b1aa33 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 844d4ed8788ac42facac66356f9f800cb17d1f72 Author: Andrew Cagney Date: Thu Nov 29 15:05:30 2007 -0500 Add frysk.proc.dead.TestCoreRegs. frysk-core/frysk/proc/ChangeLog 2007-11-29 Andrew Cagney * TestRegs.java: Move to frysk.proc.live.TestRegs. frysk-core/frysk/proc/dead/ChangeLog 2007-11-29 Andrew Cagney * TestCoreRegs.java: New. frysk-core/frysk/proc/live/ChangeLog 2007-11-29 Andrew Cagney * TestRegs.java: Moved from frysk.proc.TestRegs. frysk-core/frysk/testbed/ChangeLog 2007-11-29 Andrew Cagney * CoreFileAtSignal.java (constructCore(Proc)): New. * RegsCase.java (setTask(Task)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 +++ frysk-core/frysk/proc/dead/ChangeLog | 4 +++ .../proc/{TestRegs.java => dead/TestCoreRegs.java} | 18 +++++++++++++- frysk-core/frysk/proc/live/ChangeLog | 4 +++ frysk-core/frysk/proc/{ => live}/TestRegs.java | 2 +- frysk-core/frysk/testbed/ChangeLog | 5 ++++ frysk-core/frysk/testbed/CoreFileAtSignal.java | 23 +++++++++++-------- frysk-core/frysk/testbed/RegsCase.java | 19 +++++++++++++-- 8 files changed, 63 insertions(+), 16 deletions(-) copy frysk-core/frysk/proc/{TestRegs.java => dead/TestCoreRegs.java} (83%) rename frysk-core/frysk/proc/{ => live}/TestRegs.java (99%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 90e62d2..24a3a95 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestRegs.java: Move to frysk.proc.live.TestRegs. + 2007-11-26 Andrew Cagney * X86BankRegisters.java: Replace X8664Registers.XMM8 et.al. with diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 8790a32..cb18b1c 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestCoreRegs.java: New. + 2007-11-29 Phil Muldoon * CorefileByteBuffer.java (peek): Tweak error message diff --git a/frysk-core/frysk/proc/TestRegs.java b/frysk-core/frysk/proc/dead/TestCoreRegs.java similarity index 83% copy from frysk-core/frysk/proc/TestRegs.java copy to frysk-core/frysk/proc/dead/TestCoreRegs.java index bf90609..2e9deaf 100644 --- a/frysk-core/frysk/proc/TestRegs.java +++ b/frysk-core/frysk/proc/dead/TestCoreRegs.java @@ -37,16 +37,30 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.proc.dead; import frysk.isa.Register; import frysk.testbed.RegsCase; +import frysk.proc.Proc; +import frysk.testbed.CoreFileAtSignal; +import frysk.util.Util; +import java.io.File; /** * Check all register values. */ -public class TestRegs extends RegsCase { +public class TestCoreRegs extends RegsCase { + + public void setUp() { + super.setUp(); + // Replace the live task with a dead one. + Proc proc = task().getProc(); + File exe = new File(proc.getExe()); + File core = CoreFileAtSignal.constructCore(proc); + Proc coreProc = Util.getProcFromCoreFile(core, exe); + setTask(coreProc.getMainTask()); + } public void access(Register register, int offset, int length, byte[] bytes, int start, boolean write) { diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index ee712f6..df11d49 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestRegs.java: Moved from frysk.proc.TestRegs. + 2007-11-27 Jose Flavio Aguilar Paulino * PtraceRegisterBanksFactory.java: Putting single PowerPC ptrace diff --git a/frysk-core/frysk/proc/TestRegs.java b/frysk-core/frysk/proc/live/TestRegs.java similarity index 99% rename from frysk-core/frysk/proc/TestRegs.java rename to frysk-core/frysk/proc/live/TestRegs.java index bf90609..21c3583 100644 --- a/frysk-core/frysk/proc/TestRegs.java +++ b/frysk-core/frysk/proc/live/TestRegs.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.proc.live; import frysk.isa.Register; import frysk.testbed.RegsCase; diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index fb84632..9a990b2 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Andrew Cagney + + * CoreFileAtSignal.java (constructCore(Proc)): New. + * RegsCase.java (setTask(Task)): New. + 2007-11-28 Andrew Cagney * TestRegs.java (testGeneralRegistersPresent()): Rename diff --git a/frysk-core/frysk/testbed/CoreFileAtSignal.java b/frysk-core/frysk/testbed/CoreFileAtSignal.java index 8d058fc..432308c 100644 --- a/frysk-core/frysk/testbed/CoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/CoreFileAtSignal.java @@ -49,16 +49,8 @@ import frysk.Config; public class CoreFileAtSignal extends TestLib { - - /** - * Given a path to an executable it will run it until it sigfaults then - * extracts a corefile at that point, and return a Proc representing - * that core file. - */ - public static File constructCore(File exeFile) { - final Proc ackProc - = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); - final CoredumpAction coreDump + public static File constructCore(Proc ackProc) { + CoredumpAction coreDump = new CoredumpAction(ackProc, new Event() { public void execute() { Manager.eventLoop.requestStop(); @@ -72,6 +64,17 @@ public class CoreFileAtSignal extends TestLib { TearDownFile core = new TearDownFile(coreFileName); return core; } + + /** + * Given a path to an executable it will run it until it sigfaults then + * extracts a corefile at that point, and return a Proc representing + * that core file. + */ + public static File constructCore(File exeFile) { + final Proc ackProc + = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + return constructCore(ackProc); + } /** * Given a path to an executable it will run it until it sigfaults then diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 23f3fba..a8074eb 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -72,15 +72,28 @@ public abstract class RegsCase extends TestLib { private ByteOrder order; private ISA isa; private Registers registers; - public void setUp() { - super.setUp(); - task = new DaemonBlockedAtSignal("funit-regs").getMainTask(); + /** + * Set things up for testing against the specified task. + * + * Initially things are set up for testing against the live + * "funit-regs" process; this can be overwritten by re-calling + * with a new task (for instance from a core file created from the + * live funit-regs. + */ + protected void setTask(Task task) { + this.task = task; isa = task.getISA(); order = isa.order(); registers = RegistersFactory.getRegisters(isa); if (isaValues.containsKey(isa)) values = (Values)isaValues.get(isa); } + + public void setUp() { + super.setUp(); + setTask(new DaemonBlockedAtSignal("funit-regs").getMainTask()); + } + public void tearDown() { task = null; values = null; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 29 20:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 29 Nov 2007 20:40:00 -0000 Subject: [SCM] master: Add X86-64 float values. Message-ID: <20071129204007.28315.qmail@sourceware.org> The branch, master has been updated via f230a8b9621df5487d5b72ce218da5b9dc1ccb24 (commit) from 844d4ed8788ac42facac66356f9f800cb17d1f72 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f230a8b9621df5487d5b72ce218da5b9dc1ccb24 Author: Andrew Cagney Date: Thu Nov 29 15:36:50 2007 -0500 Add X86-64 float values. frysk-core/frysk/testbed/ChangeLog 2007-11-29 Andrew Cagney * RegsCase.java (X8664): Add floating-point and vector values. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/testbed/ChangeLog | 2 + frysk-core/frysk/testbed/RegsCase.java | 128 ++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 9a990b2..08a3165 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,5 +1,7 @@ 2007-11-29 Andrew Cagney + * RegsCase.java (X866r): Add floating-point and vector values. + * CoreFileAtSignal.java (constructCore(Proc)): New. * RegsCase.java (setTask(Task)): New. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index a8074eb..f01a070 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -477,6 +477,134 @@ public abstract class RegsCase extends TestLib { new byte[] { (byte)0x90,0x62,(byte)0x96,0x4d, 0x5d,(byte)0xf6,0x6b,0x4 }) .put(X8664Registers.RIP, "crash") + // floating-point registers + .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 + new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, + 0x77,(byte)0xdc,(byte)0x89,0x72, + 0x36,(byte)0xa7 }) + .put(X87Registers.ST1, // 0x64abfe452c2a5b8d0eb1 + new byte[] { (byte)0xb1,0xe,(byte)0x8d,0x5b, + 0x2a,0x2c,0x45,(byte)0xfe, + (byte)0xab,0x64 }) + .put(X87Registers.ST2, // 0xb829e094740ce9d53a04 + new byte[] { 0x4,0x3a,(byte)0xd5,(byte)0xe9, + 0xc,0x74,(byte)0x94,(byte)0xe0, + 0x29,(byte)0xb8 }) + .put(X87Registers.ST3, // 0x4bd27ebf86294a4a48f8 + new byte[] { (byte)0xf8,0x48,0x4a,0x4a, + 0x29,(byte)0x86,(byte)0xbf,0x7e, + (byte)0xd2,0x4b }) + .put(X87Registers.ST4, // 0xb96a6b1dabba9af1fa66 + new byte[] { 0x66,(byte)0xfa,(byte)0xf1,(byte)0x9a, + (byte)0xba,(byte)0xab,0x1d,0x6b, + 0x6a,(byte)0xb9 }) + .put(X87Registers.ST5, // 0x87d05c0a1e9c9bb98ebc + new byte[] { (byte)0xbc,(byte)0x8e,(byte)0xb9,(byte)0x9b, + (byte)0x9c,0x1e,0xa,0x5c, + (byte)0xd0,(byte)0x87 }) + .put(X87Registers.ST6, // 0x5a0f14dcf87c56690b5f + new byte[] { 0x5f,0xb,0x69,0x56, + 0x7c,(byte)0xf8,(byte)0xdc,0x14, + 0xf,0x5a }) + .put(X87Registers.ST7, // 0x1f12ae5ec49479a8cb19 + new byte[] { 0x19,(byte)0xcb,(byte)0xa8,0x79, + (byte)0x94,(byte)0xc4,0x5e,(byte)0xae, + 0x12,0x1f }) + .put(X87Registers.FCW, // 0xc0f1 + new byte[] { (byte)0xf1,(byte)0xc0 }) + .put(X87Registers.FSW, // 0x47e4 + new byte[] { (byte)0xe4,0x47 }) + .put(X87Registers.FTW, // 0xc9 + new byte[] { (byte)0xc9 }) + .put(X87Registers.FOP, // 0x1e8f + new byte[] { (byte)0x8f,0x1e }) + .put(X87Registers.RIP, // 0x99af236679d5eeff + new byte[] { (byte)0xff,(byte)0xee,(byte)0xd5,0x79, + 0x66,0x23,(byte)0xaf,(byte)0x99 }) + .put(X87Registers.RDP, // 0x6988a565d0acd7b0 + new byte[] { (byte)0xb0,(byte)0xd7,(byte)0xac,(byte)0xd0, + 0x65,(byte)0xa5,(byte)0x88,0x69 }) + // vector registers + .put(X87Registers.XMM0, // 0x47beb912e3bfa457d6af5267b3fec23b + new byte[] { 0x3b,(byte)0xc2,(byte)0xfe,(byte)0xb3, + 0x67,0x52,(byte)0xaf,(byte)0xd6, + 0x57,(byte)0xa4,(byte)0xbf,(byte)0xe3, + 0x12,(byte)0xb9,(byte)0xbe,0x47 }) + .put(X87Registers.XMM1, // 0x7ce95f1c2fe254e2cac9b22bf43f73c5 + new byte[] { (byte)0xc5,0x73,0x3f,(byte)0xf4, + 0x2b,(byte)0xb2,(byte)0xc9,(byte)0xca, + (byte)0xe2,0x54,(byte)0xe2,0x2f, + 0x1c,0x5f,(byte)0xe9,0x7c }) + .put(X87Registers.XMM2, // 0x566b1b326d658a3365678d130362a6b5 + new byte[] { (byte)0xb5,(byte)0xa6,0x62,0x3, + 0x13,(byte)0x8d,0x67,0x65, + 0x33,(byte)0x8a,0x65,0x6d, + 0x32,0x1b,0x6b,0x56 }) + .put(X87Registers.XMM3, // 0x20801ada9126df05d6927e0847fa8f07 + new byte[] { 0x7,(byte)0x8f,(byte)0xfa,0x47, + 0x8,0x7e,(byte)0x92,(byte)0xd6, + 0x5,(byte)0xdf,0x26,(byte)0x91, + (byte)0xda,0x1a,(byte)0x80,0x20 }) + .put(X87Registers.XMM4, // 0x2304fff624579bbddc74a7df4d34cfd9 + new byte[] { (byte)0xd9,(byte)0xcf,0x34,0x4d, + (byte)0xdf,(byte)0xa7,0x74,(byte)0xdc, + (byte)0xbd,(byte)0x9b,0x57,0x24, + (byte)0xf6,(byte)0xff,0x4,0x23 }) + .put(X87Registers.XMM5, // 0x58afb31bf2d2b4a33512eefc0d1f5fc4 + new byte[] { (byte)0xc4,0x5f,0x1f,0xd, + (byte)0xfc,(byte)0xee,0x12,0x35, + (byte)0xa3,(byte)0xb4,(byte)0xd2,(byte)0xf2, + 0x1b,(byte)0xb3,(byte)0xaf,0x58 }) + .put(X87Registers.XMM6, // 0x5caa454b2a0c2975df1df97f8d180e93 + new byte[] { (byte)0x93,0xe,0x18,(byte)0x8d, + 0x7f,(byte)0xf9,0x1d,(byte)0xdf, + 0x75,0x29,0xc,0x2a, + 0x4b,0x45,(byte)0xaa,0x5c }) + .put(X87Registers.XMM7, // 0x2147b54a26ac605b98ef6a2f2da97f57 + new byte[] { 0x57,0x7f,(byte)0xa9,0x2d, + 0x2f,0x6a,(byte)0xef,(byte)0x98, + 0x5b,0x60,(byte)0xac,0x26, + 0x4a,(byte)0xb5,0x47,0x21 }) + .put(X87Registers.XMM8, // 0x59f29cf0c8c06a32cfbcf982d29b2622 + new byte[] { 0x22,0x26,(byte)0x9b,(byte)0xd2, + (byte)0x82,(byte)0xf9,(byte)0xbc,(byte)0xcf, + 0x32,0x6a,(byte)0xc0,(byte)0xc8, + (byte)0xf0,(byte)0x9c,(byte)0xf2,0x59 }) + .put(X87Registers.XMM9, // 0x20105410d22c027c7ff7fd949673caad + new byte[] { (byte)0xad,(byte)0xca,0x73,(byte)0x96, + (byte)0x94,(byte)0xfd,(byte)0xf7,0x7f, + 0x7c,0x2,0x2c,(byte)0xd2, + 0x10,0x54,0x10,0x20 }) + .put(X87Registers.XMM10, // 0xf618933912ad69c1b184ef8159ce5708 + new byte[] { 0x8,0x57,(byte)0xce,0x59, + (byte)0x81,(byte)0xef,(byte)0x84,(byte)0xb1, + (byte)0xc1,0x69,(byte)0xad,0x12, + 0x39,(byte)0x93,0x18,(byte)0xf6 }) + .put(X87Registers.XMM11, // 0x856c8d779d6ed06a4bdadc488a3e1989 + new byte[] { (byte)0x89,0x19,0x3e,(byte)0x8a, + 0x48,(byte)0xdc,(byte)0xda,0x4b, + 0x6a,(byte)0xd0,0x6e,(byte)0x9d, + 0x77,(byte)0x8d,0x6c,(byte)0x85 }) + .put(X87Registers.XMM12, // 0xf232c4e489f81468c534d0627b8f373 + new byte[] { 0x73,(byte)0xf3,(byte)0xb8,0x27, + 0x6,0x4d,0x53,(byte)0x8c, + 0x46,(byte)0x81,(byte)0x9f,0x48, + 0x4e,0x2c,0x23,0xf }) + .put(X87Registers.XMM13, // 0x117c5a8df5f87761027e19798ad84b0 + new byte[] { (byte)0xb0,(byte)0x84,(byte)0xad,(byte)0x98, + (byte)0x97,(byte)0xe1,0x27,0x10, + 0x76,(byte)0x87,0x5f,(byte)0xdf, + (byte)0xa8,(byte)0xc5,0x17,0x1 }) + .put(X87Registers.XMM15, // 0xea03fbb7498f45fc918621ffe21d2f53 + new byte[] { 0x53,0x2f,0x1d,(byte)0xe2, + (byte)0xff,0x21,(byte)0x86,(byte)0x91, + (byte)0xfc,0x45,(byte)0x8f,0x49, + (byte)0xb7,(byte)0xfb,0x3,(byte)0xea }) + .put(X87Registers.XMM15, // 0xfc6683d958a95180c6226f27a78b2c5a + new byte[] { 0x5a,0x2c,(byte)0x8b,(byte)0xa7, + 0x27,0x6f,0x22,(byte)0xc6, + (byte)0x80,0x51,(byte)0xa9,0x58, + (byte)0xd9,(byte)0x83,0x66,(byte)0xfc }) ; private Values PPC32 = new Values() hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 29 20:47:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 29 Nov 2007 20:47:00 -0000 Subject: [SCM] master: Fix x86-64 general register test; bug 5195. Message-ID: <20071129204749.30190.qmail@sourceware.org> The branch, master has been updated via e65e53aed86595298619ffb9d6a221da423e74cf (commit) from f230a8b9621df5487d5b72ce218da5b9dc1ccb24 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e65e53aed86595298619ffb9d6a221da423e74cf Author: Andrew Cagney Date: Thu Nov 29 15:44:31 2007 -0500 Fix x86-64 general register test; bug 5195. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-29 Andrew Cagney * funit-regs.S (main): Jump to the known symbol "crash". frysk-core/frysk/testbed/ChangeLog 2007-11-29 Andrew Cagney * RegsCase.java (testGeneralRegisters): Remove unresolved on x86-64, bug 5195. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/funit-regs.S | 13 ++++++------- frysk-core/frysk/testbed/ChangeLog | 7 +++++-- frysk-core/frysk/testbed/RegsCase.java | 2 -- 4 files changed, 15 insertions(+), 11 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 1706b00..3e9b2b6 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * funit-regs.S (main): Jump to the known symbol "crash". + 2007-11-28 Teresa Thomas * funit-addresses.c (dynamicOneD): New diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index 9155911..bda1800 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -58,7 +58,6 @@ // eip // %eflags mov $0x93d4a6ed, %esp - jmp crash #elif defined __x86_64__ @@ -78,14 +77,11 @@ mov $0xe0fb8a51946f37a0, %r13 mov $0x3f22bc816a35f02d, %r14 mov $0x46bf65d4d966290, %r15 - // mov $0x9a602112ce465ffa, %rip -#else - - LOAD_IMMED_WORD(REG0, 0) - STORE(REG0, REG0) #endif + JUMP(crash) + MAIN_EPILOGUE(0) FUNCTION_RETURN(main,0) FUNCTION_END(main,0) @@ -94,6 +90,9 @@ .global crash crash: -#if defined __i386__ +#if defined __i386__ || defined __x86_64__ mov 0, %eax +#else + LOAD_IMMED_WORD(REG0, 0) + STORE(REG0, REG0) #endif diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 08a3165..93defdb 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,7 +1,10 @@ 2007-11-29 Andrew Cagney - * RegsCase.java (X866r): Add floating-point and vector values. - + * RegsCase.java (testGeneralRegisters): Remove unresolved on + x86-64, bug 5195. + + * RegsCase.java (X8664): Add floating-point and vector values. + * CoreFileAtSignal.java (constructCore(Proc)): New. * RegsCase.java (setTask(Task)): New. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index f01a070..415d549 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -129,8 +129,6 @@ public abstract class RegsCase extends TestLib { } public void testGeneralRegisters() { - if(unresolvedOnx8664(5195)) - return; checkRegisterGroup(registers.getGeneralRegisterGroup()); } hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Nov 29 22:35:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 29 Nov 2007 22:35:00 -0000 Subject: [SCM] master: Begin using gen-type-expect-tests.py for c++ testing. Message-ID: <20071129223530.5596.qmail@sourceware.org> The branch, master has been updated via 5cc85271b84eb2fd9816e0a169e285cb8f200987 (commit) via 71feb4ff647040f5bd9b44f0b13df1d4cae6fb68 (commit) from e65e53aed86595298619ffb9d6a221da423e74cf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5cc85271b84eb2fd9816e0a169e285cb8f200987 Author: Stan Cox Date: Thu Nov 29 13:55:55 2007 -0500 Begin using gen-type-expect-tests.py for c++ testing. * funit-class.cxx: Add comments for gen-type-expect-test.py. commit 71feb4ff647040f5bd9b44f0b13df1d4cae6fb68 Author: Stan Cox Date: Thu Nov 29 07:50:06 2007 -0500 Begin using gen-type-expect-tests.py for c++ testing. * TypeEntry.java (getType): Add REFERENCE_TYPE_ and SUBROUTINE_TYPE_. * gen-type-expect-tests.py (main): Improve multiple input file handling. * TestTypeEntryType.java-sh: Add funit-class.cxx. * TestTypeEntryValue.java-sh: Likewise. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 9 ++- .../frysk/debuginfo/TestTypeEntryType.java-sh | 2 +- .../frysk/debuginfo/TestTypeEntryValue.java-sh | 2 +- frysk-core/frysk/debuginfo/TypeEntry.java | 17 +++-- .../frysk/debuginfo/gen-type-expect-tests.py | 11 ++- frysk-core/frysk/pkglibdir/ChangeLog | 4 + frysk-core/frysk/pkglibdir/funit-class.cxx | 92 +++++++++++++++---- 7 files changed, 104 insertions(+), 33 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 86b763b..905d003 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,10 @@ +2007-11-29 Stan Cox + + * TypeEntry.java (getType): Add REFERENCE_TYPE_ and SUBROUTINE_TYPE_. + * gen-type-expect-tests.py (main): Improve multiple input file handling. + * TestTypeEntryType.java-sh: Add funit-class.cxx. + * TestTypeEntryValue.java-sh: Likewise. + 2007-11-29 Teresa Thomas * PieceLocation.java (pieceOf): Modify exception messages. @@ -14,7 +21,7 @@ 2007-11-29 Sami Wagiaalla - * LocationExpression.java (LocationExpression): Removed ops from + * LocationExpression.java (LocationExpression): Removed ops from constructor. * TestLocationExpression.java: Updated. * TestAddress.java: Updated. diff --git a/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh b/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh index 1eb6d63..9911fad 100644 --- a/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh +++ b/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh @@ -1,5 +1,5 @@ #!/bin/sh -python $(dirname $0)/gen-type-expect-tests.py -type frysk/pkglibdir/funit-type-entry.c +python $(dirname $0)/gen-type-expect-tests.py -type frysk/pkglibdir/funit-type-entry.c $(dirname $0)/../pkglibdir/funit-class.cxx diff --git a/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh b/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh index ad26efd..de20fbe 100644 --- a/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh +++ b/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh @@ -1,3 +1,3 @@ #!/bin/sh -python $(dirname $0)/gen-type-expect-tests.py -value frysk/pkglibdir/funit-type-entry.c +python $(dirname $0)/gen-type-expect-tests.py -value frysk/pkglibdir/funit-type-entry.c $(dirname $0)/../pkglibdir/funit-class.cxx diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index d1b5861..5aac115 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -48,6 +48,7 @@ import frysk.value.EnumType; import frysk.value.FunctionType; import frysk.value.GccStructOrClassType; import frysk.value.PointerType; +import frysk.value.ReferenceType; import frysk.value.SignedType; import frysk.value.StandardTypes; import frysk.value.Type; @@ -298,6 +299,7 @@ public class TypeEntry return (null); switch (varDie.getTag().hashCode()) { + case DwTag.SUBROUTINE_TYPE_: case DwTag.SUBPROGRAM_: { Type type = null; if (varDie.getUltimateType() != null) { @@ -353,10 +355,9 @@ public class TypeEntry Type returnType = null; switch (type.getTag().hashCode()) { - case DwTag.TYPEDEF_: { + case DwTag.TYPEDEF_: returnType = new TypeDef(type.getName(), getType (type.getType())); break; - } case DwTag.POINTER_TYPE_: { Type ptrTarget = getType(type.getType()); if (ptrTarget == null) @@ -365,6 +366,9 @@ public class TypeEntry ptrTarget); break; } + case DwTag.REFERENCE_TYPE_: + returnType = new ReferenceType(getType(type.getType())); + break; case DwTag.ARRAY_TYPE_: { DwarfDie subrange = type.getChild(); returnType = getArrayType(type.getType(), subrange); @@ -394,14 +398,15 @@ public class TypeEntry returnType = enumType; break; } - case DwTag.VOLATILE_TYPE_: { + case DwTag.VOLATILE_TYPE_: returnType = new VolatileType(getType(type.getType())); break; - } - case DwTag.CONST_TYPE_: { + case DwTag.CONST_TYPE_: returnType = new ConstType(getType(type.getType())); break; - } + case DwTag.SUBROUTINE_TYPE_: + returnType = getSubprogramValue(type).getType(); + break; case DwTag.BASE_TYPE_: switch (type.getAttrConstant(DwAt.ENCODING)) { case DwAte.SIGNED_: diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 7a8db24..ef2690f 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -128,7 +128,8 @@ public class %s extends TestLib { for (int i = 0; i < expect.length; i++) { // ??? cache address of x so &x can be checked? if (expect[i].output.indexOf("&") >= 0 - || expect[i].symbol.indexOf("ptr") >= 0) + || expect[i].symbol.indexOf("ptr") >= 0 + || expect[i].output.length() == 0) continue; DwarfDie varDie = die.getScopeVar(allDies, expect[i].symbol); if (varDie == null) @@ -186,7 +187,7 @@ public class %s extends TestLib { print('\t new Expect("%s","%s"),' % (name, value)) def end_test(self, executable, name): - tokens = executable.split(".") + tokens = os.path.abspath(executable).split(".") print(''' }; @@ -255,6 +256,7 @@ if (tool == ""): current_file += 1 d_file = open_file(current_file) +filename = sys.argv[current_file] j_file = j() j_file.open(tool) j_file.prologue() @@ -282,7 +284,8 @@ while (True): # Collect test info if (tokens[1] == "Test:"): if (test != "Types"): - j_file.end_test(sys.argv[current_file], test) + j_file.end_test(filename, test) + filename = sys.argv[current_file] test = line[line.find(tokens[1]) + len(tokens[1]) + 1:].rstrip() j_file.start_test(tool, test) elif (tokens[1] == "Name:"): @@ -296,5 +299,5 @@ while (True): except IndexError: True -j_file.end_test(sys.argv[current_file-1], test) +j_file.end_test(filename, test) j_file.epilogue(debug) diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 3e9b2b6..0c70fe5 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Stan Cox + + * funit-class.cxx: Add comments for gen-type-expect-test.py. + 2007-11-29 Andrew Cagney * funit-regs.S (main): Jump to the known symbol "crash". diff --git a/frysk-core/frysk/pkglibdir/funit-class.cxx b/frysk-core/frysk/pkglibdir/funit-class.cxx index a84e125..4378ab6 100644 --- a/frysk-core/frysk/pkglibdir/funit-class.cxx +++ b/frysk-core/frysk/pkglibdir/funit-class.cxx @@ -6,23 +6,14 @@ static void crash (){ a[0] = 0; } -static int assign_ (int) __attribute__ ((noinline)); -int -assign_ (int a) -{ - return 2; -} - class Base1 { public: Base1 (const char *m):msg (m) { - // std::cout << "Base1::Base1(" << msg << ")" << std::endl; } ~Base1 () { - // std::cout << "Base1::~Base1(" << msg << ")" << std::endl; } const char *msg; }; @@ -32,11 +23,9 @@ class Base2 public: Base2 (const char *m):msg (m) { - // std::cout << "Base2::Base2(" << msg << ")" << std::endl; } ~Base2 () { - // std::cout << "Base2::~Base2(" << msg << ")" << std::endl; } const char *msg; }; @@ -46,11 +35,9 @@ class Type : public Base1, public Base2 public: Type(const char *m, const char *n, const char *o) : Base1(m), Base2(n), note(o) { - // std::cout << "Type::Type(" << note << ")" << std::endl; } ~Type() { - // std::cout << "Type::~Type(" << note << ")" << std::endl; } private: const char *note; @@ -78,26 +65,91 @@ public: private: template TYPE do_this_impl(TYPE t) { - // std::cout << t << std::endl; return t; } }; -static Type mb("static", "main", "mb"); -static Type new_base = Type ("new base", "main", "new_base"); -static Derived xyz; +// Test: class +// Name: mb +// Type: class Type { +// Type: public: +// Type: struct Base1 { +// Type: const char * msg; +// Type: void Base1 (const char * ); +// Type: void ~Base1 (); +// Type: } ; +// Type: struct Base2 { +// Type: const char * msg; +// Type: void Base2 (const char * ); +// Type: void ~Base2 (); +// Type: } ; +// Type: private: +// Type: const char * note; +// Type: void Type (const char * ,const char * ,const char * ); +// Type: void ~Type (); +// Type: } + +Type mb("static", "main", "mb"); + +// Name: new_base +// Type: class Type { +// Type: public: +// Type: struct Base1 { +// Type: const char * msg; +// Type: void Base1 (const char * ); +// Type: void ~Base1 (); +// Type: } ; +// Type: struct Base2 { +// Type: const char * msg; +// Type: void Base2 (const char * ); +// Type: void ~Base2 (); +// Type: } ; +// Type: private: +// Type: const char * note; +// Type: void Type (const char * ,const char * ,const char * ); +// Type: void ~Type (); +// Type: } + +Type new_base = Type ("new base", "main", "new_base"); + +// Name: xyz +// Type: class Derived { +// Type: public: +// Type: struct Base3 { +// Type: int () * * _vptr.Base3; +// Type: void Base3 (void * const & ); +// Type: void Base3 (); +// Type: char do_this (char ); +// Type: short int do_this (short int ); +// Type: int do_this (int ); +// Type: float do_this (float ); +// Type: void ~Base3 (); +// Type: } ; +// Type: void Derived (void * const & ); +// Type: void Derived (); +// Type: char do_this (char ); +// Type: short int do_this (short int ); +// Type: int do_this (int ); +// Type: float do_this (float ); +// Type: void ~Derived (); +// Type: private: +// Type: char do_this_impl (char ); +// Type: short int do_this_impl (short int ); +// Type: int do_this_impl (int ); +// Type: float do_this_impl (float ); +// Type: } + +Derived xyz; static void func () __attribute__ ((noinline)); void func () { - // std::cout << "main" << std::endl; xyz.do_this ((char)'1'); xyz.do_this ((short)2); xyz.do_this ((int)3); xyz.do_this ((float) 4.1); - int x = xyz.do_this ((int)1); - x = assign_(x); + xyz.do_this ((int)1); crash(); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Nov 29 22:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 29 Nov 2007 22:56:00 -0000 Subject: [SCM] master: Get i386 vector-register test working. Message-ID: <20071129225625.17031.qmail@sourceware.org> The branch, master has been updated via bc17c29140bb51887ead83de19154ff381a04dac (commit) from 5cc85271b84eb2fd9816e0a169e285cb8f200987 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit bc17c29140bb51887ead83de19154ff381a04dac Author: Andrew Cagney Date: Thu Nov 29 17:52:58 2007 -0500 Get i386 vector-register test working. frysk-core/frysk/pkglibdir/ChangeLog 2007-11-29 Andrew Cagney * funit-regs.S (x87fxregs): Data section. (main) [__i386__]: Restore fxregs. frysk-core/frysk/proc/dead/ChangeLog 2007-11-29 Andrew Cagney * TestCoreRegs.java (testFloatRegisters()) (testVectorRegisters()): New; mark as unresolved. frysk-core/frysk/proc/live/ChangeLog 2007-11-29 Andrew Cagney * TestCoreRegs.java (testFloatRegisters()) (testVectorRegisters()): New; mark as unresolved. frysk-core/frysk/stack/ChangeLog 2007-11-29 Andrew Cagney * TestRegs.java (testFloatRegisters()) (testVectorRegisters()): New; mark as unresolved, bugs 4911 and 5195. frysk-core/frysk/testbed/ChangeLog 2007-11-29 Andrew Cagney * RegsCase.java (testVectorRegisters()): Remove unresolved. (testFloatRegisters()): Ditto. (isa()): Make protected. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 3 + frysk-core/frysk/pkglibdir/funit-regs.S | 161 +++++++++++++++++++++++++- frysk-core/frysk/proc/dead/ChangeLog | 3 + frysk-core/frysk/proc/dead/TestCoreRegs.java | 18 +++ frysk-core/frysk/proc/live/ChangeLog | 3 + frysk-core/frysk/proc/live/TestRegs.java | 16 +++ frysk-core/frysk/stack/ChangeLog | 4 + frysk-core/frysk/stack/TestRegs.java | 18 +++ frysk-core/frysk/testbed/ChangeLog | 4 + frysk-core/frysk/testbed/RegsCase.java | 70 +++++------ 10 files changed, 259 insertions(+), 41 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 0c70fe5..2365a3c 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -4,6 +4,9 @@ 2007-11-29 Andrew Cagney + * funit-regs.S (x87fxregs): Data section. + (main) [__i386__]: Restore fxregs. + * funit-regs.S (main): Jump to the known symbol "crash". 2007-11-28 Teresa Thomas diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index bda1800..d4418a2 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -48,6 +48,10 @@ #if defined __i386__ + // floating-point and vector registers + mov $fxregs, %eax + fxrstor (%eax) + mov $0x7eb03efc, %eax mov $0x35a322a0, %ebx mov $0x7f198cab, %ecx @@ -55,12 +59,15 @@ mov $0x1bc5daed, %esi mov $0x457319f3, %edi mov $0xcbfed73c, %ebp - // eip // %eflags mov $0x93d4a6ed, %esp #elif defined __x86_64__ + // floating-point and vector registers + //mov $fxregs, %rax + //fxrstor (%rax) + mov $0x837bb4e2d8209ca3, %rax mov $0x16d196be91fb2b92, %rdx mov $0x2b9f5c8f2d8cc8f9, %rcx @@ -80,6 +87,7 @@ #endif + // Jumping to crash sets the instruction-pointer JUMP(crash) MAIN_EPILOGUE(0) @@ -90,9 +98,158 @@ .global crash crash: -#if defined __i386__ || defined __x86_64__ +#if defined __i386__ mov 0, %eax +#elif defined __x86_64__ + mov 0, %rax #else LOAD_IMMED_WORD(REG0, 0) STORE(REG0, REG0) #endif + +#if defined __i386__ || defined __x86_64__ +.data +fxregs: + // FCW + .byte 0x71, 0x1e + // FSW 0x47e4 + .byte 0, 0 // .byte 0xe4, 0x47 + // FTW 0xc9 + .byte 0 // .byte 0xc9 + .fill 1, 1, 0 + // FOP 0x1e8f + .byte 0, 0 // .byte 0x8f, 0x1e + // RIP 0x99af236679d5eeff + .byte 0, 0, 0, 0 // .byte 0xff, 0xee, 0xd5, 0x79 + .byte 0, 0, 0, 0 // .byte 0x66, 0x23, 0xaf, 0x99 + // RDP 0x6988a565d0acd7b0 + .byte 0, 0, 0, 0 // .byte 0xb0, 0xd7, 0xac, 0xd0 + .byte 0, 0, 0, 0 // .byte 0x65, 0xa5, 0x88, 0x69 + // MXCSR + .fill 4, 1, 0 + // MXCSR_MASK + .fill 4, 1, 0 + // ST0 0xa7367289dc779dba0bd9 + .byte 0xd9, 0x0b, 0xba, 0x9d + .byte 0x77, 0xdc, 0x89, 0x72 + .byte 0x36, 0xa7 + .fill 6, 1, 0 + // ST1 0x64abfe452c2a5b8d0eb1 + .byte 0xb1, 0x0e, 0x8d, 0x5b + .byte 0x2a, 0x2c, 0x45, 0xfe + .byte 0xab, 0x64 + .fill 6, 1, 0 + // ST2 0xb829e094740ce9d53a04 + .byte 0x4, 0x3a, 0xd5, 0xe9 + .byte 0xc, 0x74, 0x94, 0xe0 + .byte 0x29, 0xb8 + .fill 6, 1, 0 + // ST3 0x4bd27ebf86294a4a48f8 + .byte 0xf8, 0x48, 0x4a, 0x4a + .byte 0x29, 0x86, 0xbf, 0x7e + .byte 0xd2, 0x4b + .fill 6, 1, 0 + // ST4 0xb96a6b1dabba9af1fa66 + .byte 0x66, 0xfa, 0xf1, 0x9a + .byte 0xba, 0xab, 0x1d, 0x6b + .byte 0x6a, 0xb9 + .fill 6, 1, 0 + // ST5 0x87d05c0a1e9c9bb98ebc + .byte 0xbc, 0x8e, 0xb9, 0x9b + .byte 0x9c, 0x1e, 0xa, 0x5c + .byte 0xd0, 0x87 + .fill 6, 1, 0 + // ST6 0x5a0f14dcf87c56690b5f + .byte 0x5f, 0xb, 0x69, 0x56 + .byte 0x7c, 0xf8, 0xdc, 0x14 + .byte 0xf, 0x5a + .fill 6, 1, 0 + // ST7 0x1f12ae5ec49479a8cb19 + .byte 0x19, 0xcb, 0xa8, 0x79 + .byte 0x94, 0xc4, 0x5e, 0xae + .byte 0x12, 0x1f + .fill 6, 1, 0 + // vector registers + // XMM0 0x47beb912e3bfa457d6af5267b3fec23b + .byte 0x3b, 0xc2, 0xfe, 0xb3 + .byte 0x67, 0x52, 0xaf, 0xd6 + .byte 0x57, 0xa4, 0xbf, 0xe3 + .byte 0x12, 0xb9, 0xbe, 0x47 + // XMM1 0x7ce95f1c2fe254e2cac9b22bf43f73c5 + .byte 0xc5, 0x73, 0x3f, 0xf4 + .byte 0x2b, 0xb2, 0xc9, 0xca + .byte 0xe2, 0x54, 0xe2, 0x2f + .byte 0x1c, 0x5f, 0xe9, 0x7c + // XMM2 0x566b1b326d658a3365678d130362a6b5 + .byte 0xb5, 0xa6, 0x62, 0x3 + .byte 0x13, 0x8d, 0x67, 0x65 + .byte 0x33, 0x8a, 0x65, 0x6d + .byte 0x32, 0x1b, 0x6b, 0x56 + // XMM3 0x20801ada9126df05d6927e0847fa8f07 + .byte 0x7, 0x8f, 0xfa, 0x47 + .byte 0x8, 0x7e, 0x92, 0xd6 + .byte 0x5, 0xdf, 0x26, 0x91 + .byte 0xda, 0x1a, 0x80, 0x20 + // XMM4 0x2304fff624579bbddc74a7df4d34cfd9 + .byte 0xd9, 0xcf, 0x34, 0x4d + .byte 0xdf, 0xa7, 0x74, 0xdc + .byte 0xbd, 0x9b, 0x57, 0x24 + .byte 0xf6, 0xff, 0x4, 0x23 + // XMM5 0x58afb31bf2d2b4a33512eefc0d1f5fc4 + .byte 0xc4, 0x5f, 0x1f, 0xd + .byte 0xfc, 0xee, 0x12, 0x35 + .byte 0xa3, 0xb4, 0xd2, 0xf2 + .byte 0x1b, 0xb3, 0xaf, 0x58 + // XMM6 0x5caa454b2a0c2975df1df97f8d180e93 + .byte 0x93, 0xe, 0x18, 0x8d + .byte 0x7f, 0xf9, 0x1d, 0xdf + .byte 0x75, 0x29, 0xc, 0x2a + .byte 0x4b, 0x45, 0xaa, 0x5c + // XMM7 0x2147b54a26ac605b98ef6a2f2da97f57 + .byte 0x57, 0x7f, 0xa9, 0x2d + .byte 0x2f, 0x6a, 0xef, 0x98 + .byte 0x5b, 0x60, 0xac, 0x26 + .byte 0x4a, 0xb5, 0x47, 0x21 + // XMM8 0x59f29cf0c8c06a32cfbcf982d29b2622 + .byte 0x22, 0x26, 0x9b, 0xd2 + .byte 0x82, 0xf9, 0xbc, 0xcf + .byte 0x32, 0x6a, 0xc0, 0xc8 + .byte 0xf0, 0x9c, 0xf2, 0x59 + // XMM9 0x20105410d22c027c7ff7fd949673caad + .byte 0xad, 0xca, 0x73, 0x96 + .byte 0x94, 0xfd, 0xf7, 0x7f + .byte 0x7c, 0x2, 0x2c, 0xd2 + .byte 0x10, 0x54, 0x10, 0x20 + // XMM10 0xf618933912ad69c1b184ef8159ce5708 + .byte 0x8, 0x57, 0xce, 0x59 + .byte 0x81, 0xef, 0x84, 0xb1 + .byte 0xc1, 0x69, 0xad, 0x12 + .byte 0x39, 0x93, 0x18, 0xf6 + // XMM11 0x856c8d779d6ed06a4bdadc488a3e1989 + .byte 0x89, 0x19, 0x3e, 0x8a + .byte 0x48, 0xdc, 0xda, 0x4b + .byte 0x6a, 0xd0, 0x6e, 0x9d + .byte 0x77, 0x8d, 0x6c, 0x85 + // XMM12 0xf232c4e489f81468c534d0627b8f373 + .byte 0x73, 0xf3, 0xb8, 0x27 + .byte 0x6, 0x4d, 0x53, 0x8c + .byte 0x46, 0x81, 0x9f, 0x48 + .byte 0x4e, 0x2c, 0x23, 0xf + // XMM13 0x117c5a8df5f87761027e19798ad84b0 + .byte 0xb0, 0x84, 0xad, 0x98 + .byte 0x97, 0xe1, 0x27, 0x10 + .byte 0x76, 0x87, 0x5f, 0xdf + .byte 0xa8, 0xc5, 0x17, 0x1 + // XMM15 0xea03fbb7498f45fc918621ffe21d2f53 + .byte 0x53, 0x2f, 0x1d, 0xe2 + .byte 0xff, 0x21, 0x86, 0x91 + .byte 0xfc, 0x45, 0x8f, 0x49 + .byte 0xb7, 0xfb, 0x3, 0xea + // XMM15 0xfc6683d958a95180c6226f27a78b2c5a + .byte 0x5a, 0x2c, 0x8b, 0xa7 + .byte 0x27, 0x6f, 0x22, 0xc6 + .byte 0x80, 0x51, 0xa9, 0x58 + .byte 0xd9, 0x83, 0x66, 0xfc + // some padding + .fill 512, 1, 0 +#endif diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index cb18b1c..bf2c6bd 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,5 +1,8 @@ 2007-11-29 Andrew Cagney + * TestCoreRegs.java (testFloatRegisters()) + (testVectorRegisters()): New; mark as unresolved. + * TestCoreRegs.java: New. 2007-11-29 Phil Muldoon diff --git a/frysk-core/frysk/proc/dead/TestCoreRegs.java b/frysk-core/frysk/proc/dead/TestCoreRegs.java index 2e9deaf..a911268 100644 --- a/frysk-core/frysk/proc/dead/TestCoreRegs.java +++ b/frysk-core/frysk/proc/dead/TestCoreRegs.java @@ -45,6 +45,7 @@ import frysk.proc.Proc; import frysk.testbed.CoreFileAtSignal; import frysk.util.Util; import java.io.File; +import frysk.isa.ISA; /** * Check all register values. @@ -71,4 +72,21 @@ public class TestCoreRegs extends RegsCase { return task().getRegister(register); } + // XXX: Delete this once the unresolved cases are fixed. + public void testFloatRegisters() { + if (isa() == ISA.IA32 && unresolved(4911)) + return; + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testFloatRegisters(); + } + + // XXX: Delete this once the unresolved cases are fixed. + public void testVectorRegisters() { + if (isa() == ISA.IA32 && unresolved(4911)) + return; + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testVectorRegisters(); + } } diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index df11d49..ca83edc 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,8 @@ 2007-11-29 Andrew Cagney + * TestCoreRegs.java (testFloatRegisters()) + (testVectorRegisters()): New; mark as unresolved. + * TestRegs.java: Moved from frysk.proc.TestRegs. 2007-11-27 Jose Flavio Aguilar Paulino diff --git a/frysk-core/frysk/proc/live/TestRegs.java b/frysk-core/frysk/proc/live/TestRegs.java index 21c3583..2ac3697 100644 --- a/frysk-core/frysk/proc/live/TestRegs.java +++ b/frysk-core/frysk/proc/live/TestRegs.java @@ -41,6 +41,7 @@ package frysk.proc.live; import frysk.isa.Register; import frysk.testbed.RegsCase; +import frysk.isa.ISA; /** * Check all register values. @@ -57,4 +58,19 @@ public class TestRegs extends RegsCase { return task().getRegister(register); } + // XXX: Delete this once the unresolved cases are fixed. + public void testFloatRegisters() { + if (isa() == ISA.IA32 && unresolved(4911)) + return; + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testFloatRegisters(); + } + + // XXX: Delete this once the unresolved cases are fixed. + public void testVectorRegisters() { + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testVectorRegisters(); + } } diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 3ecebc0..15ce0a1 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,5 +1,9 @@ 2007-11-29 Andrew Cagney + * TestRegs.java (testFloatRegisters()) + (testVectorRegisters()): New; mark as unresolved, bugs 4911 and + 5195. + * LibunwindRegisterMapFactory.java: Update; RegisterMap constructor takes a String. * LibunwindAddressSpace.java (accessReg(Number,byte[],boolean)): diff --git a/frysk-core/frysk/stack/TestRegs.java b/frysk-core/frysk/stack/TestRegs.java index 2fef4b2..c249801 100644 --- a/frysk-core/frysk/stack/TestRegs.java +++ b/frysk-core/frysk/stack/TestRegs.java @@ -39,6 +39,7 @@ package frysk.stack; +import frysk.isa.ISA; import frysk.isa.Register; import frysk.testbed.RegsCase; @@ -66,4 +67,21 @@ public class TestRegs extends RegsCase { return frame.getRegister(register); } + // XXX: Delete this once the unresolved cases are fixed. + public void testFloatRegisters() { + if (isa() == ISA.IA32 && unresolved(4911)) + return; + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testFloatRegisters(); + } + + // XXX: Delete this once the unresolved cases are fixed. + public void testVectorRegisters() { + if (isa() == ISA.IA32 && unresolved(4911)) + return; + if (isa() == ISA.X8664 && unresolved(5195)) + return; + super.testVectorRegisters(); + } } diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 93defdb..2514eb5 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,5 +1,9 @@ 2007-11-29 Andrew Cagney + * RegsCase.java (testVectorRegisters()): Remove unresolved. + (testFloatRegisters()): Ditto. + (isa()): Make protected. + * RegsCase.java (testGeneralRegisters): Remove unresolved on x86-64, bug 5195. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 415d549..c23ddda 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -110,7 +110,7 @@ public abstract class RegsCase extends TestLib { Values values() { return values; } - ISA isa() { + protected ISA isa() { return isa; } @@ -133,18 +133,10 @@ public abstract class RegsCase extends TestLib { } public void testFloatRegisters() { - if (unresolvedOnIA32(4911)) - return; - if(unresolvedOnx8664(5195)) - return; checkRegisterGroup(registers.getFloatRegisterGroup()); } public void testVectorRegisters() { - if (unresolvedOnIA32(4911)) - return; - if(unresolvedOnx8664(5195)) - return; checkRegisterGroup(registers.getVectorRegisterGroup()); } @@ -334,6 +326,22 @@ public abstract class RegsCase extends TestLib { new byte[] { (byte)0xed, (byte)0xa6, (byte)0xd4, (byte)0x93 }) .put(IA32Registers.EIP, "crash") // floating-point registers + .put(X87Registers.FCW, // 0x1e71 + new byte[] { 0x71,0x1e }) + .put(X87Registers.FSW, // 0x47e4 + new byte[] { (byte)0xe4,0x47 }) + .put(X87Registers.FTW, // 0xc9 + new byte[] { (byte)0xc9 }) + .put(X87Registers.FOP, // 0x1e8f + new byte[] { (byte)0x8f,0x1e }) + .put(X87Registers.EIP, // 0x2fc38c68 + new byte[] { 0x68,(byte)0x8c,(byte)0xc3,0x2f }) + .put(X87Registers.CS, // 0x7ac9 + new byte[] { (byte)0xc9,0x7a }) + .put(X87Registers.DP, // 0x6d77e6d5 + new byte[] { (byte)0xd5,(byte)0xe6,0x77,0x6d }) + .put(X87Registers.DS, // 0x2a9f + new byte[] { (byte)0x9f,0x2a }) .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, 0x77,(byte)0xdc,(byte)0x89,0x72, @@ -366,22 +374,6 @@ public abstract class RegsCase extends TestLib { new byte[] { 0x19,(byte)0xcb,(byte)0xa8,0x79, (byte)0x94,(byte)0xc4,0x5e,(byte)0xae, 0x12,0x1f }) - .put(X87Registers.FCW, // 0xc0f1 - new byte[] { (byte)0xf1,(byte)0xc0 }) - .put(X87Registers.FSW, // 0x47e4 - new byte[] { (byte)0xe4,0x47 }) - .put(X87Registers.FTW, // 0xc9 - new byte[] { (byte)0xc9 }) - .put(X87Registers.FOP, // 0x1e8f - new byte[] { (byte)0x8f,0x1e }) - .put(X87Registers.EIP, // 0x2fc38c68 - new byte[] { 0x68,(byte)0x8c,(byte)0xc3,0x2f }) - .put(X87Registers.CS, // 0x7ac9 - new byte[] { (byte)0xc9,0x7a }) - .put(X87Registers.DP, // 0x6d77e6d5 - new byte[] { (byte)0xd5,(byte)0xe6,0x77,0x6d }) - .put(X87Registers.DS, // 0x2a9f - new byte[] { (byte)0x9f,0x2a }) // vector registers .put(X87Registers.XMM0, // 0x47beb912e3bfa457d6af5267b3fec23b new byte[] { 0x3b,(byte)0xc2,(byte)0xfe,(byte)0xb3, @@ -476,6 +468,20 @@ public abstract class RegsCase extends TestLib { 0x5d,(byte)0xf6,0x6b,0x4 }) .put(X8664Registers.RIP, "crash") // floating-point registers + .put(X87Registers.FCW, // 0x1e71 + new byte[] { 0x71,0x1e }) + .put(X87Registers.FSW, // 0x47e4 + new byte[] { (byte)0xe4,0x47 }) + .put(X87Registers.FTW, // 0xc9 + new byte[] { (byte)0xc9 }) + .put(X87Registers.FOP, // 0x1e8f + new byte[] { (byte)0x8f,0x1e }) + .put(X87Registers.RIP, // 0x99af236679d5eeff + new byte[] { (byte)0xff,(byte)0xee,(byte)0xd5,0x79, + 0x66,0x23,(byte)0xaf,(byte)0x99 }) + .put(X87Registers.RDP, // 0x6988a565d0acd7b0 + new byte[] { (byte)0xb0,(byte)0xd7,(byte)0xac,(byte)0xd0, + 0x65,(byte)0xa5,(byte)0x88,0x69 }) .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, 0x77,(byte)0xdc,(byte)0x89,0x72, @@ -508,20 +514,6 @@ public abstract class RegsCase extends TestLib { new byte[] { 0x19,(byte)0xcb,(byte)0xa8,0x79, (byte)0x94,(byte)0xc4,0x5e,(byte)0xae, 0x12,0x1f }) - .put(X87Registers.FCW, // 0xc0f1 - new byte[] { (byte)0xf1,(byte)0xc0 }) - .put(X87Registers.FSW, // 0x47e4 - new byte[] { (byte)0xe4,0x47 }) - .put(X87Registers.FTW, // 0xc9 - new byte[] { (byte)0xc9 }) - .put(X87Registers.FOP, // 0x1e8f - new byte[] { (byte)0x8f,0x1e }) - .put(X87Registers.RIP, // 0x99af236679d5eeff - new byte[] { (byte)0xff,(byte)0xee,(byte)0xd5,0x79, - 0x66,0x23,(byte)0xaf,(byte)0x99 }) - .put(X87Registers.RDP, // 0x6988a565d0acd7b0 - new byte[] { (byte)0xb0,(byte)0xd7,(byte)0xac,(byte)0xd0, - 0x65,(byte)0xa5,(byte)0x88,0x69 }) // vector registers .put(X87Registers.XMM0, // 0x47beb912e3bfa457d6af5267b3fec23b new byte[] { 0x3b,(byte)0xc2,(byte)0xfe,(byte)0xb3, hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Fri Nov 30 04:24:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Fri, 30 Nov 2007 04:24:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071130042420.14675.qmail@sourceware.org> The branch, master has been updated via c59164dcf19440dca54e74fb4ab6297c8a58e617 (commit) via 23d640f3b3dd5433285ae2446f5770a57e5d4783 (commit) from bc17c29140bb51887ead83de19154ff381a04dac (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c59164dcf19440dca54e74fb4ab6297c8a58e617 Merge: 23d640f3b3dd5433285ae2446f5770a57e5d4783 bc17c29140bb51887ead83de19154ff381a04dac Author: Jose Flavio Aguilar Paulino Date: Fri Nov 30 02:23:25 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 23d640f3b3dd5433285ae2446f5770a57e5d4783 Author: Jose Flavio Aguilar Paulino Date: Fri Nov 30 01:44:14 2007 -0200 Fixed frameless function and load immediate for PowerPC32 ----------------------------------------------------------------------- Summary of changes: frysk-imports/include/ChangeLog | 5 ++++ frysk-imports/include/frysk-asm.h | 45 ++++++++++++++++++++++++++++++------ 2 files changed, 42 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-imports/include/ChangeLog b/frysk-imports/include/ChangeLog index 74121b4..284cd00 100644 --- a/frysk-imports/include/ChangeLog +++ b/frysk-imports/include/ChangeLog @@ -1,3 +1,8 @@ +2007-11-30 Jose Flavio Aguilar Paulino + + * frysk-asm.h: Fixed load immediate for PowerPC32 and corrected + frameless function for PPC32. + 2007-11-29 Jose Flavio Aguilar Paulino * frysk-asm.h: Fixed loading immediate 64 bit word for Power64, diff --git a/frysk-imports/include/frysk-asm.h b/frysk-imports/include/frysk-asm.h index 06f930b..3953987 100644 --- a/frysk-imports/include/frysk-asm.h +++ b/frysk-imports/include/frysk-asm.h @@ -249,7 +249,7 @@ #elif defined __powerpc64__ // PowerPC instructions have a fixed length // So in Power64 -// 64-bit immediate must be loaded in 16-bit pieces +// 64-bit immediate must be loaded in four 16-bit pieces # define LOAD_IMMED_WORD(DEST_REG,CONST) \ lis DEST_REG, CONST@highest ; \ ori DEST_REG, DEST_REG, CONST@higher ; \ @@ -257,7 +257,11 @@ oris DEST_REG, DEST_REG, CONST@h ; \ ori DEST_REG, DEST_REG, CONST@l ; #elif defined __powerpc__ -# define LOAD_IMMED_WORD(DEST_REG,CONST) li DEST_REG, CONST +// In Power32 +// 32-bit immediate must be loaded in two 16-bit pieces +# define LOAD_IMMED_WORD(DEST_REG,CONST) \ + lis DEST_REG, CONST@ha ; \ + addi DEST_REG, DEST_REG, CONST@l #else # warning "No load immediate instruction sequence defined" #endif @@ -526,6 +530,17 @@ .cfi_offset lr, 16 ; \ stdu 1, -128(1) ; \ .cfi_adjust_cfa_offset 128 ; +#elif defined __powerpc__ +# define FUNCTION_PROLOGUE(FUNC,SLOTS) \ + stwu 1, -48(1) ; \ + .cfi_adjust_cfa_offset 48 ; \ + mflr 0 ; \ + .cfi_register lr, 0 ; \ + stw 30, 8(1) ; \ + .cfi_offset 30, 8 ; \ + stw 31, 12(1) ; \ + .cfi_offset 31, 12 ; +#elif #else # warning "No function-prologue compound instruction defined" #endif @@ -542,10 +557,20 @@ .cfi_adjust_cfa_offset -8 #elif defined __powerpc64__ # define FUNCTION_EPILOGUE(FUNC,SLOTS) \ - ld 1, 0(1) ; \ - ld 0, 16(1) ; \ - mtlr 0 ; \ - ld 31, -8(1) ; + ld 1, 0(1) ; \ + ld 0, 16(1) ; \ + mtlr 0 ; \ + .cfi_same_value lr ; \ + ld 31, -8(1) +#elif defined __powerpc__ +# define FUNCTION_EPILOGUE(FUNC,SLOTS) \ + lwz 11,0(1) ; \ + lwz 0,4(11) ; \ + mtlr 0 ; \ + .cfi_same_value lr ; \ + lwz 31,-4(11) ; \ + mr 1,11 ; \ + blr #else # warning "No function-epilogue instruction sequence defined" #endif @@ -720,7 +745,8 @@ #define FRAMELESS_ADJ_RETURN(REG) \ .cfi_register rax, REG #elif defined __powerpc__ -#define FRAMELESS_ADJ_RETURN(REG) +#define FRAMELESS_ADJ_RETURN(REG) \ + .cfi_register 0, REG #else # warning "No frameless function return adjustment defined" #endif @@ -733,7 +759,10 @@ .cfi_endproc #elif defined __powerpc64__ #define FRAMELESS_FUNCTION_END(FUNC) \ - .cfi_endproc; + .cfi_endproc +#elif defined __powerpc__ +#define FRAMELESS_FUNCTION_END(FUNC) \ + .cfi_endproc #else # warning "No frameless function ending instructions defined" #endif hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Nov 30 10:00:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 30 Nov 2007 10:00:00 -0000 Subject: [SCM] master: Flush buffer in ftrace reporter Message-ID: <20071130100029.4253.qmail@sourceware.org> The branch, master has been updated via 480e607f47241817fb2d52a7a52054475926056e (commit) via 341fa1d918982452273754e906b66c02586e4e4c (commit) via ec7bceb4ba8f8788929353cc9a1473483d7b5dc2 (commit) via 9d20260f04cbc73d4b3116082fbf251e71e15c51 (commit) via c8aa5b7ce90892eb0ac59b3bf50b317f7c59cef9 (commit) via b940b67773f17227aa22a4c448522b6619ba95fb (commit) via c71c1e27fe9660c2c24b298f70db5b505a274898 (commit) via 084951bcda69885b1fe674dda125dc5f8e218e70 (commit) via 6e516c9e16f057e934026454511d303b25ee94d5 (commit) via e02e86f3af06c5ff1f1cffa39875ab1852a1fb9e (commit) via 34d63ec38dedba6d16ad9c4cab9e10076d3084af (commit) via 36cbd733ea2e60a15d23f0a653a646003d026e40 (commit) via 523ecb6b68531a6991380e5b6ce5fff3469db69a (commit) from c59164dcf19440dca54e74fb4ab6297c8a58e617 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 480e607f47241817fb2d52a7a52054475926056e Author: Petr Machata Date: Thu Nov 22 20:37:29 2007 +0100 Flush buffer in ftrace reporter * This prevented ftrace testsuite from passing. commit 341fa1d918982452273754e906b66c02586e4e4c Author: Petr Machata Date: Thu Nov 22 17:52:58 2007 +0100 Return values of syscalls are back * This is probably the last feature of ftrace broken by recent merger. commit ec7bceb4ba8f8788929353cc9a1473483d7b5dc2 Author: Petr Machata Date: Thu Nov 22 16:30:46 2007 +0100 Killed SyscallHandler abstraction * ... because right now it's unused, and should someone want to write Ftrace "plugins", the interface wouldn't be of much use anyway. commit 9d20260f04cbc73d4b3116082fbf251e71e15c51 Author: Petr Machata Date: Thu Nov 22 15:58:02 2007 +0100 System call parameters are back. * Syscall.java now provides interfaces that extract array of parameters from given Task. Printing methods have been changed to use them internally. Currently the extraction methods answer pre-formatted Strings. In future, it would be ideal to answer real "typed" values, even though for system calls the typing will be primitive. * Ftrace.java uses the new interfaces to obtain vector of arguments for Reporter class. commit c8aa5b7ce90892eb0ac59b3bf50b317f7c59cef9 Author: Petr Machata Date: Wed Nov 21 17:15:26 2007 +0100 Stack tracing on symbols is back commit b940b67773f17227aa22a4c448522b6619ba95fb Author: Petr Machata Date: Wed Nov 21 16:10:34 2007 +0100 Fix ftrace over fork * ftrace now blocks the forked task to give the tasksObserver a chance to pick new task up. * Pattern was changed in TestFtrace, to grab formatting changes introduced recently. commit c71c1e27fe9660c2c24b298f70db5b505a274898 Author: Petr Machata Date: Tue Nov 20 22:28:45 2007 +0100 Support INTERP metasoname. * You can use INTERP as a soname with the meaning of "interpreter of base binary". Useful for dynamic linker tracing, or suppressing thereof. * To support this feature, ObjectFile can now answer canonical name of its interp. * This new feature of ObjectFile is used in MappingGuard. commit 084951bcda69885b1fe674dda125dc5f8e218e70 Author: Petr Machata Date: Tue Nov 20 21:49:31 2007 +0100 More work on ftrace/ltrace merger. * Beware of breaking changes, testsuite will fail horribly! * Ftrace now internally uses the same reporting infrastructure as Ltrace used to. * More stuff brought over from frysk.util, that was left over before. * Changed formatting of the messages to be more stracish. Ugly tags may still come back, they stand out more clearly. * Lost the ability to write simple in-frysk plugins, as SyscallHandler is not currently supported. commit 6e516c9e16f057e934026454511d303b25ee94d5 Author: Petr Machata Date: Tue Nov 20 19:04:40 2007 +0100 Switches for syscall and mmap tracing in ftrace. * It's now possible to request to NOT trace syscalls in ftrace, with -S option. Nicer solution would leave syscalls off by default and only turn them on when requested, but that needs some discussion. * Also it's now necessary to explicitly request mmap/unmap tracing. Right now these are traced always (we need this for correct breakpoint population/evacuation), and -m option only changes whether the event is printed. commit e02e86f3af06c5ff1f1cffa39875ab1852a1fb9e Author: Petr Machata Date: Tue Nov 20 15:05:34 2007 +0100 Ltrace uses 1:1 observer:observable relationship. * This simplifies some things, and will very likely result in some performance improvements, as various object don't have to be looked up in dictionaries as often as they used to be. * Some things, e.g. synchronized methods, are probably not necessary anymore, but these are not addressed in this patch. commit 34d63ec38dedba6d16ad9c4cab9e10076d3084af Author: Petr Machata Date: Tue Nov 20 13:19:07 2007 +0100 Cleanups * Renamed LtraceObserver to FunctionObserver for consistency with observer naming elsewhere in Frysk. * Ftrace now creates one MyFunctionObserver per task, which greatly simplifies reporting. Other than that it is also probably more memory conservative and faster, because we get rid of Task lookup in hash map. commit 36cbd733ea2e60a15d23f0a653a646003d026e40 Author: Petr Machata Date: Tue Nov 20 09:33:02 2007 +0100 Fix unmapping non-ELF files commit 523ecb6b68531a6991380e5b6ce5fff3469db69a Author: Petr Machata Date: Mon Nov 19 19:10:45 2007 +0100 ftrace/ltrace merger in progress. * Ltrace and MappingGuard now implement proper addedTo/addFailed semantics, and also /should/ implement proper blocking semantics when the returned action is Action.BLOCK. That latter is not tested though. There is some duplication of code, furthrer refactoring will be necessary. * Ftrace brought over from util to ftrace package. * fltrace killed, relevant sections from man page brought over to ftrace.xml. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 52 +- frysk-core/frysk/bindir/TestFtrace.java | 8 +- frysk-core/frysk/bindir/fltrace.java | 651 ----------- frysk-core/frysk/bindir/fltrace.xml | 254 ----- frysk-core/frysk/bindir/ftrace.java | 355 ++++++- frysk-core/frysk/bindir/ftrace.xml | 165 +++- frysk-core/frysk/ftrace/ChangeLog | 125 ++ frysk-core/frysk/ftrace/Ftrace.java | 489 ++++++++ .../{LtraceObserver.java => FunctionObserver.java} | 30 +- frysk-core/frysk/ftrace/Ltrace.java | 1197 +++++++------------- frysk-core/frysk/ftrace/MappingGuard.java | 96 ++- frysk-core/frysk/ftrace/ObjectFile.java | 18 + frysk-core/frysk/ftrace/Reporter.java | 188 +++ frysk-core/frysk/ftrace/TestLtrace.java | 165 ++-- frysk-core/frysk/proc/ChangeLog | 15 + frysk-core/frysk/proc/Syscall.java | 154 ++-- frysk-core/frysk/util/ChangeLog | 11 +- frysk-core/frysk/util/Ftrace.java | 368 ------ frysk-core/frysk/util/StracePrinter.java | 99 -- frysk-core/frysk/util/SyscallHandler.java | 48 - 20 files changed, 2067 insertions(+), 2421 deletions(-) delete mode 100644 frysk-core/frysk/bindir/fltrace.java delete mode 100644 frysk-core/frysk/bindir/fltrace.xml create mode 100644 frysk-core/frysk/ftrace/Ftrace.java rename frysk-core/frysk/ftrace/{LtraceObserver.java => FunctionObserver.java} (75%) create mode 100644 frysk-core/frysk/ftrace/Reporter.java delete mode 100644 frysk-core/frysk/util/Ftrace.java delete mode 100644 frysk-core/frysk/util/StracePrinter.java delete mode 100644 frysk-core/frysk/util/SyscallHandler.java First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 4ad0a65..1a693b9 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -28,6 +28,10 @@ * TestFstack.java (testBackTraceWithDashN()) (testBackTraceWithDashNDashA()): Mark as unresolved, bug 5394. +2007-11-22 Petr Machata + + * ftrace.java: Don't set up enter/exit handlers of Ftrace. + 2007-11-21 Sami Wagiaalla * TestFstack.java (testBackTraceWithDashN): New test. @@ -35,12 +39,58 @@ * fstack.java (Stacker.Stacker): Added number-of-frames option and handling. -2007-11-20 Sami Wagiaalla +2007-11-21 Petr Machata + + * ftrace.java + (MyController): renamed to MyLtraceController. Now implements + Ftrace.StackTracedSymbolsProvider. + (MyLtraceController.symbolsStackTraceSet): New field. + (MyLtraceController.shouldStackTraceOn): New method. +2007-11-21 Petr Machata + + * TestFtrace.java: Change pattern in fork test. + +2007-11-20 Sami Wagiaalla + * TestFstack.java (testBackTraceWithDashC): Removed check for param values. (testBackTraceWithDashA): Ditto. +2007-11-20 Petr Machata + + * ftrace.java: Patterns now recognize "INTERP" meta-soname. + (MyController.isInterpOf): New method. + * ftrace.xml: Documented the same. + +2007-11-20 Petr Machata + + * ftrace.java (fltrace.addOptions): Recognize -m and -S. + + * Ftrace.java + (traceSyscalls, traceMmapUnmap): New fields. + (setDontTraceSyscalls): New method. + (setTraceMmaps): New method. + (observationCounters): New field. + (observationRequested, observationRealized): New methods. + (handleTask): Rewritten to support new options. + (FunctionObserver.addedTo): call observationRealized. + (SyscallObserver.addedTo): call observationRealized. + (ForkedObserver.addedTo): call observationRealized. + +2007-11-19 Petr Machata + + * fltrace.java: Deleted. + * fltrace.xml: Deleted. + * ftrace.java + (WorkingSetRule): Moved from fltrace.java + (MyController): Dtto. + (ftrace.*Rules): Dtto. + (ftrace.parseRules): Dtto. + (ftrace.addOptions): Recognize -plt, -dyn, -sym. + (ftrace.main): Apply -plt, -dyn, -sym. + * ftrace.xml: Parts moved over from fltrace.xml here. + 2007-11-19 Phil Muldoon * TestFhd.java (testHpdCore): Remove unresolved. diff --git a/frysk-core/frysk/bindir/TestFtrace.java b/frysk-core/frysk/bindir/TestFtrace.java index f726681..0d095ec 100644 --- a/frysk-core/frysk/bindir/TestFtrace.java +++ b/frysk-core/frysk/bindir/TestFtrace.java @@ -65,7 +65,7 @@ public class TestFtrace Config.getBinFile("ftrace").getAbsolutePath(), ""+task.getProc().getPid() }); - expect.expect(""+task.getProc().getPid()+"."+ task.getTid()); + expect.expect(""+task.getProc().getPid()+"."+ task.getTid() + " attached"); } public void testFtraceTracesExecutables () { @@ -103,12 +103,12 @@ public class TestFtrace "-c", ""+task.getProc().getPid() }); - expect.expect(""+task.getProc().getPid()+"."+ task.getTid() + " rt_sigsuspend ()"); + expect.expect(""+task.getProc().getPid()+"."+ task.getTid() + " * syscall * rt_sigsuspend"); child.assertSendAddForkWaitForAcks(); expect.expect("rt_sigsuspend"); - expect.expect("rt_sigsuspend"); + expect.expect("rt_sigsuspend"); } - + public void testFtraceHandlesPrcoessNotFound() { expect = new Expect(new String[] { Config.getBinFile("ftrace").getAbsolutePath(), diff --git a/frysk-core/frysk/bindir/fltrace.java b/frysk-core/frysk/bindir/fltrace.java deleted file mode 100644 index 36ac581..0000000 --- a/frysk-core/frysk/bindir/fltrace.java +++ /dev/null @@ -1,651 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.bindir; - -import java.util.*; -import java.util.logging.*; -import java.util.regex.*; -import java.io.File; -import inua.util.PrintWriter; - -import gnu.classpath.tools.getopt.*; - -import frysk.proc.*; -import frysk.sys.Sig; -import frysk.util.CommandlineParser; -import frysk.stack.*; -import lib.dwfl.ElfSymbolVersion; - -import frysk.ftrace.*; - -public class fltrace -{ - protected static final Logger logger = Logger.getLogger("frysk"); - - // The command to execute - static String[] command; - - // The process id to trace - static int pid; - - // Command and arguments to exec. - ArrayList commandAndArguments; - - // True if a PID was requested. - boolean requestedPid; - - //Where to send output. - PrintWriter writer; - - class WorkingSetRule { - final public boolean addition; - final public boolean stackTrace; - - /** - * Object that performs a pattern matching of symbol - * name. null for "anything" matcher. - */ - final public Pattern namePattern; - - /** See namePattern */ - final public Pattern sonamePattern, versionPattern; - - public WorkingSetRule(boolean addition, boolean stackTrace, String nameRe, String sonameRe, String versionRe) { - this.addition = addition; - this.stackTrace = stackTrace; - this.namePattern = Pattern.compile((nameRe != null) ? nameRe : ".*"); - this.sonamePattern = Pattern.compile((sonameRe != null) ? sonameRe : ".*"); - this.versionPattern = Pattern.compile((versionRe != null) ? versionRe : ".*"); - } - - public String toString() { - return "" - + (this.addition ? "" : "-") - + (this.stackTrace ? "#" : "") - + this.namePattern.pattern() - + "@" + this.sonamePattern.pattern() - + "@@" + this.versionPattern.pattern(); - } - } - - interface LtraceControllerObserver - { - void shouldStackTraceOn(Set symbols); - } - - class MyController - implements LtraceController - { - // ArrayList - private final List pltRules = new ArrayList(); - private final List dynRules = new ArrayList(); - private final List symRules = new ArrayList(); - private final LtraceControllerObserver observer; - - public MyController(LtraceControllerObserver observer) - { - this.observer = observer; - } - - public void gotPltRules(List rules) { - logger.log(Level.FINER, "Got " + rules.size() + " PLT rules."); - this.pltRules.addAll(rules); - } - - public void gotDynRules(List rules) { - logger.log(Level.FINER, "Got " + rules.size() + " DYNAMIC rules."); - this.dynRules.addAll(rules); - } - - public void gotSymRules(List rules) { - logger.log(Level.FINER, "Got " + rules.size() + " SYMTAB rules."); - this.symRules.addAll(rules); - } - - private boolean checkVersionMatches(final TracePoint tp, final WorkingSetRule rule) - { - ElfSymbolVersion[] vers = (tp.origin == TracePointOrigin.PLT) - ? (ElfSymbolVersion[])tp.symbol.verneeds - : (ElfSymbolVersion[])tp.symbol.verdefs; - - // When there is no version assigned to symbol, we pretend it has - // a version of ''. Otherwise we require one of the versions to - // match the version pattern. - if (vers.length == 0) { - if (rule.versionPattern.matcher("").matches()) { - logger.log(Level.FINE, rule + ": `" + tp.symbol.name - + "' version match, no version."); - return true; - } - } - else - for (int i = 0; i < vers.length; ++i) - if (rule.versionPattern.matcher(vers[i].name).matches()) { - logger.log(Level.FINE, rule + ": `" + tp.symbol.name - + "' version match `" + vers[i].name+ "'."); - return true; - } - - return false; - } - - public void applyTracingRules(final Task task, final ObjectFile objf, final Ltrace.Driver driver, - final List rules, final TracePointOrigin origin) - throws lib.dwfl.ElfException - { - logger.log(Level.FINER, "Building working set for origin " + origin + "."); - - // Skip the set if it's empty... - if (rules.isEmpty()) - return; - - // Set, all tracepoints in objfile. - final Set candidates = new HashSet(); - // Set, incrementally built working set. - final Set workingSet = new HashSet(); - // Set, incrementally built set of tracepoints - // that should stacktrace. - final Set stackTraceSet = new HashSet(); - boolean candidatesInited = false; - - // Loop through all the rules, and use them to build - // workingSet from candidates. Candidates are initialized - // lazily inside the loop. - for (Iterator it = rules.iterator(); it.hasNext(); ) { - final WorkingSetRule rule = (WorkingSetRule)it.next(); - logger.log(Level.FINEST, "Considering rule " + rule + "."); - - // MAIN is meta-soname meaning "main executable". - if ((rule.sonamePattern.pattern().equals("MAIN") - && task.getProc().getExe().equals(objf.getFilename().getPath())) - || rule.sonamePattern.matcher(objf.getSoname()).matches()) - { - if (!candidatesInited) { - candidatesInited = true; - objf.eachTracePoint(new ObjectFile.TracePointIterator() { - public void tracePoint(TracePoint tp) { - if (candidates.add(tp)) - logger.log(Level.FINE, "candidate `" + tp.symbol.name + "'."); - } - }, origin); - } - - if (rule.addition) - // For '+' rules iterate over candidates, - // and add what matches to workingSet, and - // maybe to stackTraceSet. - for (Iterator jt = candidates.iterator(); jt.hasNext(); ) { - TracePoint tp = (TracePoint)jt.next(); - if (rule.namePattern.matcher(tp.symbol.name).matches() - && checkVersionMatches(tp, rule)) - { - if (workingSet.add(tp)) - logger.log(Level.CONFIG, rule + ": add `" + tp.symbol.name + "'."); - if (rule.stackTrace - && stackTraceSet.add(tp)) - logger.log(Level.CONFIG, rule + ": stack trace on `" + tp.symbol.name + "'."); - } - } - else { - // For '-' or '-#' rules iterate over - // workingSet or stackTraceSet, and remove - // what matches. - Set iterateOver = rule.stackTrace ? stackTraceSet : workingSet; - for (Iterator jt = iterateOver.iterator(); jt.hasNext(); ) { - TracePoint tp = (TracePoint)jt.next(); - if (rule.namePattern.matcher(tp.symbol.name).matches() - && checkVersionMatches(tp, rule)) { - jt.remove(); - if (!rule.stackTrace) - stackTraceSet.remove(tp); - logger.log(Level.CONFIG, rule + ": remove `" + tp.symbol.name + "'."); - } - } - } - } - } - - // Finally, apply constructed working set. - logger.log(Level.FINER, "Applying working set for origin " + origin + "."); - for (Iterator it = workingSet.iterator(); it.hasNext(); ) - driver.tracePoint(task, (TracePoint)it.next()); - - // And warn our console front end that it should stack - // trace if it sees one of these... - HashSet stackTraceSymbols = new HashSet(); - for (Iterator it = stackTraceSet.iterator(); it.hasNext(); ) - stackTraceSymbols.add(((TracePoint)it.next()).symbol); - observer.shouldStackTraceOn(stackTraceSymbols); - } - - public void fileMapped(final Task task, final ObjectFile objf, final Ltrace.Driver driver) { - try { - applyTracingRules(task, objf, driver, pltRules, TracePointOrigin.PLT); - applyTracingRules(task, objf, driver, dynRules, TracePointOrigin.DYNAMIC); - applyTracingRules(task, objf, driver, symRules, TracePointOrigin.SYMTAB); - } - catch (lib.dwfl.ElfException ee) { - ee.printStackTrace(); - } - } - } - - class MyLtraceObserver - implements LtraceObserver, - LtraceControllerObserver - { - private Map levelMap = new HashMap(); - - // Which system calls should yield a stack trace. - private HashSet syscallStackTraceSet = null; - - // Which symbols should yield a stack trace. - private HashSet symbolsStackTraceSet = new HashSet(); - - public synchronized void shouldStackTraceOn(Set symbols) - { - symbolsStackTraceSet.addAll(symbols); - } - - private Object lastItem = null; - private Task lastTask = null; - - private int getLevel(Task task) - { - int level = 0; - Integer l = (Integer)levelMap.get(task); - if (l != null) - level = l.intValue(); - return level; - } - - private void setLevel(Task task, int level) - { - levelMap.put(task, new Integer(level)); - } - - private boolean lineOpened() - { - return lastItem != null; - } - - private boolean myLineOpened(Task task, Object item) - { - return lastItem == item && lastTask == task; - } - - private void updateOpenLine(Task task, Object item) - { - lastItem = item; - lastTask = task; - } - - private String repeat(char c, int count) - { - // by Stephen Friedrich - char[] fill = new char[count]; - Arrays.fill(fill, c); - return new String(fill); - } - - private String pidInfo(Task task) - { - return "[" + task.getProc().getPid() + "." + task.getTid() + "]"; - } - - private void eventEntry(Task task, Object item, String eventType, - String eventName, Object[] args) - { - int level = this.getLevel(task); - String spaces = repeat(' ', level); - this.setLevel(task, ++level); - - if (lineOpened()) - System.err.println('\\'); - - System.err.print(pidInfo(task) + " " - + spaces + eventType + " "); - System.err.print(eventName + "("); - for (int i = 0; i < args.length; ++i) { - System.err.print(i > 0 ? ", " : ""); - // Temporary hack to get proper formatting before - // something more sane lands. - if (args[i] instanceof Long) - System.err.print("0x" + Long.toHexString(((Long)args[i]).longValue())); - else if (args[i] instanceof Integer) - System.err.print("0x" + Integer.toHexString(((Integer)args[i]).intValue())); - else - System.err.print(args[i]); - } - System.err.print(")"); - - updateOpenLine(task, item); - } - - private void eventLeave(Task task, Object item, String eventType, - String eventName, Object retVal) - { - int level = this.getLevel(task); - this.setLevel(task, --level); - - if (!myLineOpened(task, item)) - { - if (lineOpened()) - System.err.println(); - String spaces = repeat(' ', level); - System.err.print(pidInfo(task) + " " + spaces + eventType + " " + eventName); - } - - System.err.println(" = " + retVal); - - updateOpenLine(null, null); - } - - private void eventSingle(Task task, String eventName) - { - int level = this.getLevel(task); - - if (lineOpened()) - System.err.println("\\"); - System.err.println(pidInfo(task) + " " + repeat(' ', level) + eventName); - - updateOpenLine(null, null); - } hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Nov 30 12:52:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 30 Nov 2007 12:52:00 -0000 Subject: [SCM] master: Ftrace man page updates Message-ID: <20071130125233.30747.qmail@sourceware.org> The branch, master has been updated via f35d16f56550ed70b845dd3c6c975b8f133361e5 (commit) from 480e607f47241817fb2d52a7a52054475926056e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f35d16f56550ed70b845dd3c6c975b8f133361e5 Author: Petr Machata Date: Fri Nov 30 13:52:17 2007 +0100 Ftrace man page updates ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 + frysk-core/frysk/bindir/ftrace.xml | 218 ++++++++++++++++++++++++------------ 2 files changed, 149 insertions(+), 73 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 1a693b9..c9fcddd 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-11-30 Petr Machata + + * ftrace.xml: Updated. + 2007-11-28 Teresa Thomas * fdebugrpm.sh: Enable all debuginfo repos. diff --git a/frysk-core/frysk/bindir/ftrace.xml b/frysk-core/frysk/bindir/ftrace.xml index 3da2fe6..71279d7 100644 --- a/frysk-core/frysk/bindir/ftrace.xml +++ b/frysk-core/frysk/bindir/ftrace.xml @@ -68,7 +68,13 @@ ftrace + -c + -m + -o=FILE + -p=PID -s=SYSCALL[,SYSCALL...] + -S + -t=SYSCALL[,SYSCALL...] -plt=RULE[,RULE...] -dyn=RULE[,RULE...] -sym=RULE[,RULE...] @@ -82,69 +88,132 @@ ftrace starts given command and according to tracing script - given via command line argument, it traces its system calls, - runtime library calls, and symbol entry points in general. It - uses the Frysk framework to implement tracing. - - Which functions and/or syscalls ftrace - traces, and whether it traces given group at all, is configurable - through command-line options , - , and - . Neither option is turned on by - default. - - - - -s=SYSCALL[,SYSCALL...] - - Stack trace on this set of system calls. Each - SYSCALL entry is name of one - system call. - - - - - -plt=RULE[,RULE...] - - Trace library calls done via PLT entries matching each - given RULE. By tracing PLT - entry, you effectively trace calls done FROM given library - or executable, and generally can't say which library the - call leads TO. (At least for now. Ftrace may grow brains - for this in future.) See below for description of - RULE syntax. - - - - - -dyn=RULE[,RULE...] - - Trace calls through the symbol entry points. By - tracing entry points, you catch all calls that end up at - this symbol, including the calls that don't go through PLT - and as such are not intended as inter-library calls, but - rather intra-library calls. This is probably not what you - usually want, because you get lots of output when various - functions call each other in the library internals. On the - other hand, it may be useful to cherry pick few entry points - to see when or if they are called, and with which arguments. - See below for description of RULE - syntax. - - - - - -sym=RULE[,RULE...] - - Just like , but doesn't look for - symbols in dynamic symbol table, but normal symbol table. - (Which doesn't have to be present, e.g. when a binary is - stripped.) See below for description of - RULE syntax. - - - - + given via command-line arguments, it traces its system calls, + symbol entry points in general, and possibly other events as well. + It uses the Frysk framework to implement tracing. + + The working set of events ftrace should + trace is defined by the following arguments. + + + Process Selection Options + + + + -p=PID + + Attach to a process with given + PID. + + + + + -c + + Trace children: automatically attach to forks of + traced process. + + + + + + + System Call Tracing + + System calls are traced by default. + + + + -S + + Suppress system call tracing. + + + + + -s=SYSCALL[,SYSCALL...] + + Stack trace on this set of system calls. + When stack-traced syscall is encountered, a stack + trace of the calling task is printed out. Each + SYSCALL entry is name + of one system call. + + + + + -t=SYSCALL[,SYSCALL...] + + Explicitly define syscalls that should be + traced. Each SYSCALL + entry is name of one system call. + + + + + + + + Entry Point Tracing + + + + -plt=RULE[,RULE...] + + Trace library calls done via PLT entries matching each + given RULE. By tracing PLT + entry, you effectively trace calls done FROM given library + or executable, and generally can't say which library the + call leads TO. (At least for now. Ftrace may grow brains + for this in future.) See below for description of + RULE syntax. + + + + + -dyn=RULE[,RULE...] + + Trace calls through the symbol entry points. By + tracing entry points, you catch all calls that end up at + this symbol, including the calls that don't go through PLT + and as such are not intended as inter-library calls, but + rather intra-library calls. This is probably not what you + usually want, because you get lots of output when various + functions call each other in the library internals. On the + other hand, it may be useful to cherry pick few entry points + to see when or if they are called, and with which arguments. + See below for description of RULE + syntax. + + + + + -sym=RULE[,RULE...] + + Just like , but doesn't look for + symbols in dynamic symbol table, but normal symbol table. + (Which doesn't have to be present, e.g. when a binary is + stripped.) See below for description of + RULE syntax. + + + + + + + + Other Traceable Events + + + + -m + + Print each file mapped to or unmapped from address + space of the traced process. + + + + @@ -161,7 +230,7 @@ Optional "-" at the beginning of the rule means removal from the working set. When the sign is omitted, the default action is to add to the working set. Optional - "#" means that fltrace should print out stack trace when + "#" means that ftrace should print out stack trace when it hits the call. The combination of "-#" then means that the call should still be traced, but stack trace shouldn't be generated. pattern defines which PLT @@ -196,23 +265,26 @@ is possible to request symbol without a version with the pattern "foo@@".) - Empty rule is considered to miss all components, not contain - symbol component with empty contents, which makes little sense. - If you need to match empty symbol, use regular expression - "^$". + Empty rule is considered to miss all components. If you + need to match empty symbol, use regular expression "^$". + + + + + EXAMPLES Trace all plt library calls: - fltrace -plt= ls + ftrace -plt= ls Trace all library calls to functions that contain substring "write" in their names: - fltrace -plt=".*write.*" ls + ftrace -plt=".*write.*" ls Trace memory functions done from libraries, i.e. not from main executable: - fltrace -plt="[cm]alloc|free,-@MAIN" ls + ftrace -plt="[cm]alloc|free,-@MAIN" ls Stack trace on everything, except for memory allocation functions (which should still be traced): - fltrace -plt="#,-#[cm]alloc|free" ls + ftrace -plt="#,-#[cm]alloc|free" ls @@ -283,7 +355,7 @@ BUGS - I think ltrace wouldn't handle tracing one function both through entry point and plt. + I think ftrace doesn't handle tracing one function through both entry point and plt. Report bugs to http://sources.redhat.com/frysk. hooks/post-receive -- frysk system monitor/debugger From tthomas@sourceware.org Fri Nov 30 19:37:00 2007 From: tthomas@sourceware.org (tthomas@sourceware.org) Date: Fri, 30 Nov 2007 19:37:00 -0000 Subject: [SCM] master: Delete redundant, unused members & methods from LocationExpression. Message-ID: <20071130193731.16271.qmail@sourceware.org> The branch, master has been updated via 85c5359c1e019afb16137186f5daf59cb2c2ab55 (commit) via 8696198b544663d7e51507b873eb9d980b0184a6 (commit) from f35d16f56550ed70b845dd3c6c975b8f133361e5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 85c5359c1e019afb16137186f5daf59cb2c2ab55 Author: Teresa Thomas Date: Fri Nov 30 14:35:29 2007 -0500 Delete redundant, unused members & methods from LocationExpression. frysk-core/frysk/debuginfo/ChangeLog 2007-11-30 Teresa Thomas * LocationExpression.java: Update, Comments added. (getRegisterNumber): Delete method. (getLocationType): Delete method. (locationTypeRegDisp): Delete. (locationTypeAddress): Delete. (locationTypeReg): Delete. (locationType): Delete. commit 8696198b544663d7e51507b873eb9d980b0184a6 Author: Teresa Thomas Date: Fri Nov 30 14:34:28 2007 -0500 Re-indent method. frysk-core/frysk/value/ChangeLog 2007-11-30 Teresa Thomas * TestArray.java (testSlice): Reindent. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 10 +++ frysk-core/frysk/debuginfo/LocationExpression.java | 73 +++++-------------- frysk-core/frysk/value/ChangeLog | 4 + frysk-core/frysk/value/TestArray.java | 3 +- 4 files changed, 35 insertions(+), 55 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 905d003..f3939c7 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,13 @@ +2007-11-30 Teresa Thomas + + * LocationExpression.java: Update, Comments added. + (getRegisterNumber): Delete method. + (getLocationType): Delete method. + (locationTypeRegDisp): Delete. + (locationTypeAddress): Delete. + (locationTypeReg): Delete. + (locationType): Delete. + 2007-11-29 Stan Cox * TypeEntry.java (getType): Add REFERENCE_TYPE_ and SUBROUTINE_TYPE_. diff --git a/frysk-core/frysk/debuginfo/LocationExpression.java b/frysk-core/frysk/debuginfo/LocationExpression.java index 7db72aa..ee88e06 100644 --- a/frysk-core/frysk/debuginfo/LocationExpression.java +++ b/frysk-core/frysk/debuginfo/LocationExpression.java @@ -53,24 +53,17 @@ import frysk.isa.RegisterMap; import frysk.stack.Frame; public class LocationExpression { - public final static int locationTypeRegDisp = 1, - locationTypeAddress = 2, - locationTypeReg = 3; DwarfDie die; - int locationType; LinkedList stack; public LocationExpression(DwarfDie die) { - locationType = 0; this.die = die; this.stack = null; } /** - * Decode a location list and return the value. - * - */ - + * Decode a location list and return the value. + */ public List decode(DebugInfoFrame frame, int size) { List ops = die.getFormData(frame.getAdjustedAddress()); return decode(frame, ops, size); @@ -81,13 +74,14 @@ public class LocationExpression { * @param size - Size of variable * @return List of memory or register pieces */ - public List decode (Frame frame, List ops, int size) - { - + public List decode (Frame frame, List ops, int size) { + // stack to be used for location expression evaluation. stack = new LinkedList(); int nops = ops.size(); - RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()); - //pieces will contain a list of MemoryPiece, RegisterPiece or UnavaiablePiece + RegisterMap registerMap = DwarfRegisterMapFactory.getRegisterMap + (frame.getTask().getISA()); + // pieces will contain the resulting location as a list of + // MemoryPiece, RegisterPiece or UnavaiablePiece ArrayList pieces = new ArrayList(); if (nops == 0) @@ -173,8 +167,6 @@ public class LocationExpression { case DwOp.REG29_: case DwOp.REG30_: case DwOp.REG31_: - if (locationType == 0) - locationType = locationTypeReg; Register register = registerMap.getRegister(operator - DwOp.REG0_); // Push the register onto the dwfl stack stack.addFirst(register); @@ -212,34 +204,28 @@ public class LocationExpression { case DwOp.BREG29_: case DwOp.BREG30_: case DwOp.BREG31_: - locationType = locationTypeRegDisp; register = registerMap.getRegister(operator - DwOp.BREG0_); long regval = frame.getRegister(register); stack.addFirst(new Long(operand1 + regval)); break; case DwOp.REGX_: - if (locationType == 0) - locationType = locationTypeReg; register = registerMap.getRegister((int)operand1); stack.addFirst(register); break; case DwOp.BREGX_: - locationType = locationTypeRegDisp; register = registerMap.getRegister((int)operand1); regval = frame.getRegister(register); stack.addFirst(new Long(operand2 + regval)); break; case DwOp.ADDR_: - locationType = locationTypeAddress; stack.addFirst(new Long(operand1)); break; // DW_OP_fbreg calls recursively and pushes that value on the stack case DwOp.FBREG_: - locationType = locationTypeRegDisp; long pc = frame.getAdjustedAddress(); LocationExpression frameBaseOps = new LocationExpression (die); @@ -430,12 +416,11 @@ public class LocationExpression { // Composition Operators case DwOp.PIECE_: // Case where some bytes of value is unavailable - if (i==0 || ((DwarfOp)(ops.get(i-1))).operator==DwOp.PIECE_) - { + if (i==0 || ((DwarfOp)(ops.get(i-1))).operator==DwOp.PIECE_) { pieces.add(new UnavailablePiece(operand1)); break; } - // Otherwise, check the type of element on stack top and add to list + // Check the type of element on stack top and add to list addToList (frame, pieces, operand1); break; @@ -445,11 +430,11 @@ public class LocationExpression { } /* - * If pieces is empty, its the case where there is no memory split between registers and memory - * Then add element on stack top to the empty list + * Pieces being empty implies no memory split between + * registers and memory; then add element on the stack's + * top to the empty list */ - if (pieces.isEmpty()) - { + if (pieces.isEmpty()) { addToList (frame, pieces, size); } @@ -460,8 +445,7 @@ public class LocationExpression { * Function that checks the type of element on the stack top and adds it to the * list of location */ - private void addToList (Frame frame, List pieces, long size) - { + private void addToList (Frame frame, List pieces, long size) { /* * If stackTop is a Register, add it as a RegisterPiece to list pieces * If it is a long value, add it as a MemoryPiece @@ -471,33 +455,14 @@ public class LocationExpression { if (stackTop instanceof Register) pieces.add(new RegisterPiece((Register)stackTop, size, frame)); else if (stackTop instanceof Long) - pieces.add(new MemoryPiece(((Long)stackTop).longValue(), size, frame.getTask().getMemory())); + pieces.add(new MemoryPiece(((Long)stackTop).longValue(), size, + frame.getTask().getMemory())); } - /** - * Return register number for a one entry DW_OP_regX location list - * + * Get size of dwarf expression evaluation stack. */ - public Register getRegisterNumber (Frame frame, List ops) { - - if (ops.size() == 1) { - int operator = ((DwarfOp) ops.get(0)).operator; - if (operator >= DwOp.REG0_ - || operator <= DwOp.REG31_) { - locationType = locationTypeReg; - return DwarfRegisterMapFactory.getRegisterMap(frame.getTask().getISA()) - .getRegister(operator - DwOp.REG0_); - } - } - return null; - } - - public int getLocationType () { - return locationType; - } - - public int getStackSize() { + protected int getStackSize() { return ((stack != null) ? stack.size() : 0); } diff --git a/frysk-core/frysk/value/ChangeLog b/frysk-core/frysk/value/ChangeLog index a1bc19a..0d033cb 100644 --- a/frysk-core/frysk/value/ChangeLog +++ b/frysk-core/frysk/value/ChangeLog @@ -1,3 +1,7 @@ +2007-11-30 Teresa Thomas + + * TestArray.java (testSlice): Reindent. + 2007-11-29 Teresa Thomas * PointerType.java (toPrint): Catch exception diff --git a/frysk-core/frysk/value/TestArray.java b/frysk-core/frysk/value/TestArray.java index 1147d10..a715b72 100644 --- a/frysk-core/frysk/value/TestArray.java +++ b/frysk-core/frysk/value/TestArray.java @@ -112,7 +112,8 @@ public class TestArray extends TestCase { IntegerType t = new UnsignedType("type", ByteOrder.BIG_ENDIAN, 1); Value idx1 = new Value(t, l1); Value idx2 = new Value(t, l2); - assertEquals("Array[idx1:idx2]", "{84281096,151653132,219025168}", arrayType.slice(arr, idx1, idx2, null).toPrint()); + assertEquals("Array[idx1:idx2]", "{84281096,151653132,219025168}", + arrayType.slice(arr, idx1, idx2, null).toPrint()); } /** hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Dec 3 03:12:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 03 Dec 2007 03:12:00 -0000 Subject: [SCM] master: Replace TestTypeEntry.java with TestTypeEntry.java-sh. Message-ID: <20071203031255.2823.qmail@sourceware.org> The branch, master has been updated via 3e0d9c8797162375a29c000a1f59aa6baee8d18d (commit) via e1a13c24e7064b8b391772b31df0663d40cc63c4 (commit) from 85c5359c1e019afb16137186f5daf59cb2c2ab55 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3e0d9c8797162375a29c000a1f59aa6baee8d18d Author: Stan Cox Date: Sun Dec 2 21:54:54 2007 -0500 Replace TestTypeEntry.java with TestTypeEntry.java-sh. * TestTypeEntry.java-sh: New. commit e1a13c24e7064b8b391772b31df0663d40cc63c4 Author: Stan Cox Date: Sun Dec 2 21:45:26 2007 -0500 Replace TestTypeEntry.java-sh with TestTypeEntry.java * TestTypeEntryType.java-sh: Delete. * TestTypeEntryValue.java-sh: Delete. * TestTypeEntry.java: Delete * TestTypeEntry.java-sh: New. * gen-type-expect-tests.py (j.open): Remove reference to tool. (j.prologue): Rename TypeTestbed. Add checkType and checkValue. Remove compareEqual and class Expect. (j.add_test) Remove reference to tool. * funit-array.c: Delete. * funit-enum.c: Delete. * funit-scalar.c: Delete. * funit-struct.c: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 11 + frysk-core/frysk/debuginfo/TestTypeEntry.java | 281 -------------------- frysk-core/frysk/debuginfo/TestTypeEntry.java-sh | 5 + .../frysk/debuginfo/TestTypeEntryType.java-sh | 5 - .../frysk/debuginfo/TestTypeEntryValue.java-sh | 3 - .../frysk/debuginfo/gen-type-expect-tests.py | 180 +++++-------- frysk-core/frysk/pkglibdir/ChangeLog | 7 + frysk-core/frysk/pkglibdir/funit-array.c | 87 ------ frysk-core/frysk/pkglibdir/funit-class.cxx | 2 +- frysk-core/frysk/pkglibdir/funit-enum.c | 43 --- frysk-core/frysk/pkglibdir/funit-scalar.c | 96 ------- frysk-core/frysk/pkglibdir/funit-struct.c | 70 ----- 12 files changed, 87 insertions(+), 703 deletions(-) delete mode 100644 frysk-core/frysk/debuginfo/TestTypeEntry.java create mode 100644 frysk-core/frysk/debuginfo/TestTypeEntry.java-sh delete mode 100644 frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh delete mode 100644 frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh delete mode 100644 frysk-core/frysk/pkglibdir/funit-array.c delete mode 100644 frysk-core/frysk/pkglibdir/funit-enum.c delete mode 100644 frysk-core/frysk/pkglibdir/funit-scalar.c delete mode 100644 frysk-core/frysk/pkglibdir/funit-struct.c First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index f3939c7..1a6cbe0 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,14 @@ +2007-12-02 Stan Cox + + * TestTypeEntryType.java-sh: Delete. + * TestTypeEntryValue.java-sh: Delete. + * TestTypeEntry.java: Delete + * TestTypeEntry.java-sh: New. + * gen-type-expect-tests.py (j.open): Remove reference to tool. + (j.prologue): Rename TypeTestbed. Add checkType and checkValue. + Remove compareEqual and class Expect. + (j.add_test) Remove reference to tool. + 2007-11-30 Teresa Thomas * LocationExpression.java: Update, Comments added. diff --git a/frysk-core/frysk/debuginfo/TestTypeEntry.java b/frysk-core/frysk/debuginfo/TestTypeEntry.java deleted file mode 100644 index 371e08e..0000000 --- a/frysk-core/frysk/debuginfo/TestTypeEntry.java +++ /dev/null @@ -1,281 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.debuginfo; - -import java.util.Iterator; -import java.util.logging.Logger; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; -import lib.dwfl.DwflDieBias; -import frysk.dwfl.DwflCache; -import frysk.proc.Task; -import frysk.testbed.DaemonBlockedAtSignal; -import frysk.testbed.TestLib; -import frysk.value.CompositeType; -import frysk.value.Type; -import frysk.value.CompositeType.DynamicMember; -import frysk.value.CompositeType.Member; -import frysk.value.CompositeType.StaticMember; - -public class TestTypeEntry - extends TestLib -{ - private class Expect - { - String symbol; - String output; - Expect (String symbol, String expect) - { - this.symbol = symbol; - this.output = expect; - } - } - Logger logger = Logger.getLogger("frysk"); - - public void testScalar () { - Expect [] expect = { - new Expect("long_21", "long int"), - new Expect("int_21","int"), - new Expect("int_22", "volatile simode"), - new Expect("static_int", "int"), - new Expect("int_p", "volatile int *"), - new Expect("short_21", "short int"), - new Expect("char_21", "char"), - new Expect("float_21", "float"), - new Expect("double_21", "double"), - }; - - Task task = (new DaemonBlockedAtSignal("funit-scalar")).getMainTask(); - - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - Dwfl dwfl; - DwarfDie[] allDies; - Type varType; - DwarfDie varDie; - long pc = frame.getAdjustedAddress(); - dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - allDies = die.getScopes(pc - bias.bias); - TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); - - for (int i = 0; i < expect.length; i++) { - varDie = die.getScopeVar(allDies, expect[i].symbol); - assertNotNull(varDie); - varType = typeEntry.getType(varDie.getType()); - assertNotNull(varType); - assertEquals("testScalar " + expect[i].symbol, expect[i].output, varType.toPrint()); - } - } - - public void testArray () { - Expect[] expect = { - new Expect("arr_1", "long int [32]"), - new Expect("arr_2","int [5][6]"), - new Expect("arr_3", "float [4][5]"), - new Expect("arr_4", "char [4]"), - }; - - Task task = (new DaemonBlockedAtSignal("funit-array")).getMainTask(); - - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - Dwfl dwfl; - DwarfDie[] allDies; - Type varType; - DwarfDie varDie; - long pc = frame.getAdjustedAddress(); - dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - allDies = die.getScopes(pc - bias.bias); - TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); - - for (int i = 0; i < expect.length; i++) { - varDie = die.getScopeVar(allDies, expect[i].symbol); - assertNotNull(varDie); - varType = typeEntry.getType(varDie.getType()); - assertNotNull(varType); - assertEquals("testArray " + expect[i].symbol, expect[i].output, varType.toPrint()); - } - } - - public void testEnum () { - if (unresolved(4998)) - return; - - Expect[] expect = { - new Expect("sportscar", ".*enum.*bmw=0.*porsche=1.*"), - new Expect("ssportscar", ".*enum.*bmw.*porsche.*"), - }; - - Task task = (new DaemonBlockedAtSignal("funit-enum")).getMainTask(); - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - Dwfl dwfl; - DwarfDie[] allDies; - Type varType; - DwarfDie varDie; - long pc = frame.getAdjustedAddress(); - dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - allDies = die.getScopes(pc - bias.bias); - TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); - - for (int i = 0; i < expect.length; i++) { - varDie = die.getScopeVar(allDies, expect[i].symbol); - if (varDie == null) - varDie = DwarfDie.getDeclCU(allDies, expect[i].symbol); - if (varDie == null) { - continue; - } - varType = typeEntry.getType(varDie.getType()); - Pattern p = Pattern.compile(expect[i].output, Pattern.DOTALL); - Matcher m = p.matcher(varType.toPrint()); - assertTrue("testEnum " + expect[i].symbol, m.matches()); - } - } - - public void testStruct () { - Expect[] expect = { - new Expect("static_class", ".*static_class_t.*"), - new Expect("class_1", ".*static_class_t.*"), - new Expect("class_2", ".*c1;.*c2;.*"), - new Expect("class_3", ".*int.*arr.*.2..2..*"), - new Expect("class_4", ".*int x;.*float y;.*"), - new Expect("class_5", ".*simode.*x;.*float.*y;.*"), - new Expect("union_1", ".*union_t.*"), - new Expect("class_p", ".*static_class_t.*"), - }; - - Task task = (new DaemonBlockedAtSignal("funit-struct")).getMainTask(); - - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - Dwfl dwfl; - DwarfDie[] allDies; - Type varType; - DwarfDie varDie; - long pc = frame.getAdjustedAddress(); - dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - allDies = die.getScopes(pc - bias.bias); - TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); - - for (int i = 0; i < expect.length; i++) { - varDie = die.getScopeVar(allDies, expect[i].symbol); - varType = typeEntry.getType(varDie.getType()); - Pattern p = Pattern.compile(expect[i].output, Pattern.DOTALL); - Matcher m = p.matcher(varType.toPrint()); - assertTrue("testStruct " + expect[i].symbol, m.matches()); - } - } - - public void testClass () { - Expect[] expect = { - new Expect("mb", ".*public:.*char.*\\*.*msg;.*void.*Base1.*" - + "char.*\\*.*void.*~Base1.*char.*\\*.*msg;.*" - + "void.*Base2.*char.*\\*.*void.*~Base2.*private:.*" - + "char.*\\*.*note;.*void.*Type.*char.*\\*.*char.*\\*.*" - + "char.*void.*~Type.*" - ) - }; - - Task task = (new DaemonBlockedAtSignal("funit-class")).getMainTask(); - - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - - - Dwfl dwfl; - DwarfDie[] allDies; - Type varType; - DwarfDie varDie; - long pc = frame.getAdjustedAddress(); - dwfl = DwflCache.getDwfl(frame.getTask()); - DwflDieBias bias = dwfl.getCompilationUnit(pc); - DwarfDie die = bias.die; - allDies = die.getScopes(pc - bias.bias); - TypeEntry typeEntry = new TypeEntry(frame.getTask().getISA()); - - for (int i = 0; i < expect.length; i++) { - varDie = die.getScopeVar(allDies, expect[i].symbol); - varType = typeEntry.getType(varDie.getType()); - Pattern p = Pattern.compile(expect[i].output, Pattern.DOTALL); - Matcher m = p.matcher(varType.toPrint()); - assertTrue("testClass " + expect[i].symbol, m.matches()); - } - } - - public void testClassWithStaticMembers () { - - Task task = (new DaemonBlockedAtSignal("funit-class-static")).getMainTask(); - - DebugInfoFrame frame = DebugInfoStackFactory.createVirtualStackTrace(task); - - CompositeType compositeType = (CompositeType) frame.getSubprogram().getComposite().getType(); - - assertNotNull("Retrieved type successfully", compositeType); - - Iterator iterator = compositeType.iterator(); - - while(iterator.hasNext()){ - Member member = (Member) iterator.next(); - - if(member.getName().equals("i")){ - assertTrue("Member " + member.getName() + " has the correct class", member instanceof DynamicMember); - } - - if(member.getName().equals("static_i")){ - assertTrue("Member " + member.getName() + " has the correct class", member instanceof StaticMember); - } - - if(member.getName().equals("crash")){ - assertTrue("Member " + member.getName() + " has the correct class", member instanceof DynamicMember); - } - - if(member.getName().equals("static_crash")){ - assertTrue("Member " + member.getName() + " has the correct class", member instanceof StaticMember); - } - } - } - -} diff --git a/frysk-core/frysk/debuginfo/TestTypeEntry.java-sh b/frysk-core/frysk/debuginfo/TestTypeEntry.java-sh new file mode 100644 index 0000000..5a38c37 --- /dev/null +++ b/frysk-core/frysk/debuginfo/TestTypeEntry.java-sh @@ -0,0 +1,5 @@ +#!/bin/sh + +python $(dirname $0)/gen-type-expect-tests.py frysk/pkglibdir/funit-type-entry.c $(dirname $0)/../pkglibdir/funit-class.cxx + + diff --git a/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh b/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh deleted file mode 100644 index 9911fad..0000000 --- a/frysk-core/frysk/debuginfo/TestTypeEntryType.java-sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -python $(dirname $0)/gen-type-expect-tests.py -type frysk/pkglibdir/funit-type-entry.c $(dirname $0)/../pkglibdir/funit-class.cxx - - diff --git a/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh b/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh deleted file mode 100644 index de20fbe..0000000 --- a/frysk-core/frysk/debuginfo/TestTypeEntryValue.java-sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -python $(dirname $0)/gen-type-expect-tests.py -value frysk/pkglibdir/funit-type-entry.c $(dirname $0)/../pkglibdir/funit-class.cxx diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index ef2690f..3bfa97d 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -46,10 +46,8 @@ import os,sys ######################################################################## class j: - def open(self,name): -# self.j_file = open("/tmp/TestTypeEntry" + name.capitalize() + ".java", 'w') - self.tool = name - self.name = "TestTypeEntry" + name.capitalize() + def open(self): + self.name = "TestTypeEntry" def write(self,str): print str def prologue(self,): @@ -57,8 +55,8 @@ class j: package frysk.debuginfo; +import java.io.*; import java.util.logging.Logger; - import lib.dwfl.DwarfDie; import lib.dwfl.Dwfl; import lib.dwfl.DwflDieBias; @@ -66,29 +64,23 @@ import frysk.dwfl.DwflCache; import frysk.proc.Task; import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.TestLib; -''') - if (self.tool == "value"): - print(''' -import java.io.*; +import frysk.value.Type; import frysk.value.Value; import frysk.value.Format; import frysk.debuginfo.DebugInfo; ''') - elif (self.tool == "type"): - print(''' -import frysk.value.Type; -''') print(''' public class %s extends TestLib { - private class ExpectTest { + private class TypeTestbed { DebugInfoFrame frame; Task task; DwarfDie die; DwarfDie[] allDies; TypeEntry typeEntry; + String testName; - ExpectTest(String executable) { + TypeTestbed(String executable, String testName) { task = new DaemonBlockedAtSignal(executable).getMainTask(); frame = DebugInfoStackFactory.createDebugInfoStackTrace(task); long pc = frame.getAdjustedAddress(); @@ -97,116 +89,85 @@ public class %s extends TestLib { die = bias.die; allDies = die.getScopes(pc - bias.bias); typeEntry = new TypeEntry(frame.getTask().getISA()); + this.testName = testName; } ''' % (self.name)) - if (self.tool == "type"): - print(''' - void compareEqual(Expect[] expect, String myName) { - Type varType; - - for (int i = 0; i < expect.length; i++) { - DwarfDie varDie = die.getScopeVar(allDies, expect[i].symbol); - if (varDie == null) - System.out.println("Error: Cannot find " + expect[i].symbol); - assertNotNull(varDie); - varType = typeEntry.getType(varDie.getType()); - assertNotNull(varType); - // System.out.println("Expect: " + expect[i].symbol + "\\n'" + - // expect[i].output + "'\\nGot:\\n'" + varType.toPrint()); - assertEquals(myName + expect[i].symbol, expect[i].output, varType.toPrint()); - } + print(''' + void checkType(String symbol, String expected) { + Type varType; + + DwarfDie varDie = die.getScopeVar(allDies, symbol); + if (varDie == null) + System.out.println("Error: Cannot find " + symbol); + assertNotNull(varDie); + varType = typeEntry.getType(varDie.getType()); + assertNotNull(varType); + // System.out.println("Expect: " + symbol + "\\n'" + + // expected + "'\\nGot:\\n'" + varType.toPrint()); + assertEquals(testName + symbol, expected, varType.toPrint()); } - } -''') - elif (self.tool == "value"): - print(''' - void compareEqual(Expect[] expect, String myName) { + + void checkValue(String symbol, String expected) { // "Print" to a byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(32); PrintWriter pw = new PrintWriter(baos, true); - for (int i = 0; i < expect.length; i++) { - // ??? cache address of x so &x can be checked? - if (expect[i].output.indexOf("&") >= 0 - || expect[i].symbol.indexOf("ptr") >= 0 - || expect[i].output.length() == 0) - continue; - DwarfDie varDie = die.getScopeVar(allDies, expect[i].symbol); - if (varDie == null) - System.out.println("Error: Cannot find " + expect[i].symbol); - assertNotNull(varDie); - DebugInfo debugInfo = new DebugInfo(frame); - Value value = debugInfo.print(expect[i].symbol, frame); - value.toPrint(pw, task.getMemory(), Format.NATURAL, 0); - pw.flush(); - String valueString = baos.toString(); - // System.out.println("Expect: " + expect[i].symbol + - // "\\n'" + expect[i].output + "'\\nGot:\\n'" + - // valueString + "'" + " " + value.getType()); - assertEquals(myName + expect[i].symbol, expect[i].output, valueString); - baos.reset(); - } + // ??? cache address of x so &x can be checked? + if (expected.indexOf("&") >= 0 || symbol.indexOf("ptr") >= 0 + || expected.length() == 0) + return; + DwarfDie varDie = die.getScopeVar(allDies, symbol); + if (varDie == null) + System.out.println("Error: Cannot find " + symbol); + assertNotNull(varDie); + DebugInfo debugInfo = new DebugInfo(frame); + Value value = debugInfo.print(symbol, frame); + value.toPrint(pw, task.getMemory(), Format.NATURAL, 0); + pw.flush(); + String valueString = baos.toString(); + // System.out.println("Expect: " + symbol + + // "\\n'" + expected + "'\\nGot:\\n'" + + // valueString + "'" + " " + value.getType()); + assertEquals(testName + symbol, expected, valueString); + baos.reset(); } } ''') print(''' - private class Expect - { - String symbol; - String output; - Expect (String symbol, String expect) - { - this.symbol = symbol; - this.output = expect; - } - } hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Mon Dec 3 09:34:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Mon, 03 Dec 2007 09:34:00 -0000 Subject: [SCM] master: Changed HashMap.Entry to Map.Entry. This was necessary in order to compile for PowerPC. Message-ID: <20071203093421.7927.qmail@sourceware.org> The branch, master has been updated via a4b70c53de603ba83d69ce0b6594597dbbb2bddf (commit) from 3e0d9c8797162375a29c000a1f59aa6baee8d18d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a4b70c53de603ba83d69ce0b6594597dbbb2bddf Author: Jose Flavio Aguilar Paulino Date: Mon Dec 3 07:32:56 2007 -0200 Changed HashMap.Entry to Map.Entry. This was necessary in order to compile for PowerPC. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 7 +++++++ frysk-core/frysk/ftrace/Ltrace.java | 4 ++-- frysk-core/frysk/ftrace/MappingGuard.java | 4 ++-- 3 files changed, 11 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index 7292277..3d97d1a 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,10 @@ +2007-12-03 Jose Flavio Aguilar Paulino + + * Ltrace.java: Changed HashMap.Entry to Map.Entry. This was + necessary in order to compile for PowerPC. + + * MappingGuard.java: The same as above. + 2007-11-22 Petr Machata * Reporter.java: Flush buffer after writing. diff --git a/frysk-core/frysk/ftrace/Ltrace.java b/frysk-core/frysk/ftrace/Ltrace.java index a0bb877..6ffd3e8 100644 --- a/frysk-core/frysk/ftrace/Ltrace.java +++ b/frysk-core/frysk/ftrace/Ltrace.java @@ -43,11 +43,11 @@ import frysk.proc.Action; import frysk.proc.Task; import frysk.proc.TaskObserver; +import java.util.Map; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; -import java.util.Map; import java.util.Set; import java.util.logging.*; @@ -136,7 +136,7 @@ public class Ltrace private void eachObserver(ObserverIterator oit) { for (Iterator it = observers.entrySet().iterator(); it.hasNext();) { - HashMap.Entry entry = (HashMap.Entry)it.next(); + Map.Entry entry = (Map.Entry)it.next(); int v = ((Integer)entry.getValue()).intValue(); FunctionObserver ob = (FunctionObserver)entry.getKey(); for (int j = 0; j < v; ++j) diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index d799287..83be04e 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -41,8 +41,8 @@ package frysk.ftrace; import java.util.Iterator; import java.util.HashMap; -import java.util.List; import java.util.Map; +import java.util.List; import java.util.logging.*; import java.io.File; @@ -151,7 +151,7 @@ class MappingGuard protected void eachObserver(ObserverIterator oit) { for (Iterator it = observers.entrySet().iterator(); it.hasNext();) { - HashMap.Entry entry = (HashMap.Entry)it.next(); + Map.Entry entry = (Map.Entry)it.next(); int v = ((Integer)entry.getValue()).intValue(); MappingObserver ob = (MappingObserver)entry.getKey(); for (int j = 0; j < v; ++j) hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Mon Dec 3 10:59:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 03 Dec 2007 10:59:00 -0000 Subject: [SCM] master: Use libunwind cursor to get at CFA. Message-ID: <20071203105946.11374.qmail@sourceware.org> The branch, master has been updated via 5dbdfcd15da720f823e0e6f5065b5165e9d83fd5 (commit) via 907f99d9aef2ae1774e699e30a6ee1aaaf468d13 (commit) via 9364da606530820347ff611348231a798eaa2183 (commit) from a4b70c53de603ba83d69ce0b6594597dbbb2bddf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5dbdfcd15da720f823e0e6f5065b5165e9d83fd5 Author: Mark Wielaard Date: Sun Dec 2 14:35:41 2007 +0100 Use libunwind cursor to get at CFA. frysk-core/frysk/stack/ChangeLog 2007-12-03 Mark Wielaard * LibunwindFrame.java (getFrameIdentifier): Get CFA from cursor. frysk-sys/lib/unwind/ChangeLog 2007-12-03 Mark Wielaard * Cursor.java (getCFA): New method. * Unwind.java (getCFA): Likewise. * cni/UnwindH.hxx (getCFA): Likewise. commit 907f99d9aef2ae1774e699e30a6ee1aaaf468d13 Author: Mark Wielaard Date: Sat Dec 1 22:52:32 2007 +0100 Cleanup unused libunwind callbacks. frysk-core/frysk/stack/ChangeLog 2007-11-30 Mark Wielaard * LibunwindAddressSpace.java (getDynInfoListAddr): Removed. (resume): Likewise. frysk-sys/lib/unwind/ChangeLog 2007-11-30 Mark Wielaard * AddressSpace.java (getDynInfoListAddr): Removed. (resume): Likewise. * cni/UnwindH.hxx (get_dyn_info_list_addr): Return -UNW_ENOINFO. (resume): return -UNW_EINVAL. commit 9364da606530820347ff611348231a798eaa2183 Author: Mark Wielaard Date: Sat Dec 1 21:26:49 2007 +0100 Don't use libunwind ProcInfo, but normal Symbol lookup for stack. frysk-core/frysk/stack/ChangeLog 2007-11-30 Mark Wielaard * LibunwindFrame (getProcInfo): Removed. (getFrameIdentifier): Use Symbol.getAddress(), not ProcInfo. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/stack/ChangeLog | 14 ++++++++ frysk-core/frysk/stack/LibunwindAddressSpace.java | 13 ------- frysk-core/frysk/stack/LibunwindFrame.java | 24 +++---------- frysk-sys/lib/unwind/AddressSpace.java | 4 -- frysk-sys/lib/unwind/ChangeLog | 13 +++++++ frysk-sys/lib/unwind/Cursor.java | 4 ++ frysk-sys/lib/unwind/Unwind.java | 1 + frysk-sys/lib/unwind/cni/UnwindH.hxx | 38 +++++++++++++++++---- 8 files changed, 69 insertions(+), 42 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 15ce0a1..2755651 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,17 @@ +2007-12-03 Mark Wielaard + + * LibunwindFrame.java (getFrameIdentifier): Get CFA from cursor. + +2007-11-30 Mark Wielaard + + * LibunwindAddressSpace.java (getDynInfoListAddr): Removed. + (resume): Likewise. + +2007-11-30 Mark Wielaard + + * LibunwindFrame.java (getProcInfo): Removed. + (getFrameIdentifier): Use Symbol.getAddress(), not ProcInfo. + 2007-11-29 Andrew Cagney * TestRegs.java (testFloatRegisters()) diff --git a/frysk-core/frysk/stack/LibunwindAddressSpace.java b/frysk-core/frysk/stack/LibunwindAddressSpace.java index 0027b0c..5369fd5 100644 --- a/frysk-core/frysk/stack/LibunwindAddressSpace.java +++ b/frysk-core/frysk/stack/LibunwindAddressSpace.java @@ -49,12 +49,10 @@ import frysk.dwfl.DwflFactory; import frysk.isa.ISA; import frysk.proc.MemoryMap; import frysk.proc.Task; -import java.util.Arrays; import java.util.logging.Level; import java.util.logging.Logger; import lib.unwind.AddressSpace; import lib.unwind.ByteOrder; -import lib.unwind.Cursor; import lib.unwind.ElfImage; import lib.unwind.ProcInfo; import frysk.isa.RegisterMap; @@ -138,22 +136,11 @@ class LibunwindAddressSpace extends AddressSpace { return procInfo; } - public int getDynInfoListAddr (byte[] dilap) { - //XXX: Todo. - Arrays.fill(dilap, (byte) 0); - return - lib.unwind.Error.UNW_ENOINFO_; - } - public void putUnwindInfo (final ProcInfo procInfo) { // No longer need to hold procInfo. this.procInfo = null; } - public int resume (final Cursor cursor) { - //XXX: Todo. - return - lib.unwind.Error.UNW_EUNSPEC_; - } - private ElfImage getElfImage (long addr) { logger.log(Level.FINE, "{0} Entering getElfImage, addr: 0x{1}\n", new Object [] {this, Long.toHexString(addr)} ); diff --git a/frysk-core/frysk/stack/LibunwindFrame.java b/frysk-core/frysk/stack/LibunwindFrame.java index 64e9c28..6d8f09e 100644 --- a/frysk-core/frysk/stack/LibunwindFrame.java +++ b/frysk-core/frysk/stack/LibunwindFrame.java @@ -43,7 +43,6 @@ import java.util.logging.Level; import frysk.isa.Register; import java.util.logging.Logger; import lib.unwind.Cursor; -import lib.unwind.ProcInfo; import frysk.isa.ISA; import frysk.proc.Task; import frysk.symtab.Symbol; @@ -81,13 +80,6 @@ class LibunwindFrame extends Frame } /** - * Returns the ProcInfo object for this Frame. - */ - public ProcInfo getProcInfo () { - return cursor.getProcInfo(); - } - - /** * Returns the current program counter of this Frame. */ public long getAddress() { @@ -140,19 +132,15 @@ class LibunwindFrame extends Frame /** * Return this frame's FrameIdentifier. + * The frame identifier is the combination of the current + * symbols (function) start address and the call frame address + * of the cursor (frame). */ public FrameIdentifier getFrameIdentifier () { if (frameIdentifier == null) { - ProcInfo myInfo = getProcInfo(); - long cfa = 0; - Frame outer = getOuter(); - if (outer != null) - // The previous frame's SP makes for a good CFA for - // this frame. It's a value that needs to be constant - // through out the life-time of this frame, and hence - // this frame's SP (which changes) is no good. - cfa = ((LibunwindFrame)outer).cursor.getSP(); - frameIdentifier = new FrameIdentifier(myInfo.getStartIP(), cfa); + long functionAddress = getSymbol().getAddress(); + long cfa = cursor.getCFA(); + frameIdentifier = new FrameIdentifier(functionAddress, cfa); } return this.frameIdentifier; } diff --git a/frysk-sys/lib/unwind/AddressSpace.java b/frysk-sys/lib/unwind/AddressSpace.java index fafd777..1fdeff3 100644 --- a/frysk-sys/lib/unwind/AddressSpace.java +++ b/frysk-sys/lib/unwind/AddressSpace.java @@ -88,8 +88,6 @@ public abstract class AddressSpace */ public abstract void putUnwindInfo (ProcInfo procInfo); - public abstract int getDynInfoListAddr (byte[] dilap); - public abstract int accessMem (long addr, byte[] valp, boolean write); /** @@ -107,6 +105,4 @@ public abstract class AddressSpace * Access LIBUNWIND Register REGNUM. */ public abstract int accessReg(Number regnum, byte[] val, boolean write); - - public abstract int resume (Cursor cursor); } diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index 3ec704a..8ade7ea 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,16 @@ +2007-12-03 Mark Wielaard + + * Cursor.java (getCFA): New method. + * Unwind.java (getCFA): Likewise. + * cni/UnwindH.hxx (getCFA): Likewise. + +2007-11-30 Mark Wielaard + + * AddressSpace.java (getDynInfoListAddr): Removed. + (resume): Likewise. + * cni/UnwindH.hxx (get_dyn_info_list_addr): Return -UNW_ENOINFO. + (resume): return -UNW_EINVAL. + 2007-11-29 Andrew Cagney * AddressSpace.java (getReg(Number)): Replace getReg(int). diff --git a/frysk-sys/lib/unwind/Cursor.java b/frysk-sys/lib/unwind/Cursor.java index f12156d..2192322 100644 --- a/frysk-sys/lib/unwind/Cursor.java +++ b/frysk-sys/lib/unwind/Cursor.java @@ -87,6 +87,10 @@ public class Cursor return unwinder.getSP(cursor); } + public long getCFA() { + return unwinder.getCFA(cursor); + } + public int step() { return unwinder.step(cursor); } diff --git a/frysk-sys/lib/unwind/Unwind.java b/frysk-sys/lib/unwind/Unwind.java index 27bfaa3..8c8cdfd 100644 --- a/frysk-sys/lib/unwind/Unwind.java +++ b/frysk-sys/lib/unwind/Unwind.java @@ -70,6 +70,7 @@ public abstract class Unwind public abstract long getIP(RawDataManaged cursor); public abstract long getSP(RawDataManaged cursor); + public abstract long getCFA(RawDataManaged cursor); abstract RawDataManaged copyCursor(RawDataManaged cursor); abstract int getContext(RawDataManaged context); diff --git a/frysk-sys/lib/unwind/cni/UnwindH.hxx b/frysk-sys/lib/unwind/cni/UnwindH.hxx index 2580365..4b59aa5 100644 --- a/frysk-sys/lib/unwind/cni/UnwindH.hxx +++ b/frysk-sys/lib/unwind/cni/UnwindH.hxx @@ -119,16 +119,13 @@ put_unwind_info (::unw_addr_space_t as, ::unw_proc_info_t *proc_info, /* * Get the head of the dynamic unwind registration list. + * There is never any dynamic info in our case. */ static int get_dyn_info_list_addr (::unw_addr_space_t as, ::unw_word_t *dilap, void *arg) { - jbyteArray tmp = JvNewByteArray(sizeof (unw_word_t)); - memcpy (elements(tmp), dilap, sizeof (unw_word_t)); - int ret = addressSpace(arg)->getDynInfoListAddr (tmp); - memcpy(dilap, elements(tmp), sizeof (unw_word_t)); - return ret; + return -UNW_ENOINFO; } /* @@ -181,12 +178,13 @@ access_fpreg(::unw_addr_space_t as, ::unw_regnum_t regnum, } /* - * Resumes the process at the provided stack level + * Resumes the process at the provided stack level. + * We never resume a process through libunwind. */ static int resume(::unw_addr_space_t as, ::unw_cursor_t *cp, void *arg) { - return (int) addressSpace(arg)->resume ((lib::unwind::Cursor *) cp); + return -UNW_EINVAL; } /* @@ -368,6 +366,32 @@ lib::unwind::TARGET::getIP(gnu::gcj::RawDataManaged* cursor) return ip; } +jlong +lib::unwind::TARGET::getCFA(gnu::gcj::RawDataManaged* cursor) +{ +#ifdef UNW_TARGET_X86 +#define FRYSK_UNW_REG_CFA UNW_X86_CFA +#else +#ifdef UNW_TARGET_X86_64 +#define FRYSK_UNW_REG_CFA UNW_X86_64_CFA +#else +// This is wasteful, but there is no generic UNW_REG_CFA. +// So just unwind and return the stack pointer. +#define FRYSK_UNW_REG_CFA UNW_REG_SP +cursor = copyCursor (cursor); +if (unw_step((unw_cursor_t *) cursor) < 0) + return 0; +#endif +#endif + + unw_word_t cfa; + int status = unw_get_reg((::unw_cursor_t *) cursor, FRYSK_UNW_REG_CFA, &cfa); + if (status < 0) + return 0; // bottom of stack. + else + return cfa; +} + jint lib::unwind::TARGET::getContext(gnu::gcj::RawDataManaged* context) hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Mon Dec 3 12:59:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Mon, 03 Dec 2007 12:59:00 -0000 Subject: [SCM] master: Fix dependency for TestTypeEntry.java. Message-ID: <20071203125935.29579.qmail@sourceware.org> The branch, master has been updated via d0b09b68212a743402612f1cc83647ee153cc8e5 (commit) via 10fd792e65e5dec978b4c3e887887f0f52d194cf (commit) from 5dbdfcd15da720f823e0e6f5065b5165e9d83fd5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d0b09b68212a743402612f1cc83647ee153cc8e5 Merge: 10fd792e65e5dec978b4c3e887887f0f52d194cf 5dbdfcd15da720f823e0e6f5065b5165e9d83fd5 Author: Stan Cox Date: Mon Dec 3 07:52:12 2007 -0500 Fix dependency for TestTypeEntry.java. commit 10fd792e65e5dec978b4c3e887887f0f52d194cf Author: Stan Cox Date: Mon Dec 3 07:50:51 2007 -0500 Fix dependency for TestTypeEntry.java. * Makefile.am (TestTypeEntry.java): Fix dependency. ----------------------------------------------------------------------- Summary of changes: frysk-core/ChangeLog | 4 ++++ frysk-core/Makefile.am | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/ChangeLog b/frysk-core/ChangeLog index efddbdf..4f38c20 100644 --- a/frysk-core/ChangeLog +++ b/frysk-core/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Stan Cox + + * Makefile.am (TestTypeEntry.java): Fix dependency. + 2007-11-14 Andrew Cagney * Makefile.am (ANTLR): Delete. diff --git a/frysk-core/Makefile.am b/frysk-core/Makefile.am index 0a68867..1c22d15 100644 --- a/frysk-core/Makefile.am +++ b/frysk-core/Makefile.am @@ -95,9 +95,8 @@ installcheck-local: installcheck-funit installcheck-funit: $(DESTDIR)$(pkglibdir)/funit -# Create executables for type tests for TestTypeEntryType.java. -frysk/debuginfo/TestTypeEntryType.java: frysk/pkglibdir/funit-type-entry.c -frysk/debuginfo/TestTypeEntryValue.java: frysk/pkglibdir/funit-type-entry.c +# Create executables for type tests for TestTypeEntry.java. +frysk/debuginfo/TestTypeEntry.java: frysk/pkglibdir/funit-type-entry.c # Create executables for symbol tests for TestSymbol.java. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 16:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 16:42:00 -0000 Subject: [SCM] master: Restore old behavior; use this.outer.getSP() to construct FrameIdentifier. Message-ID: <20071203164221.21165.qmail@sourceware.org> The branch, master has been updated via 7ac95a41f7d7ef6137687c6b882369dd71764a3c (commit) from d0b09b68212a743402612f1cc83647ee153cc8e5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7ac95a41f7d7ef6137687c6b882369dd71764a3c Author: Andrew Cagney Date: Mon Dec 3 11:42:11 2007 -0500 Restore old behavior; use this.outer.getSP() to construct FrameIdentifier. frysk-core/frysk/stack/ChangeLog 2007-12-03 Andrew Cagney * LibunwindFrame.java: Revert <>; add more comments. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/stack/ChangeLog | 5 +++++ frysk-core/frysk/stack/LibunwindFrame.java | 23 ++++++++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 2755651..9656b93 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * LibunwindFrame.java: Revert <>; add more + comments. + 2007-12-03 Mark Wielaard * LibunwindFrame.java (getFrameIdentifier): Get CFA from cursor. diff --git a/frysk-core/frysk/stack/LibunwindFrame.java b/frysk-core/frysk/stack/LibunwindFrame.java index 6d8f09e..1495aa5 100644 --- a/frysk-core/frysk/stack/LibunwindFrame.java +++ b/frysk-core/frysk/stack/LibunwindFrame.java @@ -132,19 +132,32 @@ class LibunwindFrame extends Frame /** * Return this frame's FrameIdentifier. - * The frame identifier is the combination of the current - * symbols (function) start address and the call frame address - * of the cursor (frame). + * + * The frame identifier is the combination of the current symbols + * (function) start address and the more outer frame's inner most + * address. */ public FrameIdentifier getFrameIdentifier () { if (frameIdentifier == null) { long functionAddress = getSymbol().getAddress(); - long cfa = cursor.getCFA(); + // Note, cursor.getCFA is wrong here; libunwind returns the + // CFA used as part of computing the location of registers + // in the current cursor and not the "CFA" of this frame; + // effectively this frame's stack-pointer (in fact often + // getCFA() == getSP()). + long cfa = 0; + Frame outer = getOuter(); + if (outer != null) + // Need an address that is constant through out the + // lifetime of the frame (in particular when the stack + // grows). Use the outer-to-this frame's inner most + // stack address a.k.a. the stack-pointer.. + cfa = ((LibunwindFrame)outer).cursor.getSP(); frameIdentifier = new FrameIdentifier(functionAddress, cfa); } return this.frameIdentifier; } - + /** * Returns whether or not this frame's execution was interrupted by * a signal. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 17:44:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 17:44:00 -0000 Subject: [SCM] master: 16-byte allign x86 register buffer. Message-ID: <20071203174422.25656.qmail@sourceware.org> The branch, master has been updated via cba1f284ab9d7e1c3f8166601d486a52d7cee5fe (commit) from 7ac95a41f7d7ef6137687c6b882369dd71764a3c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cba1f284ab9d7e1c3f8166601d486a52d7cee5fe Author: Andrew Cagney Date: Mon Dec 3 12:43:46 2007 -0500 16-byte allign x86 register buffer. frysk-core/frysk/pkglibdir/ChangeLog 2007-12-03 Andrew Cagney * funit-regs.S (fxregs): Align to 16-byte boundary. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 ++++ frysk-core/frysk/pkglibdir/funit-regs.S | 6 +++++- 2 files changed, 9 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 496def6..f7cda52 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Andrew Cagney + + * funit-regs.S (fxregs): Align to 16-byte boundary. + 2007-12-02 Stan Cox * funit-array.c: Delete. diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index d4418a2..95e5de1 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -106,9 +106,13 @@ crash: LOAD_IMMED_WORD(REG0, 0) STORE(REG0, REG0) #endif - + + // Buffer containing values for all the X86 (fpu and sse) + // registers that can be loaded using a single fxrstor + // instruction. Buffer must be 16-byte aligned. #if defined __i386__ || defined __x86_64__ .data + .align 16 fxregs: // FCW .byte 0x71, 0x1e hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Dec 3 17:51:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 03 Dec 2007 17:51:00 -0000 Subject: [SCM] master: swagiaal: added implemented and tested getPubNames(). Message-ID: <20071203175125.30416.qmail@sourceware.org> The branch, master has been updated via aabe9d8db237353c405ca58827d0026978bc6d26 (commit) from cba1f284ab9d7e1c3f8166601d486a52d7cee5fe (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit aabe9d8db237353c405ca58827d0026978bc6d26 Author: Sami Wagiaalla Date: Mon Dec 3 12:48:57 2007 -0500 swagiaal: added implemented and tested getPubNames(). frysk-core/frysk/pkglibdir/ChangeLog +2007-12-03 Sami Wagiaalla + + * funit-class-static.cxx: Added a def of static_i. + frysk-core/frysk/scopes/ChangeLog +2007-12-03 Sami Wagiaalla + + * TestDie.java (testGetPubnames): New test. + frysk-sys/lib/dwfl/ChangeLog +2007-12-03 Sami Wagiaalla + + * DwflModule.java (getPubNames): New function. + * cni/DwflModule.cxx: Implemented get_pubnames + * Dwfl.java: Changed factory from private to protected + final. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 ++ frysk-core/frysk/pkglibdir/funit-class-static.cxx | 2 + frysk-core/frysk/scopes/ChangeLog | 4 ++ frysk-core/frysk/scopes/TestDie.java | 30 +++++++++++++++++- frysk-sys/lib/dwfl/ChangeLog | 7 ++++ frysk-sys/lib/dwfl/Dwfl.java | 2 +- frysk-sys/lib/dwfl/DwflModule.java | 16 +++++++++- frysk-sys/lib/dwfl/cni/DwflModule.cxx | 36 +++++++++++++++++++++ 8 files changed, 98 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index f7cda52..22faac1 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Sami Wagiaalla + + * funit-class-static.cxx: Added a def of static_i. + 2007-12-03 Andrew Cagney * funit-regs.S (fxregs): Align to 16-byte boundary. diff --git a/frysk-core/frysk/pkglibdir/funit-class-static.cxx b/frysk-core/frysk/pkglibdir/funit-class-static.cxx index c086f74..57e16c4 100644 --- a/frysk-core/frysk/pkglibdir/funit-class-static.cxx +++ b/frysk-core/frysk/pkglibdir/funit-class-static.cxx @@ -9,6 +9,8 @@ public: void crash(); }; +int A::static_i = 5; + void A::crash(){ int* a = 0; a[0] = 0; diff --git a/frysk-core/frysk/scopes/ChangeLog b/frysk-core/frysk/scopes/ChangeLog index 2f114b5..24470da 100644 --- a/frysk-core/frysk/scopes/ChangeLog +++ b/frysk-core/frysk/scopes/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Sami Wagiaalla + + * TestDie.java (testGetPubnames): New test. + 2007-11-20 Sami Wagiaalla * Scope.java (toPrint): Added printing for variable diff --git a/frysk-core/frysk/scopes/TestDie.java b/frysk-core/frysk/scopes/TestDie.java index 336f235..9ad5a93 100644 --- a/frysk-core/frysk/scopes/TestDie.java +++ b/frysk-core/frysk/scopes/TestDie.java @@ -40,14 +40,20 @@ package frysk.scopes; import java.io.File; +import java.util.Iterator; +import java.util.LinkedList; import lib.dwfl.DwAt; import lib.dwfl.DwarfDie; +import lib.dwfl.Dwfl; +import lib.dwfl.DwflModule; import frysk.Config; -import frysk.debuginfo.ObjectDeclarationSearchEngine; import frysk.debuginfo.DebugInfoFrame; import frysk.debuginfo.DebugInfoStackFactory; +import frysk.debuginfo.ObjectDeclarationSearchEngine; +import frysk.dwfl.DwflCache; import frysk.proc.Task; +import frysk.stack.StackFactory; import frysk.testbed.DaemonBlockedAtSignal; import frysk.testbed.TestLib; import frysk.testbed.TestfileTokenScanner; @@ -92,6 +98,28 @@ public class TestDie assertNotNull("Found original die", die); assertEquals("Die has correct name", "crash" ,die.getName()); + } + + public void testGetPubnames(){ + String fileName = "funit-class-static"; + Task task = (new DaemonBlockedAtSignal(fileName)).getMainTask(); + long pc = StackFactory.createFrame(task).getAdjustedAddress(); + + Dwfl dwfl = DwflCache.getDwfl(task); + DwflModule dwflModule = dwfl.getModule(pc); + LinkedList pubnames = dwflModule.getPubNames(); + Iterator iterator = pubnames.iterator(); + + assertEquals("Size of pubnames ", 3, pubnames.size()); + + DwarfDie die = (DwarfDie) iterator.next(); + assertEquals("Die name", "crash", die.getName()); + + die = (DwarfDie) iterator.next(); + assertEquals("Die name", "main", die.getName()); + + die = (DwarfDie) iterator.next(); + assertEquals("Die name", "static_i", die.getName()); } diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 4e0117e..a1bdd0c 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,10 @@ +2007-12-03 Sami Wagiaalla + + * DwflModule.java (getPubNames): New function. + * cni/DwflModule.cxx: Implemented get_pubnames + * Dwfl.java: Changed factory from private to protected + final. + 2007-11-29 Phil Muldoon * cni/ElfPrstatus.cxx (ElfPrstatus::fillMemRegion): Copy diff --git a/frysk-sys/lib/dwfl/Dwfl.java b/frysk-sys/lib/dwfl/Dwfl.java index daeb382..313a9f5 100644 --- a/frysk-sys/lib/dwfl/Dwfl.java +++ b/frysk-sys/lib/dwfl/Dwfl.java @@ -48,7 +48,7 @@ public class Dwfl { private DwflModule[] modules; - private final DwarfDieFactory factory = DwarfDieFactory.getFactory(); + protected final DwarfDieFactory factory = DwarfDieFactory.getFactory(); public Dwfl() { pointer = dwflBegin(); diff --git a/frysk-sys/lib/dwfl/DwflModule.java b/frysk-sys/lib/dwfl/DwflModule.java index 85c15c8..def4304 100644 --- a/frysk-sys/lib/dwfl/DwflModule.java +++ b/frysk-sys/lib/dwfl/DwflModule.java @@ -39,17 +39,21 @@ package lib.dwfl; +import java.util.LinkedList; + /** * A wrapper object around the libdwfl Dwfl_Module structure. */ public class DwflModule { + protected LinkedList pubNames; + protected long bias; private long pointer; - private Dwfl parent; + protected final Dwfl parent; protected String name; @@ -80,6 +84,16 @@ public class DwflModule return module_getelf(); } + public LinkedList getPubNames(){ + if(this.pubNames == null){ + this.pubNames = new LinkedList(); + get_pubnames(); + } + return pubNames; + } + + private native void get_pubnames(); + /** * Get the name of the module. * diff --git a/frysk-sys/lib/dwfl/cni/DwflModule.cxx b/frysk-sys/lib/dwfl/cni/DwflModule.cxx index a5844fb..3a1113c 100644 --- a/frysk-sys/lib/dwfl/cni/DwflModule.cxx +++ b/frysk-sys/lib/dwfl/cni/DwflModule.cxx @@ -46,10 +46,16 @@ #include #include "lib/dwfl/DwflModule.h" +#include "lib/dwfl/DwarfDie.h" #include "lib/dwfl/DwflLine.h" #include "lib/dwfl/ModuleElfBias.h" #include "lib/dwfl/SymbolBuilder.h" #include "lib/dwfl/Elf.h" +#include "lib/dwfl/DwarfDieFactory.h" +#include "lib/dwfl/Dwfl.h" +#include "lib/dwfl/DwException.h" + +#include "java/util/LinkedList.h" #define DWFL_MODULE_POINTER (Dwfl_Module *) this->pointer @@ -197,3 +203,33 @@ lib::dwfl::DwflModule::getDebuginfo() return getName(); } + +static int +callback (Dwarf *dwarf, Dwarf_Global *gl, void* thisObject) +{ + + lib::dwfl::DwflModule* dwflModule = (lib::dwfl::DwflModule*)thisObject; + lib::dwfl::Dwfl* dwfl = dwflModule->parent; + + Dwarf_Die *die = (Dwarf_Die*)JvMalloc(sizeof(Dwarf_Die)); + + if (dwarf_offdie (dwarf, gl->die_offset, die) == NULL){ + throw new lib::dwfl::DwarfException(JvNewStringUTF("failed to get object die")); + }else{ + lib::dwfl::DwarfDie* dwarfDie = dwfl->factory->makeDie((jlong)die, dwfl); + dwflModule->pubNames->add(dwarfDie); + + } + + return DWARF_CB_OK; +} + +void +lib::dwfl::DwflModule::get_pubnames() +{ + Dwarf_Addr bias; + ::Dwarf* dwarf = dwfl_module_getdwarf ((Dwfl_Module*)this->pointer, &bias); + + dwarf_getpubnames(dwarf, callback, this,0); +} + hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 18:11:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 18:11:00 -0000 Subject: [SCM] master: Enable x86 vector register tests. Message-ID: <20071203181121.15683.qmail@sourceware.org> The branch, master has been updated via a2e64ef341820b428f187ef062ff076d5cc930d9 (commit) from aabe9d8db237353c405ca58827d0026978bc6d26 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a2e64ef341820b428f187ef062ff076d5cc930d9 Author: Andrew Cagney Date: Mon Dec 3 13:03:20 2007 -0500 Enable x86 vector register tests. frysk-core/frysk/pkglibdir/ChangeLog 2007-12-03 Andrew Cagney * funit-regs.S (main) [__x86_64__]: Enable fxrstor instruction. frysk-core/frysk/proc/live/ChangeLog 2007-12-03 Andrew Cagney * TestRegs.java (testVectorRegisters()): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 2 ++ frysk-core/frysk/pkglibdir/funit-regs.S | 4 ++-- frysk-core/frysk/proc/live/ChangeLog | 4 ++++ frysk-core/frysk/proc/live/TestRegs.java | 7 ------- 4 files changed, 8 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 22faac1..0b15918 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -4,6 +4,8 @@ 2007-12-03 Andrew Cagney + * funit-regs.S (main) [__x86_64__]: Enable fxrstor instruction. + * funit-regs.S (fxregs): Align to 16-byte boundary. 2007-12-02 Stan Cox diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index 95e5de1..530016e 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -65,8 +65,8 @@ #elif defined __x86_64__ // floating-point and vector registers - //mov $fxregs, %rax - //fxrstor (%rax) + mov $fxregs, %rax + fxrstor (%rax) mov $0x837bb4e2d8209ca3, %rax mov $0x16d196be91fb2b92, %rdx diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index ca83edc..33e24b8 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Andrew Cagney + + * TestRegs.java (testVectorRegisters()): Delete. + 2007-11-29 Andrew Cagney * TestCoreRegs.java (testFloatRegisters()) diff --git a/frysk-core/frysk/proc/live/TestRegs.java b/frysk-core/frysk/proc/live/TestRegs.java index 2ac3697..c22ea93 100644 --- a/frysk-core/frysk/proc/live/TestRegs.java +++ b/frysk-core/frysk/proc/live/TestRegs.java @@ -66,11 +66,4 @@ public class TestRegs extends RegsCase { return; super.testFloatRegisters(); } - - // XXX: Delete this once the unresolved cases are fixed. - public void testVectorRegisters() { - if (isa() == ISA.X8664 && unresolved(5195)) - return; - super.testVectorRegisters(); - } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 18:57:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 18:57:00 -0000 Subject: [SCM] master: Use names, instead of methods to get vector and float register groups. Message-ID: <20071203185750.14388.qmail@sourceware.org> The branch, master has been updated via 778ac77d3fe215ae14102f07822ba0f3d1cc0079 (commit) from a2e64ef341820b428f187ef062ff076d5cc930d9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 778ac77d3fe215ae14102f07822ba0f3d1cc0079 Author: Andrew Cagney Date: Mon Dec 3 13:41:11 2007 -0500 Use names, instead of methods to get vector and float register groups. frysk-core/frysk/isa/ChangeLog 2007-12-03 Andrew Cagney * Registers.java (getFloatRegisterGroup()): Delete. (getVectorRegisterGroup()): Delete. frysk-core/frysk/testbed/ChangeLog 2007-12-03 Andrew Cagney * TestRegs.java (checkRegisterGroupPresent(String)): New. (testVectorRegistersPresent()): Use. (testFloatRegistersPresent()): Use. * RegsCase.java (checkRegisterGroup(String)): New. (testVectorRegisterGroup()): Use. (testFloatRegisterGroup()): Use. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 5 +++++ frysk-core/frysk/isa/Registers.java | 12 ------------ frysk-core/frysk/testbed/ChangeLog | 9 +++++++++ frysk-core/frysk/testbed/RegsCase.java | 11 +++++++++-- frysk-core/frysk/testbed/TestRegs.java | 15 +++++++++++---- 5 files changed, 34 insertions(+), 18 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 20ce4cd..91b7765 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * Registers.java (getFloatRegisterGroup()): Delete. + (getVectorRegisterGroup()): Delete. + 2007-11-29 Andrew Cagney * RegisterMap.java (RegisterMap(String)): New. diff --git a/frysk-core/frysk/isa/Registers.java b/frysk-core/frysk/isa/Registers.java index 2241228..c36aaa3 100644 --- a/frysk-core/frysk/isa/Registers.java +++ b/frysk-core/frysk/isa/Registers.java @@ -84,18 +84,6 @@ public abstract class Registers { return getGroup("regs"); } /** - * Return the "float" register group. - */ - public RegisterGroup getFloatRegisterGroup() { - return getGroup("float"); - } - /** - * Return the "multi-media" or vector register group. - */ - public RegisterGroup getVectorRegisterGroup() { - return getGroup("vector"); - } - /** * Return the "all" register group. */ public RegisterGroup getAllRegistersGroup() { diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 2514eb5..f3ebfc6 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,12 @@ +2007-12-03 Andrew Cagney + + * TestRegs.java (checkRegisterGroupPresent(String)): New. + (testVectorRegistersPresent()): Use. + (testFloatRegistersPresent()): Use. + * RegsCase.java (checkRegisterGroup(String)): New. + (testVectorRegisterGroup()): Use. + (testFloatRegisterGroup()): Use. + 2007-11-29 Andrew Cagney * RegsCase.java (testVectorRegisters()): Remove unresolved. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index c23ddda..76208c0 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -127,17 +127,24 @@ public abstract class RegsCase extends TestLib { value.checkRegister(this, register); } } + + private void checkRegisterGroup(String what) { + RegisterGroup registerGroup = registers.getGroup(what); + if (unsupported("no " + what + " registers", registerGroup == null)) + return; + checkRegisterGroup(registerGroup); + } public void testGeneralRegisters() { checkRegisterGroup(registers.getGeneralRegisterGroup()); } public void testFloatRegisters() { - checkRegisterGroup(registers.getFloatRegisterGroup()); + checkRegisterGroup("float"); } public void testVectorRegisters() { - checkRegisterGroup(registers.getVectorRegisterGroup()); + checkRegisterGroup("vector"); } /** diff --git a/frysk-core/frysk/testbed/TestRegs.java b/frysk-core/frysk/testbed/TestRegs.java index b9be59e..2da6d56 100644 --- a/frysk-core/frysk/testbed/TestRegs.java +++ b/frysk-core/frysk/testbed/TestRegs.java @@ -113,12 +113,19 @@ public class TestRegs extends TestLib { .getGeneralRegisterGroup()); } public void testFloatRegistersPresent() { - checkRegisterGroupPresent(RegistersFactory.getRegisters(regsCase.isa()) - .getFloatRegisterGroup()); + checkRegisterGroupPresent("float"); } public void testVectorRegistersPresent() { - checkRegisterGroupPresent(RegistersFactory.getRegisters(regsCase.isa()) - .getVectorRegisterGroup()); + checkRegisterGroupPresent("vector"); + } + + private void checkRegisterGroupPresent(String what) { + RegisterGroup registerGroup = RegistersFactory + .getRegisters(regsCase.isa()) + .getGroup(what); + if (unsupported("no " + what + " registers", registerGroup == null)) + return; + checkRegisterGroupPresent(registerGroup); } private void checkRegisterGroupPresent(RegisterGroup group) { hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Mon Dec 3 20:47:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Mon, 03 Dec 2007 20:47:00 -0000 Subject: [SCM] master: Add StepOverPrologue test. Message-ID: <20071203204729.5038.qmail@sourceware.org> The branch, master has been updated via 32035e6f7ed081a0d73a4fd035b142981048a220 (commit) from 778ac77d3fe215ae14102f07822ba0f3d1cc0079 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 32035e6f7ed081a0d73a4fd035b142981048a220 Author: Mark Wielaard Date: Mon Dec 3 21:47:15 2007 +0100 Add StepOverPrologue test. frysk-core/frysk/pkglibdir/ChangeLog 2007-12-03 Mark Wielaard * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_ marker. frysk-core/frysk/stepping/ChangeLog 2007-12-03 Mark Wielaard * TestStepping.java (testASMFunctionStepOverPrologue): New test. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 5 ++ frysk-core/frysk/pkglibdir/funit-stepping-asm.S | 8 ++++ frysk-core/frysk/stepping/ChangeLog | 10 +++- frysk-core/frysk/stepping/TestStepping.java | 46 +++++++++++++++++++++++ 4 files changed, 66 insertions(+), 3 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 0b15918..6083017 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Mark Wielaard + + * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_ + marker. + 2007-12-03 Sami Wagiaalla * funit-class-static.cxx: Added a def of static_i. diff --git a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S index 4af1506..cde2b22 100644 --- a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S +++ b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S @@ -40,10 +40,18 @@ #include "frysk-asm.h" + FUNCTION_BEGIN(fifth,1) + FUNCTION_PROLOGUE(fifth,1) ; NO_OP // _stepOverPrologue_ + FUNCTION_EPILOGUE(fifth,1) + FUNCTION_RETURN(fifth,1) + FUNCTION_END(fifth,1) + + FUNCTION_BEGIN(fourth,0) FUNCTION_PROLOGUE(fourth,0) NO_OP // _stepAdvanceStart_ NO_OP + FUNCTION_CALL(fifth) FUNCTION_EPILOGUE(fourth,0) FUNCTION_RETURN(fourth,0) FUNCTION_END(fourth,0) diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index f643eb3..7a52835 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,7 +1,11 @@ +2007-12-03 Mark Wielaard + + * TestStepping.java (testASMFunctionStepOverPrologue): New test. + 2007-11-06 Tim Moore - - * SteppingEngine.java (ThreadLifeObservable.updateTerminated): - Clean out the dead task and its siblings if necessary. + + * SteppingEngine.java (ThreadLifeObservable.updateTerminated): + Clean out the dead task and its siblings if necessary. 2007-10-14 Andrew Cagney diff --git a/frysk-core/frysk/stepping/TestStepping.java b/frysk-core/frysk/stepping/TestStepping.java index 7f14ea1..cab4480 100644 --- a/frysk-core/frysk/stepping/TestStepping.java +++ b/frysk-core/frysk/stepping/TestStepping.java @@ -952,6 +952,52 @@ public class TestStepping extends TestLib { cleanup(); } + /** + * Tests that the line stepper steps OK even when stack pointer + * changes. + */ + public void testASMFunctionStepOverPrologue() { + + /** Variable setup */ + String source = Config.getRootSrcDir() + + "frysk-core/frysk/pkglibdir/funit-stepping-asm.S"; + + this.scanner = new TestfileTokenScanner(new File(source)); + + /* The line number where the test begins, prologue of fifth + function. */ + int startLine = this.scanner.findTokenLine("_stepOverPrologue_"); + + /* The line number the test should end up at, still the same + line (only prologue is stepped over, not the NO_OP) */ + int endLine = this.scanner.findTokenLine("_stepOverPrologue_"); + + /* The test process */ + dbae = new DaemonBlockedAtEntry(Config + .getPkgLibFile("funit-stepping-asm")); + + Task theTask = dbae.getMainTask(); + + this.testStarted = false; + + initTaskWithTask(theTask, source, startLine, endLine); + + this.currentTest = new AssertLine(endLine, theTask); + + DebugInfoFrame frame = DebugInfoStackFactory + .createDebugInfoStackTrace(theTask); + assertTrue("Line information present", frame.getLines().length > 0); + + /** The stepping operation */ + this.se.stepOver(theTask, frame); + + this.testStarted = true; + /** Run to completion */ + assertRunUntilStop("Running test"); + cleanup(); + } + + boolean genericUpdate = false; public Task initTask(Offspring process, String source, int startLine, hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Mon Dec 3 22:03:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Mon, 03 Dec 2007 22:03:00 -0000 Subject: [SCM] master: swagiaal: Renamed DwarfDie.getParent to getDwfl Message-ID: <20071203220303.2016.qmail@sourceware.org> The branch, master has been updated via 12a00e7ea3e7a513e2934c942e56ec4d61d15830 (commit) from 32035e6f7ed081a0d73a4fd035b142981048a220 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 12a00e7ea3e7a513e2934c942e56ec4d61d15830 Author: Sami Wagiaalla Date: Mon Dec 3 17:01:50 2007 -0500 swagiaal: Renamed DwarfDie.getParent to getDwfl frysk-sys/lib/dwfl/ChangeLog +2007-12-03 Sami Wagiaalla + + * DwarfDie.java (getDwfl): renamed getParent to getDwfl. + ----------------------------------------------------------------------- Summary of changes: frysk-sys/lib/dwfl/ChangeLog | 4 ++++ frysk-sys/lib/dwfl/DwarfDie.java | 20 ++++++++++---------- 2 files changed, 14 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index a1bdd0c..1884fc3 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,5 +1,9 @@ 2007-12-03 Sami Wagiaalla + * DwarfDie.java (getDwfl): renamed getParent to getDwfl. + +2007-12-03 Sami Wagiaalla + * DwflModule.java (getPubNames): New function. * cni/DwflModule.cxx: Implemented get_pubnames * Dwfl.java: Changed factory from private to protected diff --git a/frysk-sys/lib/dwfl/DwarfDie.java b/frysk-sys/lib/dwfl/DwarfDie.java index 0868d42..1693532 100644 --- a/frysk-sys/lib/dwfl/DwarfDie.java +++ b/frysk-sys/lib/dwfl/DwarfDie.java @@ -47,17 +47,17 @@ abstract public class DwarfDie { private long pointer; private DwarfDie[] scopes; private int scopeIndex; - private Dwfl parent; + private Dwfl dwfl; protected boolean manageDie = false; protected DwarfDie(long pointer, Dwfl parent) { this.pointer = pointer; - this.parent = parent; + this.dwfl = parent; } - protected Dwfl getParent () { - return this.parent; + protected Dwfl getDwfl () { + return this.dwfl; } public long getHighPC () { @@ -106,7 +106,7 @@ abstract public class DwarfDie { DwarfDieFactory factory = DwarfDieFactory.getFactory(); for(int i = 0; i < vals.length; i++) if(vals[i] != 0) - dies[i] = factory.makeDie(vals[i], this.parent); + dies[i] = factory.makeDie(vals[i], this.dwfl); else dies[i] = null; @@ -123,7 +123,7 @@ abstract public class DwarfDie { DwarfDieFactory factory = DwarfDieFactory.getFactory(); for(int i = 0; i < vals.length; i++) { if(vals[i] != 0) - dies[i] = factory.makeDie(vals[i], this.parent); + dies[i] = factory.makeDie(vals[i], this.dwfl); else dies[i] = null; } @@ -145,7 +145,7 @@ abstract public class DwarfDie { long val = get_scopevar(die_and_scope, vals, variable); if (val >= 0) { die = DwarfDieFactory.getFactory().makeDie(die_and_scope[0], - this.parent); + this.dwfl); die.scopes = scopes; die.scopeIndex = (int)die_and_scope[1]; } @@ -222,7 +222,7 @@ abstract public class DwarfDie { DwarfDie die = null; long type = get_type(this.getPointer(), followTypeDef); if (type != 0) - die = DwarfDieFactory.getFactory().makeDie(type, this.parent); + die = DwarfDieFactory.getFactory().makeDie(type, this.dwfl); return die; } @@ -255,7 +255,7 @@ abstract public class DwarfDie { long child = get_child(this.getPointer()); DwarfDie die = null; if (child != 0) - die = DwarfDieFactory.getFactory().makeDie(child, this.parent); + die = DwarfDieFactory.getFactory().makeDie(child, this.dwfl); return die; } @@ -266,7 +266,7 @@ abstract public class DwarfDie { long sibling = get_sibling(this.getPointer()); DwarfDie die = null; if (sibling != 0) - die = DwarfDieFactory.getFactory().makeDie(sibling, this.parent); + die = DwarfDieFactory.getFactory().makeDie(sibling, this.dwfl); return die; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 23:16:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 23:16:00 -0000 Subject: [SCM] master: Enable live floating-point register tests. Message-ID: <20071203231637.26705.qmail@sourceware.org> The branch, master has been updated via 839772cd0edce393775a7a622599f3bb4a52ed42 (commit) from 12a00e7ea3e7a513e2934c942e56ec4d61d15830 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 839772cd0edce393775a7a622599f3bb4a52ed42 Author: Andrew Cagney Date: Mon Dec 3 18:11:49 2007 -0500 Enable live floating-point register tests. frysk-core/frysk/pkglibdir/ChangeLog 2007-12-03 Andrew Cagney * funit-regs.S (fxregs) [__i386__ || __x86_64__]: Provide initial values for FSW, FTW, FOP, RIP, RDP, CS, DS, EIP, and DP. frysk-core/frysk/proc/live/ChangeLog 2007-12-03 Andrew Cagney * TestRegs.java (testFloatRegisters()): Delete. frysk-core/frysk/testbed/ChangeLog 2007-12-03 Andrew Cagney * RegsCase.java (IA32, X8664): Update X87's FSW, FOP, EIP, CS, DS, DP, RIP, and RDP. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 5 +++ frysk-core/frysk/pkglibdir/funit-regs.S | 38 +++++++++++++++++--------- frysk-core/frysk/proc/live/ChangeLog | 2 + frysk-core/frysk/proc/live/TestRegs.java | 10 ------- frysk-core/frysk/testbed/ChangeLog | 3 ++ frysk-core/frysk/testbed/RegsCase.java | 42 ++++++++++++++--------------- 6 files changed, 55 insertions(+), 45 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 6083017..e8b9b2d 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * funit-regs.S (fxregs) [__i386__ || __x86_64__]: Provide initial + values for FSW, FTW, FOP, RIP, RDP, CS, DS, EIP, and DP. + 2007-12-03 Mark Wielaard * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_ diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index 530016e..50749f6 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -51,6 +51,7 @@ // floating-point and vector registers mov $fxregs, %eax fxrstor (%eax) + fxsave (%eax) mov $0x7eb03efc, %eax mov $0x35a322a0, %ebx @@ -66,7 +67,7 @@ // floating-point and vector registers mov $fxregs, %rax - fxrstor (%rax) + rex64/fxrstor (%rax) mov $0x837bb4e2d8209ca3, %rax mov $0x16d196be91fb2b92, %rdx @@ -114,21 +115,32 @@ crash: .data .align 16 fxregs: - // FCW + // FCW 0x1e71 .byte 0x71, 0x1e - // FSW 0x47e4 - .byte 0, 0 // .byte 0xe4, 0x47 + // FSW 0xc7e4 + .byte 0xe4, 0xc7 // FTW 0xc9 - .byte 0 // .byte 0xc9 + .byte 0xc9 .fill 1, 1, 0 - // FOP 0x1e8f - .byte 0, 0 // .byte 0x8f, 0x1e - // RIP 0x99af236679d5eeff - .byte 0, 0, 0, 0 // .byte 0xff, 0xee, 0xd5, 0x79 - .byte 0, 0, 0, 0 // .byte 0x66, 0x23, 0xaf, 0x99 - // RDP 0x6988a565d0acd7b0 - .byte 0, 0, 0, 0 // .byte 0xb0, 0xd7, 0xac, 0xd0 - .byte 0, 0, 0, 0 // .byte 0x65, 0xa5, 0x88, 0x69 + // FOP 0x068f + .byte 0x8f, 0x06 +#if defined __i386__ + // EIP + .byte 0xff, 0xee, 0xd5, 0x79 + // can't reliably set CS on i386 + .byte 0, 0, 0, 0 + // DP + .byte 0xb0, 0xd7, 0xac, 0xd0 + // can't reliably set DS on i386 + .byte 0, 0, 0, 0 +#else + // RIP 0x0000236679d5eeff + .byte 0xff, 0xee, 0xd5, 0x79 + .byte 0x66, 0x23, 0x00, 0x00 + // RDP 0x00007565d0acd7b0 + .byte 0xb0, 0xd7, 0xac, 0xd0 + .byte 0x65, 0x75, 0x00, 0x00 +#endif // MXCSR .fill 4, 1, 0 // MXCSR_MASK diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 33e24b8..cb7e428 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,7 @@ 2007-12-03 Andrew Cagney + * TestRegs.java (testFloatRegisters()): Delete. + * TestRegs.java (testVectorRegisters()): Delete. 2007-11-29 Andrew Cagney diff --git a/frysk-core/frysk/proc/live/TestRegs.java b/frysk-core/frysk/proc/live/TestRegs.java index c22ea93..19cadfe 100644 --- a/frysk-core/frysk/proc/live/TestRegs.java +++ b/frysk-core/frysk/proc/live/TestRegs.java @@ -41,7 +41,6 @@ package frysk.proc.live; import frysk.isa.Register; import frysk.testbed.RegsCase; -import frysk.isa.ISA; /** * Check all register values. @@ -57,13 +56,4 @@ public class TestRegs extends RegsCase { public long getRegister(Object task, Register register) { return task().getRegister(register); } - - // XXX: Delete this once the unresolved cases are fixed. - public void testFloatRegisters() { - if (isa() == ISA.IA32 && unresolved(4911)) - return; - if (isa() == ISA.X8664 && unresolved(5195)) - return; - super.testFloatRegisters(); - } } diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index f3ebfc6..8d5b4fb 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,5 +1,8 @@ 2007-12-03 Andrew Cagney + * RegsCase.java (IA32, X8664): Update X87's FSW, FOP, EIP, CS, DS, + DP, RIP, and RDP. + * TestRegs.java (checkRegisterGroupPresent(String)): New. (testVectorRegistersPresent()): Use. (testFloatRegistersPresent()): Use. diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 76208c0..ad034a3 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -335,20 +335,20 @@ public abstract class RegsCase extends TestLib { // floating-point registers .put(X87Registers.FCW, // 0x1e71 new byte[] { 0x71,0x1e }) - .put(X87Registers.FSW, // 0x47e4 - new byte[] { (byte)0xe4,0x47 }) + .put(X87Registers.FSW, // 0xc7e4 + new byte[] { (byte)0xe4,(byte)0xc7 }) .put(X87Registers.FTW, // 0xc9 new byte[] { (byte)0xc9 }) - .put(X87Registers.FOP, // 0x1e8f - new byte[] { (byte)0x8f,0x1e }) - .put(X87Registers.EIP, // 0x2fc38c68 - new byte[] { 0x68,(byte)0x8c,(byte)0xc3,0x2f }) - .put(X87Registers.CS, // 0x7ac9 - new byte[] { (byte)0xc9,0x7a }) - .put(X87Registers.DP, // 0x6d77e6d5 - new byte[] { (byte)0xd5,(byte)0xe6,0x77,0x6d }) - .put(X87Registers.DS, // 0x2a9f - new byte[] { (byte)0x9f,0x2a }) + .put(X87Registers.FOP, // 0x068f + new byte[] { (byte)0x8f,0x06 }) + .put(X87Registers.EIP, // 0x79d5eeff + new byte[] { (byte)0xff,(byte)0xee,(byte)0xd5,(byte)0x79 }) + .put(X87Registers.CS, // Can't reliably access CS + 0, 0) + .put(X87Registers.DP, // 0xd0acd7b0 + new byte[] { (byte)0xb0,(byte)0xd7,(byte)0xac,(byte)0xd0 }) + .put(X87Registers.DS, // Can't reliably access CS + 0, 0) .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, 0x77,(byte)0xdc,(byte)0x89,0x72, @@ -477,18 +477,16 @@ public abstract class RegsCase extends TestLib { // floating-point registers .put(X87Registers.FCW, // 0x1e71 new byte[] { 0x71,0x1e }) - .put(X87Registers.FSW, // 0x47e4 - new byte[] { (byte)0xe4,0x47 }) + .put(X87Registers.FSW, // 0xc7e4 + new byte[] { (byte)0xe4,(byte)0xc7 }) .put(X87Registers.FTW, // 0xc9 new byte[] { (byte)0xc9 }) - .put(X87Registers.FOP, // 0x1e8f - new byte[] { (byte)0x8f,0x1e }) - .put(X87Registers.RIP, // 0x99af236679d5eeff - new byte[] { (byte)0xff,(byte)0xee,(byte)0xd5,0x79, - 0x66,0x23,(byte)0xaf,(byte)0x99 }) - .put(X87Registers.RDP, // 0x6988a565d0acd7b0 - new byte[] { (byte)0xb0,(byte)0xd7,(byte)0xac,(byte)0xd0, - 0x65,(byte)0xa5,(byte)0x88,0x69 }) + .put(X87Registers.FOP, // 0x068f + new byte[] { (byte)0x8f,0x06 }) + .put(X87Registers.RIP, // 48-bit + 0x0000236679d5eeffL, 0) + .put(X87Registers.RDP, // 48-bit + 0x00007565d0acd7b0L, 0) .put(X87Registers.ST0, // 0xa7367289dc779dba0bd9 new byte[] { (byte)0xd9,0xb,(byte)0xba,(byte)0x9d, 0x77,(byte)0xdc,(byte)0x89,0x72, hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 23:21:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 23:21:00 -0000 Subject: [SCM] master: Delete unused BankRegister.putFIXME method. Message-ID: <20071203232111.30937.qmail@sourceware.org> The branch, master has been updated via e54b08323e3adc46f40ab8efc2618f7b2da44897 (commit) from 839772cd0edce393775a7a622599f3bb4a52ed42 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e54b08323e3adc46f40ab8efc2618f7b2da44897 Author: Andrew Cagney Date: Mon Dec 3 18:20:03 2007 -0500 Delete unused BankRegister.putFIXME method. frysk-core/frysk/proc/ChangeLog 2007-12-03 Andrew Cagney * BankRegister.java (putFIXME(Task,long)): Delete. * IndirectBankRegisterMap.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/BankRegister.java | 26 -------------------- frysk-core/frysk/proc/ChangeLog | 5 ++++ frysk-core/frysk/proc/IndirectBankRegisterMap.java | 2 - 3 files changed, 5 insertions(+), 28 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/BankRegister.java b/frysk-core/frysk/proc/BankRegister.java index 06956f4..26f134c 100644 --- a/frysk-core/frysk/proc/BankRegister.java +++ b/frysk-core/frysk/proc/BankRegister.java @@ -116,32 +116,6 @@ public class BankRegister { } /** - * Write a register value. - * - * @param task task in which to write the register - * @param val the value - */ - void putFIXME(frysk.proc.Task task, long val) { - ByteBuffer b = task.getRegisterBuffersFIXME()[bank]; - - if (length == 4) { - b.putUInt(offset, val); - } else if (length == 8) { - b.putULong(offset, val); - } else if (b.order() == ByteOrder.LITTLE_ENDIAN) { - for (int i = offset; i < offset + length; i++) { - b.putByte(i, (byte)(val & 0xff)); - val = val >> 8; - } - } else { - for (int i = offset + length - 1; i >= offset; i--) { - b.putByte(i, (byte)(val & 0xff)); - val = val >> 8; - } - } - } - - /** * Get the name of the register. * * @return the name diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 3af41c8..64439da 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * BankRegister.java (putFIXME(Task,long)): Delete. + * IndirectBankRegisterMap.java: Update. + 2007-11-29 Andrew Cagney * TestRegs.java: Move to frysk.proc.live.TestRegs. diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/proc/IndirectBankRegisterMap.java index 5547258..4c38124 100644 --- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/proc/IndirectBankRegisterMap.java @@ -125,8 +125,6 @@ class IndirectBankRegisterMap extends BankRegisterMap { public long getFIXME(Task task) { return longVal; } - public void putFIXME(Task task, long val) { - } }); return this; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 3 23:32:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 03 Dec 2007 23:32:00 -0000 Subject: [SCM] master: Add .jar-s instead of source directories to compile path. Message-ID: <20071203233232.6271.qmail@sourceware.org> The branch, master has been updated via 78344c59350f0a1b825086acdd677ca6eee6c9bd (commit) from e54b08323e3adc46f40ab8efc2618f7b2da44897 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 78344c59350f0a1b825086acdd677ca6eee6c9bd Author: Andrew Cagney Date: Mon Dec 3 18:29:15 2007 -0500 Add .jar-s instead of source directories to compile path. frysk-core/ChangeLog 2007-12-03 Andrew Cagney * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar. (GEN_SOURCEPATH): Delete frysk-sys/. frysk-gtk/ChangeLog 2007-12-03 Andrew Cagney * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar. (GEN_SOURCEPATH): Remove frysk-sys/. frysk-gui/ChangeLog 2007-12-03 Andrew Cagney * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar, frysk-core.jar, and frysk-gtk.jar. (GEN_SOURCEPATH): Remove frysk-sys/, frysk-core/, and frysk-gtk/. ----------------------------------------------------------------------- Summary of changes: frysk-core/ChangeLog | 5 +++++ frysk-core/Makefile.am | 3 +-- frysk-gtk/ChangeLog | 5 +++++ frysk-gtk/Makefile.am | 3 +-- frysk-gui/ChangeLog | 6 ++++++ frysk-gui/Makefile.am | 7 +++---- 6 files changed, 21 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/ChangeLog b/frysk-core/ChangeLog index 4f38c20..b98593d 100644 --- a/frysk-core/ChangeLog +++ b/frysk-core/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar. + (GEN_SOURCEPATH): Delete frysk-sys/. + 2007-12-03 Stan Cox * Makefile.am (TestTypeEntry.java): Fix dependency. diff --git a/frysk-core/Makefile.am b/frysk-core/Makefile.am index 1c22d15..903595c 100644 --- a/frysk-core/Makefile.am +++ b/frysk-core/Makefile.am @@ -41,8 +41,7 @@ include common/Makefile.rules include Makefile.gen -GEN_SOURCEPATH += ../frysk-sys/ -GEN_SOURCEPATH += $(top_srcdir)/../frysk-sys/ +GEN_CLASSPATH += ../frysk-sys/frysk-sys.jar GEN_CLASSPATH += ../frysk-imports/jline.jar GEN_CLASSPATH += ../frysk-imports/antlr.jar GEN_CLASSPATH += ../frysk-imports/junit.jar diff --git a/frysk-gtk/ChangeLog b/frysk-gtk/ChangeLog index 5da0eaf..42ae527 100644 --- a/frysk-gtk/ChangeLog +++ b/frysk-gtk/ChangeLog @@ -1,3 +1,8 @@ +2007-12-03 Andrew Cagney + + * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar. + (GEN_SOURCEPATH): Remove frysk-sys/. + 2007-11-26 Andrew Cagney * bootstrap.sh: Pass --jni to Makefile.gen.sh. diff --git a/frysk-gtk/Makefile.am b/frysk-gtk/Makefile.am index 176dcd6..305a1d7 100644 --- a/frysk-gtk/Makefile.am +++ b/frysk-gtk/Makefile.am @@ -42,8 +42,7 @@ include Makefile.gen SUBDIRS = tlwidgets tests -GEN_SOURCEPATH += ../frysk-sys/ $(top_srcdir)/../frysk-sys/ - +GEN_CLASSPATH += ../frysk-sys/frysk-sys.jar GEN_CLASSPATH += ../frysk-imports/junit.jar GEN_CLASSPATH += ../frysk-imports/getopt.jar GEN_CLASSPATH += $(FRYSK_GTK_JARS) diff --git a/frysk-gui/ChangeLog b/frysk-gui/ChangeLog index 8461575..cb1dec3 100644 --- a/frysk-gui/ChangeLog +++ b/frysk-gui/ChangeLog @@ -1,3 +1,9 @@ +2007-12-03 Andrew Cagney + + * Makefile.am (GEN_CLASSPATH): Add frysk-sys.jar, frysk-core.jar, + and frysk-gtk.jar. + (GEN_SOURCEPATH): Remove frysk-sys/, frysk-core/, and frysk-gtk/. + 2007-11-22 Andrew Cagney * configure.ac (GLADE_DTD_FILE): Conditionally set. diff --git a/frysk-gui/Makefile.am b/frysk-gui/Makefile.am index 3d2c7aa..ede5438 100644 --- a/frysk-gui/Makefile.am +++ b/frysk-gui/Makefile.am @@ -40,10 +40,9 @@ include common/Makefile.rules include Makefile.gen -GEN_SOURCEPATH += ../frysk-gtk/ $(top_srcdir)/../frysk-gtk/ -GEN_SOURCEPATH += ../frysk-core/ $(top_srcdir)/../frysk-core/ -GEN_SOURCEPATH += ../frysk-sys/ $(top_srcdir)/../frysk-sys/ - +GEN_CLASSPATH += ../frysk-gtk/frysk-gtk.jar +GEN_CLASSPATH += ../frysk-core/frysk-core.jar +GEN_CLASSPATH += ../frysk-sys/frysk-sys.jar GEN_CLASSPATH += ../frysk-imports/antlr.jar GEN_CLASSPATH += ../frysk-imports/jdom.jar GEN_CLASSPATH += ../frysk-imports/cdtparser.jar hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Tue Dec 4 00:47:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Tue, 04 Dec 2007 00:47:00 -0000 Subject: [SCM] master: Emit one test per variable. Message-ID: <20071204004717.621.qmail@sourceware.org> The branch, master has been updated via 95a13e25dd80d0d529c9ecaedd1c51e506402fb7 (commit) from 78344c59350f0a1b825086acdd677ca6eee6c9bd (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 95a13e25dd80d0d529c9ecaedd1c51e506402fb7 Author: Stan Cox Date: Mon Dec 3 19:33:19 2007 -0500 Emit one test per variable. * gen-type-expect-tests.py (main): Emit one test per variable. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 +++ .../frysk/debuginfo/gen-type-expect-tests.py | 23 ++++++------------- frysk-core/frysk/pkglibdir/ChangeLog | 4 +++ frysk-core/frysk/pkglibdir/gen-type-funit-tests.py | 10 -------- 4 files changed, 15 insertions(+), 26 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 1a6cbe0..ad2fdc3 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Stan Cox + + * gen-type-expect-tests.py (main): Emit one test per variable. + 2007-12-02 Stan Cox * TestTypeEntryType.java-sh: Delete. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 3bfa97d..73aaa1f 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -141,11 +141,9 @@ public class %s extends TestLib { ''') def start_test(self, executable, name): - print(" public void test%s () {" % (name)) + print(" public void test_%s () {" % (name)) tokens = os.path.abspath(executable).split(".") - print(''' - TypeTestbed typeTestbed = new TypeTestbed("%s", "test%s"); -''' % (os.path.basename(tokens[0]), name)) + print(' TypeTestbed typeTestbed = new TypeTestbed("%s", "test%s");' % (os.path.basename(tokens[0]), name)) def add_test(self, name, type, etype, decl, value): name = name.rstrip() @@ -208,7 +206,6 @@ j_file.open() j_file.prologue() -test = "Types" name = type = etype = value = "" while (True): line = d_file.readline() @@ -220,22 +217,17 @@ while (True): # Output collected test info if (line[0:2] != "//"): if (name != ""): - if (test == "Types"): - j_file.start_test(filename, test) + filename = sys.argv[current_file] + j_file.start_test(filename, name) j_file.add_test(name, type, type, type, value) + j_file.end_test() name = type = etype = value = "" continue tokens = line.split() try: # Collect test info - if (tokens[1] == "Test:"): - if (test != "Types"): - j_file.end_test() - filename = sys.argv[current_file] - test = line[line.find(tokens[1]) + len(tokens[1]) + 1:].rstrip() - j_file.start_test(filename, test) - elif (tokens[1] == "Name:"): - name = name + line[line.find(tokens[1]) + len(tokens[1]) + 1:] + if (tokens[1] == "Name:"): + name = line[line.find(tokens[1]) + len(tokens[1]) + 1:].rstrip() elif (tokens[1] == "Type:"): type = type + line[line.find(tokens[1]) + len(tokens[1]) + 1:] elif (tokens[1] == "EType:"): @@ -245,5 +237,4 @@ while (True): except IndexError: True -j_file.end_test() j_file.epilogue() diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index e8b9b2d..856de0f 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-03 Stan Cox + + * gen-type-expect-tests.py (main): Emit one test per variable. + 2007-12-03 Andrew Cagney * funit-regs.S (fxregs) [__i386__ || __x86_64__]: Provide initial diff --git a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py index 4145923..1597c5e 100644 --- a/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py +++ b/frysk-core/frysk/pkglibdir/gen-type-funit-tests.py @@ -86,11 +86,8 @@ for m in type_modifiers: tm = tm.rstrip() te = te.lstrip() tms = tm.rstrip().replace(" ","_") -c_file.write("// Scalar ########################################\n") -c_file.write("// Test: Scalar\n") for t in base_types: try: - c_file.write("// %s\n" % t); ts = t.replace(" ","_") min = limits[t]['min'] max = limits[t]['max'] @@ -113,10 +110,7 @@ for t in base_types: except KeyError: continue -c_file.write("// Array ########################################\n") -c_file.write("// Test: Array\n") for t in base_types: - c_file.write("// array of %s\n" % (t)) ts = t.replace(" ","_") min = limits[t]['min'] max = limits[t]['max'] @@ -270,8 +264,6 @@ c_file.add("struct {\n int int_var;\n} (*", "ptr_arr_struct", "", ")[2]") c_file.add("union {\n int int_var;\n} (*", "ptr_arr_union", "", ")[2]") c_file.add("int * (*", "ptr_arr_ptr", "", ")[2]") -c_file.write("// Struct ########################################\n") -c_file.write("// Test: Struct\n") c_file.write('''typedef struct { char char_var; short short_var; @@ -702,8 +694,6 @@ c_file.add('''union { int int_var; } * *''', "ptr_ptr_union", "") -c_file.write("// Enum ########################################\n") -c_file.write("// Test: Enum\n") c_file.add('''enum {\n red = 0,\n green = 1,\n blue = 2\n}''', "primary_colors", "red") c_file.add('''enum colors {\n orange = 0,\n yellow = 1,\n violet = 2,\n indigo = 3\n}''', "rainbow_colors", "orange") c_file.add('''enum {\n chevy = 0,\n dodge = 44,\n ford = 55\n}''', "usa_cars", "chevy") hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Tue Dec 4 11:01:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Tue, 04 Dec 2007 11:01:00 -0000 Subject: [SCM] master: Updating register group names. Message-ID: <20071204110100.9581.qmail@sourceware.org> The branch, master has been updated via 40c62026e142f407e00ae74d15e06f3ca42827b8 (commit) from 95a13e25dd80d0d529c9ecaedd1c51e506402fb7 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 40c62026e142f407e00ae74d15e06f3ca42827b8 Author: Jose Flavio Aguilar Paulino Date: Tue Dec 4 08:45:03 2007 -0200 Updating register group names. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 9 +++++++++ frysk-core/frysk/isa/ISA.java | 8 ++++---- frysk-core/frysk/isa/PPC32Registers.java | 4 ++-- frysk-core/frysk/isa/PPC64Registers.java | 4 ++-- 4 files changed, 17 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 91b7765..7377c5e 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,12 @@ +2007-12-04 Jose Flavio Aguilar Paulino + + * ISA.java: Updating a comment. + + * PPC32Registers.java: Updating register group names to be the same + as the IA and x86xx + + * PPC64Registers.java: The same as above. + 2007-12-03 Andrew Cagney * Registers.java (getFloatRegisterGroup()): Delete. diff --git a/frysk-core/frysk/isa/ISA.java b/frysk-core/frysk/isa/ISA.java index 865f14b..fca91a2 100644 --- a/frysk-core/frysk/isa/ISA.java +++ b/frysk-core/frysk/isa/ISA.java @@ -74,13 +74,13 @@ public final class ISA { /* * PowerPC is a Bi-Endian archtecture, it supports little and big - * endianness. But, usually (99.9%) it is used as a big endian, - * in truth in memory the data is stored always in big-endian format + * endianness. But, usually (99.9%) it is used as a big endian. + * (in truth in memory the data is always stored as big-endian) */ public static final ISA PPC32BE - = new ISA(ByteOrder.BIG_ENDIAN, 4, "PowerPC"); + = new ISA(ByteOrder.BIG_ENDIAN, 4, "PowerPC32BE"); public static final ISA PPC64BE - = new ISA(ByteOrder.BIG_ENDIAN, 8, "PowerPC"); + = new ISA(ByteOrder.BIG_ENDIAN, 8, "PowerPC64BE"); public static final ISA IA32 = new ISA(ByteOrder.LITTLE_ENDIAN, 4, "IA32"); diff --git a/frysk-core/frysk/isa/PPC32Registers.java b/frysk-core/frysk/isa/PPC32Registers.java index 2226ec8..259e85d 100644 --- a/frysk-core/frysk/isa/PPC32Registers.java +++ b/frysk-core/frysk/isa/PPC32Registers.java @@ -249,7 +249,7 @@ public class PPC32Registers extends Registers { * Defining Register Groups */ public static final RegisterGroup GENERAL - = new RegisterGroup("general", + = new RegisterGroup("regs", new Register[] { GPR0 , GPR1 , GPR2 , GPR3 , GPR4 , GPR5 , GPR6 , GPR7 , GPR8 , GPR9 , GPR10, GPR11, GPR12, GPR13, GPR14, GPR15, GPR16, GPR17, GPR18, GPR19, @@ -263,7 +263,7 @@ public class PPC32Registers extends Registers { MQ, TRAP, DAR, DSISR, RESULT, FPSCR }); public static final RegisterGroup FLOATING_POINTER - = new RegisterGroup("floatingpointer", + = new RegisterGroup("float", new Register[] { FPR0 , FPR1 , FPR2 , FPR3 , FPR4 , FPR5 , FPR6 , FPR7 , FPR8 , FPR9 , FPR10, FPR11, FPR12, FPR13, FPR14, FPR15, FPR16, FPR17, FPR18, FPR19, diff --git a/frysk-core/frysk/isa/PPC64Registers.java b/frysk-core/frysk/isa/PPC64Registers.java index ae2efff..92ed282 100644 --- a/frysk-core/frysk/isa/PPC64Registers.java +++ b/frysk-core/frysk/isa/PPC64Registers.java @@ -269,7 +269,7 @@ public class PPC64Registers extends Registers { * Defining Register Groups */ public static final RegisterGroup GENERAL - = new RegisterGroup("general", + = new RegisterGroup("regs", new Register[] { GPR0 , GPR1 , GPR2 , GPR3 , GPR4 , GPR5 , GPR6 , GPR7 , GPR8 , GPR9 , GPR10, GPR11, GPR12, GPR13, GPR14, GPR15, GPR16, GPR17, GPR18, GPR19, @@ -284,7 +284,7 @@ public class PPC64Registers extends Registers { FPSCR, VRSAVE, VSCR, SPEACC, SPEFSCR }); public static final RegisterGroup FLOATING_POINTER - = new RegisterGroup("floatingpointer", + = new RegisterGroup("float", new Register[] { FPR0 , FPR1 , FPR2 , FPR3 , FPR4 , FPR5 , FPR6 , FPR7 , FPR8 , FPR9 , FPR10, FPR11, FPR12, FPR13, FPR14, FPR15, FPR16, FPR17, FPR18, FPR19, hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Dec 4 15:24:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 04 Dec 2007 15:24:00 -0000 Subject: [SCM] master: Delete unused IndirectRegisterBank.add(String,long). Message-ID: <20071204152448.1073.qmail@sourceware.org> The branch, master has been updated via 0d40ae70b60b46ed1b8cb11dbcdc65c94d673c18 (commit) from 40c62026e142f407e00ae74d15e06f3ca42827b8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0d40ae70b60b46ed1b8cb11dbcdc65c94d673c18 Author: Andrew Cagney Date: Tue Dec 4 10:24:44 2007 -0500 Delete unused IndirectRegisterBank.add(String,long). frysk-core/frysk/proc/ChangeLog 2007-12-04 Andrew Cagney * IndirectBankRegisterMap.java (add(String,long)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 ++++ frysk-core/frysk/proc/IndirectBankRegisterMap.java | 13 ------------- 2 files changed, 4 insertions(+), 13 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 64439da..df758dc 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2007-12-04 Andrew Cagney + + * IndirectBankRegisterMap.java (add(String,long)): Delete. + 2007-12-03 Andrew Cagney * BankRegister.java (putFIXME(Task,long)): Delete. diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/proc/IndirectBankRegisterMap.java index 4c38124..1f8a683 100644 --- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/proc/IndirectBankRegisterMap.java @@ -115,17 +115,4 @@ class IndirectBankRegisterMap extends BankRegisterMap { IndirectBankRegisterMap add(String name) { return add(name, name); } - - IndirectBankRegisterMap add(String name, final long value) { - BankRegister reg32 = map32.get(name); - if (reg32 == null) - throw new RuntimeException("unknown register: " + name); - add(new BankRegister(0, 0, reg32.getLength(), name) { - private final long longVal = value; - public long getFIXME(Task task) { - return longVal; - } - }); - return this; - } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Dec 4 16:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 04 Dec 2007 16:56:00 -0000 Subject: [SCM] master: Eliminate a getFIXME call (Split LinuxPowerPCSyscall into 32-bit and 64-bit). Message-ID: <20071204165606.10732.qmail@sourceware.org> The branch, master has been updated via 0117109d888c8dc04b868549766f00255b5f94c5 (commit) from 0d40ae70b60b46ed1b8cb11dbcdc65c94d673c18 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0117109d888c8dc04b868549766f00255b5f94c5 Author: Andrew Cagney Date: Tue Dec 4 11:55:48 2007 -0500 Eliminate a getFIXME call (Split LinuxPowerPCSyscall into 32-bit and 64-bit). frysk-core/frysk/proc/ChangeLog 2007-12-04 Andrew Cagney * LinuxPowerPCSyscall.java: Delete. * LinuxPPC32Syscall.java: New; based on LinuxPowerPCSyscall.java. * LinuxPPC64Syscall.java: New; based on LinuxPowerPCSyscall.java. * LinuxPPC64.java: Update. * LinuxPPC32On64.java: Update. * TestSyscallsWithAudit.java: Update. * TestIsa.java: Update. * IsaFactory.java: Update. * IsaPowerPC.java (getSyscallList()): Delete; move to sub classes. (getUnknownSyscalls()): Ditto. (sysCallByName(String)): Ditto. * LinuxPPC32.java: Rename LinuxPPC.java; update. * LinuxPPC64.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 14 + frysk-core/frysk/proc/IsaFactory.java | 23 +- frysk-core/frysk/proc/IsaPowerPC.java | 30 -- .../frysk/proc/{LinuxPPC.java => LinuxPPC32.java} | 48 ++- frysk-core/frysk/proc/LinuxPPC32On64.java | 13 +- frysk-core/frysk/proc/LinuxPPC32Syscall.java | 522 +++++++++++++++++++ frysk-core/frysk/proc/LinuxPPC64.java | 29 +- frysk-core/frysk/proc/LinuxPPC64Syscall.java | 528 ++++++++++++++++++++ frysk-core/frysk/proc/LinuxPowerPCSyscall.java | 522 ------------------- frysk-core/frysk/proc/TestIsa.java | 2 +- frysk-core/frysk/proc/TestSyscallsWithAudit.java | 9 +- 11 files changed, 1150 insertions(+), 590 deletions(-) rename frysk-core/frysk/proc/{LinuxPPC.java => LinuxPPC32.java} (73%) create mode 100644 frysk-core/frysk/proc/LinuxPPC32Syscall.java create mode 100644 frysk-core/frysk/proc/LinuxPPC64Syscall.java delete mode 100644 frysk-core/frysk/proc/LinuxPowerPCSyscall.java First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index df758dc..6dba826 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,19 @@ 2007-12-04 Andrew Cagney + * LinuxPowerPCSyscall.java: Delete. + * LinuxPPC32Syscall.java: New; based on LinuxPowerPCSyscall.java. + * LinuxPPC64Syscall.java: New; based on LinuxPowerPCSyscall.java. + * LinuxPPC64.java: Update. + * LinuxPPC32On64.java: Update. + * TestSyscallsWithAudit.java: Update. + * TestIsa.java: Update. + * IsaFactory.java: Update. + * IsaPowerPC.java (getSyscallList()): Delete; move to sub classes. + (getUnknownSyscalls()): Ditto. + (sysCallByName(String)): Ditto. + * LinuxPPC32.java: Rename LinuxPPC.java; update. + * LinuxPPC64.java: Update. + * IndirectBankRegisterMap.java (add(String,long)): Delete. 2007-12-03 Andrew Cagney diff --git a/frysk-core/frysk/proc/IsaFactory.java b/frysk-core/frysk/proc/IsaFactory.java index 1ec6e94..ec73600 100644 --- a/frysk-core/frysk/proc/IsaFactory.java +++ b/frysk-core/frysk/proc/IsaFactory.java @@ -85,7 +85,7 @@ public class IsaFactory else { isaHash.put(Integer.valueOf(ElfEMachine.EM_PPC), - LinuxPPC.isaSingleton()); + LinuxPPC32.isaSingleton()); } } @@ -152,17 +152,16 @@ public class IsaFactory // tries to be a bit clever. Clobber it here for two cases. // XXX: This needs to be made for elegant. Isa isa = null; - switch (machineType) - { - case ElfEMachine.EM_386: - isa = LinuxIa32.isaSingleton(); - break; - case ElfEMachine.EM_PPC: - isa = LinuxPPC.isaSingleton(); - break; - default: - isa = (Isa)isaHash.get(Integer.valueOf(machineType)); - } + switch (machineType) { + case ElfEMachine.EM_386: + isa = LinuxIa32.isaSingleton(); + break; + case ElfEMachine.EM_PPC: + isa = LinuxPPC32.isaSingleton(); + break; + default: + isa = (Isa)isaHash.get(Integer.valueOf(machineType)); + } return isa; } diff --git a/frysk-core/frysk/proc/IsaPowerPC.java b/frysk-core/frysk/proc/IsaPowerPC.java index a9f3998..46537bb 100644 --- a/frysk-core/frysk/proc/IsaPowerPC.java +++ b/frysk-core/frysk/proc/IsaPowerPC.java @@ -39,7 +39,6 @@ // exception. package frysk.proc; -import java.util.HashMap; import java.util.LinkedList; import java.util.List; import inua.eio.ByteBuffer; @@ -149,35 +148,6 @@ abstract class IsaPowerPC implements Isa { return false; } - public Syscall[] getSyscallList () - { - return LinuxPowerPCSyscall.syscallList; - } - - public HashMap getUnknownSyscalls () - { - return LinuxPowerPCSyscall.unknownSyscalls; - } - - public Syscall syscallByName (String name) - { - Syscall syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxPowerPCSyscall.syscallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxPowerPCSyscall.socketSubcallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxPowerPCSyscall.ipcSubcallList); - if (syscall != null) - return syscall; - - return null; - } - public ByteBuffer[] getRegisterBankBuffers(int pid) { ByteBuffer registers = new AddressSpaceByteBuffer(pid, AddressSpace.USR); diff --git a/frysk-core/frysk/proc/LinuxPPC.java b/frysk-core/frysk/proc/LinuxPPC32.java similarity index 73% rename from frysk-core/frysk/proc/LinuxPPC.java rename to frysk-core/frysk/proc/LinuxPPC32.java index 9c2a103..2a31ddb 100644 --- a/frysk-core/frysk/proc/LinuxPPC.java +++ b/frysk-core/frysk/proc/LinuxPPC32.java @@ -45,22 +45,20 @@ import java.util.logging.Level; import java.util.logging.Logger; import frysk.isa.PPC32Registers; -class LinuxPPC extends IsaPowerPC implements SyscallEventDecoder { +class LinuxPPC32 extends IsaPowerPC implements SyscallEventDecoder { - LinuxPPC() { + LinuxPPC32() { //In Power32 the PC will be in Link Register super(PPC32Registers.LR); } - private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); - private static LinuxPPC isa; - - static LinuxPPC isaSingleton () - { - if (isa == null) - isa = new LinuxPPC (); - return isa; - } + private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); + private static LinuxPPC32 isa; + static LinuxPPC32 isaSingleton () { + if (isa == null) + isa = new LinuxPPC32 (); + return isa; + } // This is used to keep track of syscalls whose number we do not // know. @@ -76,10 +74,36 @@ class LinuxPPC extends IsaPowerPC implements SyscallEventDecoder { } public Syscall getSyscall(Task task) { int number = this.number(task); - return LinuxPowerPCSyscall.syscallByNum (task, number); + return LinuxPPC32Syscall.syscallByNum (task, number); } }; return info; } + public Syscall[] getSyscallList () { + return LinuxPPC32Syscall.syscallList; + } + + public HashMap getUnknownSyscalls () { + return LinuxPPC32Syscall.unknownSyscalls; + } + + public Syscall syscallByName (String name) { + Syscall syscall; + + syscall = Syscall.iterateSyscallByName (name, LinuxPPC32Syscall.syscallList); + if (syscall != null) + return syscall; + + syscall = Syscall.iterateSyscallByName (name, LinuxPPC32Syscall.socketSubcallList); + if (syscall != null) + return syscall; + + syscall = Syscall.iterateSyscallByName (name, LinuxPPC32Syscall.ipcSubcallList); + if (syscall != null) + return syscall; + + return null; + } + } diff --git a/frysk-core/frysk/proc/LinuxPPC32On64.java b/frysk-core/frysk/proc/LinuxPPC32On64.java index 10513a2..7abd223 100644 --- a/frysk-core/frysk/proc/LinuxPPC32On64.java +++ b/frysk-core/frysk/proc/LinuxPPC32On64.java @@ -40,16 +40,15 @@ package frysk.proc; class LinuxPPC32On64 - extends LinuxPPC + extends LinuxPPC32 { private static LinuxPPC32On64 isa; - static LinuxPPC isaSingleton () - { - if (isa == null) - isa = new LinuxPPC32On64 (); - return isa; - } + static LinuxPPC32 isaSingleton () { + if (isa == null) + isa = new LinuxPPC32On64 (); + return isa; + } public BankRegister getRegisterByName(String name) { return PPCBankRegisters.PPC32BE_ON_PPC64BE.get(name); diff --git a/frysk-core/frysk/proc/LinuxPPC32Syscall.java b/frysk-core/frysk/proc/LinuxPPC32Syscall.java new file mode 100644 index 0000000..10eef01 --- /dev/null +++ b/frysk-core/frysk/proc/LinuxPPC32Syscall.java @@ -0,0 +1,522 @@ +// This file is part of the program FRYSK. +// +// Copyright 2006 IBM Corp. +// Copyright 2007 Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.proc; + +import java.util.HashMap; +import frysk.isa.PPC32Registers; + +/** + * 32-bit PowerPC system calls. + * + * XXX: There is much duplication between this and LinuxPPC64Syscall. + */ + +public class LinuxPPC32Syscall { + private static final int SOCKET_NUM = 102; + private static final int IPC_NUM = 117; + + // This is used to keep track of syscalls whose number we do not + // know. + static final HashMap unknownSyscalls = new HashMap(); + + static private class PowerPCSyscall extends Syscall { + PowerPCSyscall(String name, int number, int numArgs, + String argList, boolean noreturn) { + super(name, number, numArgs, argList, noreturn); + } + PowerPCSyscall(String name, int number, int numArgs, + String argList) { + super(name, number, numArgs, argList); + } + PowerPCSyscall(String name, int number, int numArgs) { + super(name, number, numArgs); + } + PowerPCSyscall(String name, int number) { + super(name, number); + } + PowerPCSyscall(int number) { + super(number); + } + + public long getArguments(Task task, int n) { + switch (n) { + case 0: + return task.getRegister(PPC32Registers.GPR0); + case 1: + return task.getRegister(PPC32Registers.ORIGR3); + case 2: + return task.getRegister(PPC32Registers.GPR4); + case 3: + return task.getRegister(PPC32Registers.GPR5); + case 4: + return task.getRegister(PPC32Registers.GPR6); + case 5: + return task.getRegister(PPC32Registers.GPR7); + case 6: + return task.getRegister(PPC32Registers.GPR8); + default: + throw new RuntimeException("unknown syscall arg"); + } + } + public long getReturnCode(Task task) { + int flag = (int) task.getRegister(PPC32Registers.CCR); + + if ((flag & 0x10000000) != 0) + return -task.getRegister(PPC32Registers.GPR3); + else + return task.getRegister(PPC32Registers.GPR3); + } + } + + static Syscall[] syscallList = { + new PowerPCSyscall(0), + new PowerPCSyscall("exit", 1, 1), + new PowerPCSyscall("fork", 2, 0, "i: "), + new PowerPCSyscall("read", 3, 3, "i:ibn "), + new PowerPCSyscall("write", 4, 3, "i:isn "), + new PowerPCSyscall("open", 5, 3, "i:siv "), + new PowerPCSyscall("close", 6, 1, "i:i "), + new PowerPCSyscall("waitpid", 7, 3, "i:ipi "), + new PowerPCSyscall("creat", 8, 2, "i:sv"), + new PowerPCSyscall("link", 9, 2, "i:ss "), + new PowerPCSyscall("unlink", 10, 1, "i:s "), + new PowerPCSyscall("execve", 11, 3, "i:ppp "), + new PowerPCSyscall("chdir", 12, 1, "i:s "), + new PowerPCSyscall("time", 13, 1, "i:P "), + new PowerPCSyscall("mknod", 14), + new PowerPCSyscall("chmod", 15, 2, "i:si "), + new PowerPCSyscall("lchown", 16, 3, "i:sii "), + new PowerPCSyscall("break", 17 ), + new PowerPCSyscall("oldstat", 18), + new PowerPCSyscall("lseek", 19, 3, "i:iii "), + new PowerPCSyscall("getpid", 20, 0, "i: "), + new PowerPCSyscall("mount", 21, 5, "i:sssip "), + new PowerPCSyscall("umount", 22, 1, "i:s "), + new PowerPCSyscall("setuid", 23, 1, "i:i "), + new PowerPCSyscall("getuid", 24, 0, "i: "), + new PowerPCSyscall("stime", 25, 1, "i:p "), + new PowerPCSyscall("ptrace", 26, 4, "i:iiii "), + new PowerPCSyscall("alarm", 27, 1, "i:i "), + new PowerPCSyscall("oldfstat", 28), + new PowerPCSyscall("pause", 29, 0, "i: "), + new PowerPCSyscall("utime", 30, 2, "i:sP "), + new PowerPCSyscall("stty", 31), + new PowerPCSyscall("gtty", 32), + new PowerPCSyscall("access", 33, 2, "i:si "), + new PowerPCSyscall("nice", 34, 1, "i:i "), + new PowerPCSyscall("ftime", 35, 1, "i:p "), + new PowerPCSyscall("sync", 36, 0, "i: "), + new PowerPCSyscall("kill", 37, 2, "i:ii "), + new PowerPCSyscall("rename", 38, 2, "i:ss "), + new PowerPCSyscall("mkdir", 39, 2, "i:si "), + new PowerPCSyscall("rmdir", 40, 1, "i:s "), + new PowerPCSyscall("dup", 41, 1, "i:i "), + new PowerPCSyscall("pipe", 42, 1, "i:f "), + new PowerPCSyscall("times", 43, 1, "i:p "), + new PowerPCSyscall("prof", 44), + new PowerPCSyscall("brk", 45, 1, "i:p "), + new PowerPCSyscall("setgid", 46, 1, "i:i "), + new PowerPCSyscall("getgid", 47, 0, "i: "), + new PowerPCSyscall("signal", 48, 2, "i:ii "), + new PowerPCSyscall("geteuid", 49, 0, "i: "), + new PowerPCSyscall("getegid", 50, 0, "i: "), + new PowerPCSyscall("acct", 51, 1, "i:S "), + new PowerPCSyscall("umount2", 52, 2, "i:si "), + new PowerPCSyscall("lock", 53), + new PowerPCSyscall("ioctl", 54, 3, "i:iiI "), + new PowerPCSyscall("fcntl", 55, 3, "i:iiF "), + new PowerPCSyscall("mpx", 56), + new PowerPCSyscall("setpgid", 57, 2, "i:ii "), + new PowerPCSyscall("ulimit", 58, 2, "i:ii "), + new PowerPCSyscall("oldolduname", 59), + new PowerPCSyscall("umask", 60, 1, "i:i "), + new PowerPCSyscall("chroot", 61, 1, "i:s "), + new PowerPCSyscall("ustat", 62, 2, "i:ip "), + new PowerPCSyscall("dup2", 63, 2, "i:ii "), + new PowerPCSyscall("getppid", 64, 0, "i: "), + new PowerPCSyscall("getpgrp", 65, 0, "i: "), + new PowerPCSyscall("setsid", 66, 0, "i: "), + new PowerPCSyscall("sigaction", 67, 3, "i:ipp "), + new PowerPCSyscall("sgetmask", 68), + new PowerPCSyscall("ssetmask", 69), + new PowerPCSyscall("setreuid", 70, 2, "i:ii "), + new PowerPCSyscall("setregid", 71, 2, "i:ii "), + new PowerPCSyscall("sigsuspend", 72, 1, "i:p "), + new PowerPCSyscall("sigpending", 73, 1, "i:p "), + new PowerPCSyscall("sethostname", 74, 2, "i:pi "), + new PowerPCSyscall("setrlimit", 75, 2, "i:ip "), + new PowerPCSyscall("getrlimit", 76, 2, "i:ip "), + new PowerPCSyscall("getrusage", 77, 2, "i:ip "), + new PowerPCSyscall("gettimeofday", 78, 2, "i:PP "), + new PowerPCSyscall("settimeofday", 79, 2, "i:PP "), + new PowerPCSyscall("getgroups", 80, 2, "i:ip "), + new PowerPCSyscall("setgroups", 81, 2, "i:ip "), + new PowerPCSyscall("select", 82, 5, "i:iPPPP "), + new PowerPCSyscall("symlink", 83, 2, "i:ss "), + new PowerPCSyscall("oldlstat", 84, 2, "i:pp "), + new PowerPCSyscall("readlink", 85, 3, "i:spi "), + new PowerPCSyscall("uselib", 86, 1, "i:s "), + new PowerPCSyscall("swapon", 87, 2, "i:si "), + new PowerPCSyscall("reboot", 88, 1, "i:i "), + new PowerPCSyscall("readdir", 89), + new PowerPCSyscall("mmap", 90, 6, "b:aniiii "), + new PowerPCSyscall("munmap", 91, 2, "i:ai "), + new PowerPCSyscall("truncate", 92, 2, "i:si "), + new PowerPCSyscall("ftruncate", 93, 2, "i:ii "), + new PowerPCSyscall("fchmod", 94, 2, "i:ii "), + new PowerPCSyscall("fchown", 95, 3, "i:iii "), + new PowerPCSyscall("getpriority", 96, 2, "i:ii "), + new PowerPCSyscall("setpriority", 97, 3, "i:iii "), + new PowerPCSyscall("profil", 98, 4, "i:piii "), + new PowerPCSyscall("statfs", 99, 2, "i:sp "), + new PowerPCSyscall("fstatfs", 100, 2, "i:ip "), + new PowerPCSyscall("ioperm", 101, 3, "i:iii "), + new PowerPCSyscall("socketcall", 102, 2, "i:ip "), + new PowerPCSyscall("syslog", 103), + new PowerPCSyscall("setitimer", 104, 3, "i:ipp "), + new PowerPCSyscall("getitimer", 105, 2, "i:ip "), + new PowerPCSyscall("stat", 106), + new PowerPCSyscall("lstat", 107), + new PowerPCSyscall("fstat", 108), + new PowerPCSyscall("olduname", 109), + new PowerPCSyscall("iopl", 110, 1, "i:i "), + new PowerPCSyscall("vhangup", 111, 1, "i:i "), + new PowerPCSyscall("idle", 112, 0, "i: "), + new PowerPCSyscall("vm86", 113, 1, "i:p "), + new PowerPCSyscall("wait4", 114, 4, "i:iWiP "), + new PowerPCSyscall("swapoff", 115, 1, "i:s "), + new PowerPCSyscall("sysinfo", 116, 1, "i:p "), + new PowerPCSyscall("ipc", 117, 6, "i:iiiipi "), + new PowerPCSyscall("fsync", 118, 1, "i:i "), + new PowerPCSyscall("sigreturn", 119), + new PowerPCSyscall("clone", 120, 2, "i:ip "), + new PowerPCSyscall("setdomainname", 121), + new PowerPCSyscall("uname", 122, 1, "i:p "), + new PowerPCSyscall("modify_ldt", 123, 3, "i:ipi "), + new PowerPCSyscall("adjtimex", 124, 1, "i:p "), + new PowerPCSyscall("mprotect", 125, 3, "i:aii "), + new PowerPCSyscall("sigprocmask", 126, 3, "i:ipp "), + new PowerPCSyscall("create_module", 127, 3), + new PowerPCSyscall("init_module", 128, 5), + new PowerPCSyscall("delete_module", 129, 3), + new PowerPCSyscall("get_kernel_syms", 130, 1, "i:p "), + new PowerPCSyscall("quotactl", 131, 4, "i:isip "), + new PowerPCSyscall("getpgid", 132, 1, "i:i "), + new PowerPCSyscall("fchdir", 133, 1, "i:i "), + new PowerPCSyscall("bdflush", 134, 2, "i:ii "), + new PowerPCSyscall("sysfs", 135, 1, "i:i "), + new PowerPCSyscall("personality", 136, 1, "i:i "), + new PowerPCSyscall("afs_syscall", 137), + new PowerPCSyscall("setfsuid", 138, 1, "i:i "), + new PowerPCSyscall("setfsgid", 139, 1, "i:i "), + new PowerPCSyscall("_llseek", 140), + new PowerPCSyscall("getdents", 141), + new PowerPCSyscall("_newselect", 142), + new PowerPCSyscall("flock", 143, 2, "i:ii "), + new PowerPCSyscall("msync", 144, 3, "i:aii "), + new PowerPCSyscall("readv", 145, 3, "i:ipi "), + new PowerPCSyscall("writev", 146, 3, "i:ipi "), + new PowerPCSyscall("getsid", 147, 1, "i:i "), + new PowerPCSyscall("fdatasync", 148, 1, "i:i "), + new PowerPCSyscall("_sysctl", 149), + new PowerPCSyscall("mlock", 150, 2, "i:bn "), + new PowerPCSyscall("munlock", 151, 2, "i:ai "), + new PowerPCSyscall("mlockall", 152, 1, "i:i "), + new PowerPCSyscall("munlockall", 153, 0, "i: "), + new PowerPCSyscall("sched_setparam", 154), + new PowerPCSyscall("sched_getparam", 155), + new PowerPCSyscall("sched_setscheduler", 156), + new PowerPCSyscall("sched_getscheduler", 157), + new PowerPCSyscall("sched_yield", 158, 0, "i: "), + new PowerPCSyscall("sched_get_priority_max", 159), + new PowerPCSyscall("sched_get_priority_min", 160), + new PowerPCSyscall("sched_rr_get_interval", 161), + new PowerPCSyscall("nanosleep", 162, 2, "i:pp "), + new PowerPCSyscall("mremap", 163, 4, "b:aini "), + new PowerPCSyscall("setresuid", 164, 3, "i:iii "), + new PowerPCSyscall("getresuid", 165, 3, "i:ppp "), + new PowerPCSyscall("query_module", 166, 5, "i:sipip "), + new PowerPCSyscall("poll", 167, 3, "i:pii "), hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Dec 4 17:21:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 04 Dec 2007 17:21:00 -0000 Subject: [SCM] master: Delete unused BankRegister.reverseArray(byte[]). Message-ID: <20071204172155.27013.qmail@sourceware.org> The branch, master has been updated via 3ae096b75d439f4393d54301b710e59db13c0670 (commit) via 6e5772a738ca302a116c7ec1d483c938914307e4 (commit) from 0117109d888c8dc04b868549766f00255b5f94c5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3ae096b75d439f4393d54301b710e59db13c0670 Author: Andrew Cagney Date: Tue Dec 4 12:21:28 2007 -0500 Delete unused BankRegister.reverseArray(byte[]). frysk-core/frysk/proc/ChangeLog 2007-12-04 Andrew Cagney * BankRegister.java (reverseArray(byte[])): Delete. commit 6e5772a738ca302a116c7ec1d483c938914307e4 Author: Andrew Cagney Date: Tue Dec 4 12:00:59 2007 -0500 Delete unused BankRegister.getFIXME(Task). frysk-core/frysk/proc/ChangeLog 2007-12-04 Andrew Cagney * BankRegister.java (getFIXME(Task)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/BankRegister.java | 31 ------------------------------- frysk-core/frysk/proc/ChangeLog | 4 ++++ 2 files changed, 4 insertions(+), 31 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/BankRegister.java b/frysk-core/frysk/proc/BankRegister.java index 26f134c..41c8b30 100644 --- a/frysk-core/frysk/proc/BankRegister.java +++ b/frysk-core/frysk/proc/BankRegister.java @@ -39,8 +39,6 @@ package frysk.proc; -import inua.eio.ByteBuffer; -import inua.eio.ByteOrder; import frysk.isa.Register; /** @@ -53,16 +51,6 @@ public class BankRegister { private final String name; private final Register register; - // Does this really not exist somewhere else? - private static void reverseArray(byte[] array) { - for (int left = 0, right = array.length - 1; - left < right; left++, right--) { - byte temp = array[right]; - array[right] = array[left]; - array[left] = temp; - } - } - private BankRegister(int bank, int offset, int length, Register register, String name) { this.bank = bank; @@ -97,25 +85,6 @@ public class BankRegister { } /** - * Get the value of the register as a long. - * - * @param task the task object supplying the ByteBuffer for reading - * the register - * @return value of register - */ - long getFIXME(frysk.proc.Task task) { - ByteBuffer b = task.getRegisterBuffersFIXME()[bank]; - long val = 0; - byte[] bytes = new byte[length]; - b.get(offset, bytes, 0, length); - if (b.order() == ByteOrder.LITTLE_ENDIAN) - reverseArray(bytes); - for (int i = 0; i < length; i++) - val = val << 8 | (bytes[i] & 0xff); - return val; - } - - /** * Get the name of the register. * * @return the name diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 6dba826..d833fd9 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,9 @@ 2007-12-04 Andrew Cagney + * BankRegister.java (reverseArray(byte[])): Delete. + + * BankRegister.java (getFIXME(Task)): Delete. + * LinuxPowerPCSyscall.java: Delete. * LinuxPPC32Syscall.java: New; based on LinuxPowerPCSyscall.java. * LinuxPPC64Syscall.java: New; based on LinuxPowerPCSyscall.java. hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Tue Dec 4 17:45:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Tue, 04 Dec 2007 17:45:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071204174533.2766.qmail@sourceware.org> The branch, master has been updated via 74bf0b4382a473049c1e6807d58bf26435d6076d (commit) via 6329629fa73d626c5fffaab800f7fbb4a893f31c (commit) from 3ae096b75d439f4393d54301b710e59db13c0670 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 74bf0b4382a473049c1e6807d58bf26435d6076d Merge: 6329629fa73d626c5fffaab800f7fbb4a893f31c 3ae096b75d439f4393d54301b710e59db13c0670 Author: Jose Flavio Aguilar Paulino Date: Tue Dec 4 15:44:41 2007 -0200 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit 6329629fa73d626c5fffaab800f7fbb4a893f31c Author: Jose Flavio Aguilar Paulino Date: Tue Dec 4 13:19:34 2007 -0200 Adding PowerPC support for tests. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 + frysk-core/frysk/pkglibdir/funit-regs.S | 77 ++++++++++++ frysk-core/frysk/testbed/ChangeLog | 6 + frysk-core/frysk/testbed/FryskAsm.java | 21 ++++ frysk-core/frysk/testbed/RegsCase.java | 199 ++++++++++++++++++++++++++++++- 5 files changed, 303 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 856de0f..bef2604 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-04 Jose Flavio Aguilar Paulino + + * funit-regs.S: add support to PowerPC32/64 to this test. + 2007-12-03 Stan Cox * gen-type-expect-tests.py (main): Emit one test per variable. diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index 50749f6..6bc5edb 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007 Red Hat Inc. +// Copyright 2007 (C) IBM // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -86,6 +87,78 @@ mov $0x3f22bc816a35f02d, %r14 mov $0x46bf65d4d966290, %r15 +#elif defined __powerpc64__ + + LOAD_IMMED_WORD( 0, 0x0000000000000000) //This Reg is always Zero + LOAD_IMMED_WORD( 1, 0x514c159c25c27735) + LOAD_IMMED_WORD( 2, 0x674b6064cdf97685) + LOAD_IMMED_WORD( 3, 0x808ac01e8911f56c) + LOAD_IMMED_WORD( 4, 0xcf4362db3356a25a) + LOAD_IMMED_WORD( 5, 0xe356818815d30ae3) + LOAD_IMMED_WORD( 6, 0x34a847d84ac039eb) + LOAD_IMMED_WORD( 7, 0xa6c244ccfc672fd1) + LOAD_IMMED_WORD( 8, 0x4e857fa76fae4610) + LOAD_IMMED_WORD( 9, 0xfa6ecb942e56bdb1) + LOAD_IMMED_WORD(10, 0xce40dcae99e51340) + LOAD_IMMED_WORD(11, 0xd5e20897737372fa) + LOAD_IMMED_WORD(12, 0x44da7341c8169fcb) + LOAD_IMMED_WORD(13, 0xef908c0f5ceb230f) + LOAD_IMMED_WORD(14, 0xd6f64efaf644ba20) + LOAD_IMMED_WORD(15, 0xd5b5dd6910287bb3) + LOAD_IMMED_WORD(16, 0xce9381ebf6d51d50) + LOAD_IMMED_WORD(17, 0xb3d21c30af96757c) + LOAD_IMMED_WORD(18, 0x48ce58b2c1242f3) + LOAD_IMMED_WORD(19, 0x5031020316f4a712) + LOAD_IMMED_WORD(20, 0xe5a6446b480c1bcb) + LOAD_IMMED_WORD(21, 0x39d366cce0933e0c) + LOAD_IMMED_WORD(22, 0xf86103d6cd223af7) + LOAD_IMMED_WORD(23, 0xcab98ee45bb9a68f) + LOAD_IMMED_WORD(24, 0x34195aae274630f9) + LOAD_IMMED_WORD(25, 0xd1df3bfceb05da1a) + LOAD_IMMED_WORD(26, 0xe408d863626b040a) + LOAD_IMMED_WORD(27, 0xb847f6c562a62676) + LOAD_IMMED_WORD(28, 0x44508793aa174c36) + LOAD_IMMED_WORD(29, 0x3c21d5f786149c80) + LOAD_IMMED_WORD(30, 0x9871b47e31368590) + LOAD_IMMED_WORD(31, 0xd5a767e17d453bef) + +#elif defined __powerpc__ + + LOAD_IMMED_WORD( 0, 0x00000000) + LOAD_IMMED_WORD( 1, 0x25c27735) + LOAD_IMMED_WORD( 2, 0xcdf97685) + LOAD_IMMED_WORD( 3, 0x8911f56c) + LOAD_IMMED_WORD( 4, 0x3356a25a) + LOAD_IMMED_WORD( 5, 0x15d30ae3) + LOAD_IMMED_WORD( 6, 0x4ac039eb) + LOAD_IMMED_WORD( 7, 0xfc672fd1) + LOAD_IMMED_WORD( 8, 0x6fae4610) + LOAD_IMMED_WORD( 9, 0x2e56bdb1) + LOAD_IMMED_WORD(10, 0x99e51340) + LOAD_IMMED_WORD(11, 0x737372fa) + LOAD_IMMED_WORD(12, 0xc8169fcb) + LOAD_IMMED_WORD(13, 0x5ceb230f) + LOAD_IMMED_WORD(14, 0xf644ba20) + LOAD_IMMED_WORD(15, 0x10287bb3) + LOAD_IMMED_WORD(16, 0xf6d51d50) + LOAD_IMMED_WORD(17, 0xaf96757c) + LOAD_IMMED_WORD(18, 0x2c1242f3) + LOAD_IMMED_WORD(19, 0x16f4a712) + LOAD_IMMED_WORD(20, 0x480c1bcb) + LOAD_IMMED_WORD(21, 0xe0933e0c) + LOAD_IMMED_WORD(22, 0xcd223af7) + LOAD_IMMED_WORD(23, 0x5bb9a68f) + LOAD_IMMED_WORD(24, 0x274630f9) + LOAD_IMMED_WORD(25, 0xeb05da1a) + LOAD_IMMED_WORD(26, 0x626b040a) + LOAD_IMMED_WORD(27, 0x62a62676) + LOAD_IMMED_WORD(28, 0xaa174c36) + LOAD_IMMED_WORD(29, 0x86149c80) + LOAD_IMMED_WORD(30, 0x31368590) + LOAD_IMMED_WORD(31, 0x7d453bef) + +#else +#error Need to set values for the Register of this Arch #endif // Jumping to crash sets the instruction-pointer @@ -103,6 +176,10 @@ crash: mov 0, %eax #elif defined __x86_64__ mov 0, %rax +#elif defined __powerpc64__ + lis 0, 0@highest +#elif defined __powerpc__ + lis 0, 0@ha #else LOAD_IMMED_WORD(REG0, 0) STORE(REG0, REG0) diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 8d5b4fb..95bc308 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,9 @@ +2007-12-04 Jose Flavio Aguilar Paulino + + * FryskAsm.java: Add PowerPC32/64. + + * RegsCase.java: Put values to PowerPC64 registers. + 2007-12-03 Andrew Cagney * RegsCase.java (IA32, X8664): Update X87's FSW, FOP, EIP, CS, DS, diff --git a/frysk-core/frysk/testbed/FryskAsm.java b/frysk-core/frysk/testbed/FryskAsm.java index c3e546c..8d7a8ba 100644 --- a/frysk-core/frysk/testbed/FryskAsm.java +++ b/frysk-core/frysk/testbed/FryskAsm.java @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007, Red Hat Inc. +// Copyright 2007, (C) IBM // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -41,6 +42,8 @@ package frysk.testbed; import frysk.isa.Register; import frysk.isa.IA32Registers; +import frysk.isa.PPC32Registers; +import frysk.isa.PPC64Registers; import frysk.isa.X8664Registers; import frysk.isa.ISA; import frysk.isa.ISAMap; @@ -79,16 +82,34 @@ public class FryskAsm { IA32Registers.EBX, IA32Registers.ECX, IA32Registers.EDX); + public static final FryskAsm X8664 = new FryskAsm(X8664Registers.RIP, X8664Registers.RSP, X8664Registers.RAX, X8664Registers.RDI, X8664Registers.RSI, X8664Registers.RDX); + + public static final FryskAsm PPC32 = new FryskAsm(PPC32Registers.LR, + PPC32Registers.GPR1, + PPC32Registers.GPR0, + PPC32Registers.GPR3, + PPC32Registers.GPR4, + PPC32Registers.GPR5); + + public static final FryskAsm PPC64 = new FryskAsm(PPC64Registers.NIP, + PPC64Registers.GPR1, + PPC64Registers.GPR0, + PPC64Registers.GPR3, + PPC64Registers.GPR4, + PPC64Registers.GPR5); + private static final ISAMap isaToFryskAsm = new ISAMap("FryskAsm") .put(ISA.IA32, IA32) .put(ISA.X8664, X8664) + .put(ISA.PPC32BE, PPC32) + .put(ISA.PPC64BE, PPC64) ; public static FryskAsm createFryskAsm(ISA isa) { return (FryskAsm) isaToFryskAsm.get(isa); diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index ad034a3..af5fbac 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007, Red Hat Inc. +// Copyright 2007, (C) IBM // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -72,6 +73,7 @@ public abstract class RegsCase extends TestLib { private ByteOrder order; private ISA isa; private Registers registers; + /** * Set things up for testing against the specified task. * @@ -674,11 +676,200 @@ public abstract class RegsCase extends TestLib { ; private Values PPC64 = new Values() - .put(PPC64Registers.GPR0, // 0x837bb4e2d8209ca3 - new byte[] { (byte)0xa3,(byte)0x9c,0x20,(byte)0xd8, - (byte)0xe2,(byte)0xb4,0x7b,(byte)0x83 }) + //in PowerPC the GPR0 is always Zero + .put(PPC64Registers.GPR0, // 0x0000000000000000 + new byte[] { (byte)0x00, (byte)0x00,0x00, (byte)0x00, + (byte)0x00, 0x00,(byte)0x00,(byte)0x00 }) + .put(PPC64Registers.GPR1, // 0x514c159c25c27735 + new byte[] { 0x51,0x4c,0x15,(byte)0x9c, + 0x25,(byte)0xc2,0x77,0x35 }) + .put(PPC64Registers.GPR2, // 0x674b6064cdf97685 + new byte[] { 0x67,0x4b,0x60,0x64, + (byte)0xcd,(byte)0xf9,0x76,(byte)0x85 }) + .put(PPC64Registers.GPR3, // 0x808ac01e8911f56c + new byte[] { (byte)0x80,(byte)0x8a,(byte)0xc0,0x1e, + (byte)0x89,0x11,(byte)0xf5,0x6c }) + .put(PPC64Registers.GPR4, // 0xcf4362db3356a25a + new byte[] { (byte)0xcf,0x43,0x62,(byte)0xdb, + 0x33,0x56,(byte)0xa2,0x5a }) + .put(PPC64Registers.GPR5, // 0xe356818815d30ae3 + new byte[] { (byte)0xe3,0x56,(byte)0x81,(byte)0x88, + 0x15,(byte)0xd3,0xa,(byte)0xe3 }) + .put(PPC64Registers.GPR6, // 0x34a847d84ac039eb + new byte[] { 0x34,(byte)0xa8,0x47,(byte)0xd8, + 0x4a,(byte)0xc0,0x39,(byte)0xeb }) + .put(PPC64Registers.GPR7, // 0xa6c244ccfc672fd1 + new byte[] { (byte)0xa6,(byte)0xc2,0x44,(byte)0xcc, + (byte)0xfc,0x67,0x2f,(byte)0xd1 }) + .put(PPC64Registers.GPR8, // 0x4e857fa76fae4610 + new byte[] { 0x4e,(byte)0x85,0x7f,(byte)0xa7, + 0x6f,(byte)0xae,0x46,0x10 }) + .put(PPC64Registers.GPR9, // 0xfa6ecb942e56bdb1 + new byte[] { (byte)0xfa,0x6e,(byte)0xcb,(byte)0x94, + 0x2e,0x56,(byte)0xbd,(byte)0xb1 }) + .put(PPC64Registers.GPR10, // 0xce40dcae99e51340 + new byte[] { (byte)0xce,0x40,(byte)0xdc,(byte)0xae, + (byte)0x99,(byte)0xe5,0x13,0x40 }) + .put(PPC64Registers.GPR11, // 0xd5e20897737372fa + new byte[] { (byte)0xd5,(byte)0xe2,0x8,(byte)0x97, + 0x73,0x73,0x72,(byte)0xfa }) + .put(PPC64Registers.GPR12, // 0x44da7341c8169fcb + new byte[] { 0x44,(byte)0xda,0x73,0x41, + (byte)0xc8,0x16,(byte)0x9f,(byte)0xcb }) + .put(PPC64Registers.GPR13, // 0xef908c0f5ceb230f + new byte[] { (byte)0xef,(byte)0x90,(byte)0x8c,0xf, + 0x5c,(byte)0xeb,0x23,0xf }) + .put(PPC64Registers.GPR14, // 0xd6f64efaf644ba20 + new byte[] { (byte)0xd6,(byte)0xf6,0x4e,(byte)0xfa, + (byte)0xf6,0x44,(byte)0xba,0x20 }) + .put(PPC64Registers.GPR15, // 0xd5b5dd6910287bb3 + new byte[] { (byte)0xd5,(byte)0xb5,(byte)0xdd,0x69, + 0x10,0x28,0x7b,(byte)0xb3 }) + .put(PPC64Registers.GPR16, // 0xce9381ebf6d51d50 + new byte[] { (byte)0xce,(byte)0x93,(byte)0x81,(byte)0xeb, + (byte)0xf6,(byte)0xd5,0x1d,0x50 }) + .put(PPC64Registers.GPR17, // 0xb3d21c30af96757c + new byte[] { (byte)0xb3,(byte)0xd2,0x1c,0x30, + (byte)0xaf,(byte)0x96,0x75,0x7c }) + .put(PPC64Registers.GPR18, // 0x48ce58b2c1242f3 + new byte[] { 0x4,(byte)0x8c,(byte)0xe5,(byte)0x8b, + 0x2c,0x12,0x42,(byte)0xf3 }) + .put(PPC64Registers.GPR19, // 0x5031020316f4a712 + new byte[] { 0x50,0x31,0x2,0x3, + 0x16,(byte)0xf4,(byte)0xa7,0x12 }) + .put(PPC64Registers.GPR20, // 0xe5a6446b480c1bcb + new byte[] { (byte)0xe5,(byte)0xa6,0x44,0x6b, + 0x48,0xc,0x1b,(byte)0xcb }) + .put(PPC64Registers.GPR21, // 0x39d366cce0933e0c + new byte[] { 0x39,(byte)0xd3,0x66,(byte)0xcc, + (byte)0xe0,(byte)0x93,0x3e,0xc }) + .put(PPC64Registers.GPR22, // 0xf86103d6cd223af7 + new byte[] { (byte)0xf8,0x61,0x3,(byte)0xd6, + (byte)0xcd,0x22,0x3a,(byte)0xf7 }) + .put(PPC64Registers.GPR23, // 0xcab98ee45bb9a68f + new byte[] { (byte)0xca,(byte)0xb9,(byte)0x8e,(byte)0xe4, + 0x5b,(byte)0xb9,(byte)0xa6,(byte)0x8f }) + .put(PPC64Registers.GPR24, // 0x34195aae274630f9 + new byte[] { 0x34,0x19,0x5a,(byte)0xae, + 0x27,0x46,0x30,(byte)0xf9 }) + .put(PPC64Registers.GPR25, // 0xd1df3bfceb05da1a + new byte[] { (byte)0xd1,(byte)0xdf,0x3b,(byte)0xfc, + (byte)0xeb,0x5,(byte)0xda,0x1a }) + .put(PPC64Registers.GPR26, // 0xe408d863626b040a + new byte[] { (byte)0xe4,0x8,(byte)0xd8,0x63, + 0x62,0x6b,0x4,0xa }) + .put(PPC64Registers.GPR27, // 0xb847f6c562a62676 + new byte[] { (byte)0xb8,0x47,(byte)0xf6,(byte)0xc5, + 0x62,(byte)0xa6,0x26,0x76 }) + .put(PPC64Registers.GPR28, // 0x44508793aa174c36 + new byte[] { 0x44,0x50,(byte)0x87,(byte)0x93, + (byte)0xaa,0x17,0x4c,0x36 }) + .put(PPC64Registers.GPR29, // 0x3c21d5f786149c80 + new byte[] { 0x3c,0x21,(byte)0xd5,(byte)0xf7, + (byte)0x86,0x14,(byte)0x9c,(byte)0x80 }) + .put(PPC64Registers.GPR30, // 0x9871b47e31368590 + new byte[] { (byte)0x98,0x71,(byte)0xb4,0x7e, + 0x31,0x36,(byte)0x85,(byte)0x90 }) + .put(PPC64Registers.GPR31, // 0xd5a767e17d453bef + new byte[] { (byte)0xd5,(byte)0xa7,0x67,(byte)0xe1, + 0x7d,0x45,0x3b,(byte)0xef }) + .put(PPC64Registers.FPR0, // 0x75f98ca5ea9d4622 + new byte[] { 0x75,(byte)0xf9,(byte)0x8c,(byte)0xa5, + (byte)0xea,(byte)0x9d,0x46,0x22 }) + .put(PPC64Registers.FPR1, // 0x2053c189e7aa9ade + new byte[] { 0x20,0x53,(byte)0xc1,(byte)0x89, + (byte)0xe7,(byte)0xaa,(byte)0x9a,(byte)0xde }) + .put(PPC64Registers.FPR2, // 0x3df09c8307b6fc56 + new byte[] { 0x3d,(byte)0xf0,(byte)0x9c,(byte)0x83, + 0x7,(byte)0xb6,(byte)0xfc,0x56 }) + .put(PPC64Registers.FPR3, // 0xb3b95a2e6fbe9bf0 + new byte[] { (byte)0xb3,(byte)0xb9,0x5a,0x2e, + 0x6f,(byte)0xbe,(byte)0x9b,(byte)0xf0 }) + .put(PPC64Registers.FPR4, // 0x29c916902e8c7c07 + new byte[] { 0x29,(byte)0xc9,0x16,(byte)0x90, + 0x2e,(byte)0x8c,0x7c,0x7 }) + .put(PPC64Registers.FPR5, // 0xe74ecdc530dc7b77 + new byte[] { (byte)0xe7,0x4e,(byte)0xcd,(byte)0xc5, + 0x30,(byte)0xdc,0x7b,0x77 }) + .put(PPC64Registers.FPR6, // 0x90505e84187b206b + new byte[] { (byte)0x90,0x50,0x5e,(byte)0x84, + 0x18,0x7b,0x20,0x6b }) + .put(PPC64Registers.FPR7, // 0x6e5ac9b69dad5852 + new byte[] { 0x6e,0x5a,(byte)0xc9,(byte)0xb6, + (byte)0x9d,(byte)0xad,0x58,0x52 }) + .put(PPC64Registers.FPR8, // 0x20ed2a356201d3d1 + new byte[] { 0x20,(byte)0xed,0x2a,0x35, + 0x62,0x1,(byte)0xd3,(byte)0xd1 }) + .put(PPC64Registers.FPR9, // 0xec7ba6b6d82d2859 + new byte[] { (byte)0xec,0x7b,(byte)0xa6,(byte)0xb6, + (byte)0xd8,0x2d,0x28,0x59 }) + .put(PPC64Registers.FPR10, // 0x1908e830b54da771 + new byte[] { 0x19,0x8,(byte)0xe8,0x30, + (byte)0xb5,0x4d,(byte)0xa7,0x71 }) + .put(PPC64Registers.FPR11, // 0xba399d517cee2bb3 + new byte[] { (byte)0xba,0x39,(byte)0x9d,0x51, + 0x7c,(byte)0xee,0x2b,(byte)0xb3 }) + .put(PPC64Registers.FPR12, // 0x601c9bf3dac1541 + new byte[] { 0x6,0x1,(byte)0xc9,(byte)0xbf, + 0x3d,(byte)0xac,0x15,0x41 }) + .put(PPC64Registers.FPR13, // 0x42ef875526d26ac7 + new byte[] { 0x42,(byte)0xef,(byte)0x87,0x55, + 0x26,(byte)0xd2,0x6a,(byte)0xc7 }) + .put(PPC64Registers.FPR14, // 0x1dd06c1c9132b4cb + new byte[] { 0x1d,(byte)0xd0,0x6c,0x1c, + (byte)0x91,0x32,(byte)0xb4,(byte)0xcb }) + .put(PPC64Registers.FPR15, // 0xc9b957b3ef59adf5 + new byte[] { (byte)0xc9,(byte)0xb9,0x57,(byte)0xb3, + (byte)0xef,0x59,(byte)0xad,(byte)0xf5 }) + .put(PPC64Registers.FPR16, // 0xf3c555504f10ef96 + new byte[] { (byte)0xf3,(byte)0xc5,0x55,0x50, + 0x4f,0x10,(byte)0xef,(byte)0x96 }) + .put(PPC64Registers.FPR17, // 0x48480daa25666424 + new byte[] { 0x48,0x48,0xd,(byte)0xaa, + 0x25,0x66,0x64,0x24 }) + .put(PPC64Registers.FPR18, // 0x6008875d4a373061 + new byte[] { 0x60,0x8,(byte)0x87,0x5d, + 0x4a,0x37,0x30,0x61 }) + .put(PPC64Registers.FPR19, // 0xd11d698728ceab86 + new byte[] { (byte)0xd1,0x1d,0x69,(byte)0x87, + 0x28,(byte)0xce,(byte)0xab,(byte)0x86 }) + .put(PPC64Registers.FPR20, // 0x84d123c349f2468e + new byte[] { (byte)0x84,(byte)0xd1,0x23,(byte)0xc3, + 0x49,(byte)0xf2,0x46,(byte)0x8e }) + .put(PPC64Registers.FPR21, // 0xa45fc9517343163 + new byte[] { 0xa,0x45,(byte)0xfc,(byte)0x95, + 0x17,0x34,0x31,0x63 }) + .put(PPC64Registers.FPR22, // 0x19a621d6f7d8e7b9 + new byte[] { 0x19,(byte)0xa6,0x21,(byte)0xd6, + (byte)0xf7,(byte)0xd8,(byte)0xe7,(byte)0xb9 }) + .put(PPC64Registers.FPR23, // 0xd45b91ceda65de9e + new byte[] { (byte)0xd4,0x5b,(byte)0x91,(byte)0xce, + (byte)0xda,0x65,(byte)0xde,(byte)0x9e }) + .put(PPC64Registers.FPR24, // 0xb02e4044d6802506 + new byte[] { (byte)0xb0,0x2e,0x40,0x44, + (byte)0xd6,(byte)0x80,0x25,0x6 }) + .put(PPC64Registers.FPR25, // 0x427411aff7c4766 + new byte[] { 0x4,0x27,0x41,0x1a, + (byte)0xff,0x7c,0x47,0x66 }) + .put(PPC64Registers.FPR26, // 0x4f5b955b70217bf5 + new byte[] { 0x4f,0x5b,(byte)0x95,0x5b, + 0x70,0x21,0x7b,(byte)0xf5 }) + .put(PPC64Registers.FPR27, // 0xeddc0c73bb1e8699 + new byte[] { (byte)0xed,(byte)0xdc,0xc,0x73, + (byte)0xbb,0x1e,(byte)0x86,(byte)0x99 }) + .put(PPC64Registers.FPR28, // 0x472c0c5969c0af0a + new byte[] { 0x47,0x2c,0xc,0x59, + 0x69,(byte)0xc0,(byte)0xaf,0xa }) + .put(PPC64Registers.FPR29, // 0x19c66012a715212 + new byte[] { 0x1,(byte)0x9c,0x66,0x1, + 0x2a,0x71,0x52,0x12 }) + .put(PPC64Registers.FPR30, // 0xfaf368738bd3cec4 + new byte[] { (byte)0xfa,(byte)0xf3,0x68,0x73, + (byte)0x8b,(byte)0xd3,(byte)0xce,(byte)0xc4 }) + .put(PPC64Registers.FPR31, // 0x5ee6e7418fe61e98 + new byte[] { 0x5e,(byte)0xe6,(byte)0xe7,0x41, + (byte)0x8f,(byte)0xe6,0x1e,(byte)0x98 }) ; - private final ISAMap isaValues = new ISAMap("RegsCase") .put(ISA.IA32, IA32) .put(ISA.X8664, X8664) hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Tue Dec 4 18:11:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Tue, 04 Dec 2007 18:11:00 -0000 Subject: [SCM] master: Setting PPC32/64 as always-Zero registers for tests. Message-ID: <20071204181107.20949.qmail@sourceware.org> The branch, master has been updated via 7f585a43eb4eddf50707b5034a7881c5fad268b9 (commit) from 74bf0b4382a473049c1e6807d58bf26435d6076d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7f585a43eb4eddf50707b5034a7881c5fad268b9 Author: Jose Flavio Aguilar Paulino Date: Tue Dec 4 15:47:19 2007 -0200 Setting PPC32/64 as always-Zero registers for tests. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/testbed/ChangeLog | 3 ++- frysk-core/frysk/testbed/RegsCase.java | 11 +++++------ 2 files changed, 7 insertions(+), 7 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 95bc308..47fc145 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -2,7 +2,8 @@ * FryskAsm.java: Add PowerPC32/64. - * RegsCase.java: Put values to PowerPC64 registers. + * RegsCase.java: Put values to PowerPC64 registers. Set r0 from + PowerPC32 and 64 as Zero registers. 2007-12-03 Andrew Cagney diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index af5fbac..17b12fa 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -225,7 +225,8 @@ public abstract class RegsCase extends TestLib { RegsCase.assertEquals(register.getName() + " size", bytes.length, register.getType().getSize()); for (int i = 0; i < bytes.length; i++) { - RegsCase.assertTrue(register.getName() + "[" + i + "] != 0", + RegsCase.assertTrue(register.getName() + "[" + + i + "] != 0 (found " + bytes[i] + " there)", bytes[i] != 0); } } @@ -605,8 +606,8 @@ public abstract class RegsCase extends TestLib { ; private Values PPC32 = new Values() - .put(PPC32Registers.GPR0, - new byte[] { (byte)0xa3,(byte)0x9c,0x20,(byte)0x08 }) + //in PowerPC gpr0 is always Zero + .put(PPC32Registers.GPR0, 0, 0) .put(PPC32Registers.GPR1, new byte[] { (byte)0x3a,(byte)0x82,0x27,(byte)0xf1 }) .put(PPC32Registers.GPR2, @@ -677,9 +678,7 @@ public abstract class RegsCase extends TestLib { private Values PPC64 = new Values() //in PowerPC the GPR0 is always Zero - .put(PPC64Registers.GPR0, // 0x0000000000000000 - new byte[] { (byte)0x00, (byte)0x00,0x00, (byte)0x00, - (byte)0x00, 0x00,(byte)0x00,(byte)0x00 }) + .put(PPC64Registers.GPR0, 0, 0) .put(PPC64Registers.GPR1, // 0x514c159c25c27735 new byte[] { 0x51,0x4c,0x15,(byte)0x9c, 0x25,(byte)0xc2,0x77,0x35 }) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Dec 5 05:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 05 Dec 2007 05:42:00 -0000 Subject: [SCM] master: Eliminate frysk.sys.Sig which had hard-wired host values. Message-ID: <20071205054250.16289.qmail@sourceware.org> The branch, master has been updated via 0e8076d9ad47b55a7451b014124cd9b2428a8bfe (commit) from 7f585a43eb4eddf50707b5034a7881c5fad268b9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 0e8076d9ad47b55a7451b014124cd9b2428a8bfe Author: Andrew Cagney Date: Wed Dec 5 00:40:42 2007 -0500 Eliminate frysk.sys.Sig which had hard-wired host values. XXX: Target code using host frysk.sys.Signal remains. frysk-core/frysk/debuginfo/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TestDebugInfoStackTrace.java: Update. frysk-core/frysk/event/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * PollEventLoop.java: Update. * EventLoop.java: Update. * SignalEvent.java: Update. * EventLoopTestBed.java: Update. * TestSigChild.java: Update. * WaitEventLoop.java: Update. frysk-core/frysk/hpd/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * QuitCommand.java: Update. frysk-core/frysk/proc/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TestTaskTerminateObserver.java: Update. * TestTaskSyscallObserver.java: Update. * TestTaskObserver.java: Update. * TestTaskObserverInstructionSigReturn.java: Update. * TestSyscallSignal.java: Update. * TestProcTasksObserver.java: Update. * TestMemory.java: Update. * TestTaskObserverCode.java: Update. * TestTaskObserverDetach.java: Update. frysk-core/frysk/proc/live/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * LinuxWaitBuilder.java: Update. * LinuxTask.java: Update. * LinuxTaskState.java: Update. frysk-core/frysk/stepping/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TestStepping.java: Update. * SteppingEngine.java: Update. * TestSteppingEngine.java: Update. frysk-core/frysk/testbed/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TestSignalWaiter.java: Update. * SignalWaiter.java: Update. * SlaveOffspring.java: Update. * SynchronizedOffspring.java: Update. * Offspring.java: Update. * TestLib.java: Update. * ExecOffspring.java: Update. * LegacyOffspring.java: Update. 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TestFCatch.java: Update. * CoredumpAction.java: Update. * StacktraceAction.java: Update. frysk-gui/frysk/gui/ChangeLog 2007-12-05 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * Gui.java: Update. frysk-gui/frysk/gui/monitor/ChangeLog 2007-12-05 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * observers/TaskSignaledObserver.java: Update. * MainWindow.java: Update. * observers/TaskTerminatingObserver.java: Update. frysk-sys/frysk/expunit/ChangeLog 2007-12-04 Andrew Cagney Merged frysk.sys.Sig into frysk.sys.Signal. * Expect.java: Use Signal.CHLD.drain(). frysk-sys/frysk/sys/ChangeLog 2007-12-04 Andrew Cagney * Sig.shenum: Delete; merge into ... * Signal.java (Signal(int)): New; private. (toPrint(), toString()): New. (kill(int)): Replace kill(int,Sig). (tkill(int)): Replace tkill(int,Sig). (drain()): Replace drain(Sig). (HUP, hup()): New. (CHLD, chld()): New. (KILL, kill()): New. (USR1, usr2()): New. (USR2, usr1()): New. (WINCH, winch()): New. (CONT, cont()): New. (ALRM, alrm()): New. (TERM, term()): New. (TRAP, trap()): New. (STOP, stop()): New. (NONE, none()): New. (INT, int_()): New. (SEGV, segv()): New. (BUS, bus()): New. (FPE, fpe()): New. (ILL, ill()): New. (URG, urg()): New. (PWR, pwr()): New. (PROF, prof()): New. (IO, io()): New. * TestPtrace.java: Update. * Ptrace.java: Update. * Itimer.java: Update. * SignalBuilder.java: Update. * Wait.java: Update. * TestFork.java: Update. * ProcessIdentifier.java: Update. * SignalSet.java: Update. * Poll.java: Update. * TestPipePair.java: Update. * TestPseudoTerminal.java: Update. * TestSignalSet.java: Update. * TestWait.java: Update. * cni/Poll.cxx: Update. * PollBuilder.java: Update. * cni/Signal.cxx: Update. * cni/SignalSet.cxx: Update. * cni/Wait.cxx: Update. * cni/Itimer.cxx: Update. frysk-sys/frysk/sys/termios/ChangeLog 2007-12-04 Andrew Cagney Merged frysk.sys.Sig into frysk.sys.Signal. * TestLib.java: Use Signal.CHLD.drain(). frysk-sys/frysk/testbed/ChangeLog 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. * TearDownProcess.java: Update. * TestTearDownExpect.java: Update. * AttachedSelf.java: Update. * TestTearDownProcess.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 + .../frysk/debuginfo/TestDebugInfoStackTrace.java | 18 +- frysk-core/frysk/event/ChangeLog | 10 + frysk-core/frysk/event/EventLoop.java | 25 ++-- frysk-core/frysk/event/EventLoopTestBed.java | 43 ++--- frysk-core/frysk/event/PollEventLoop.java | 9 +- frysk-core/frysk/event/SignalEvent.java | 14 +- frysk-core/frysk/event/TestSigChild.java | 8 +- frysk-core/frysk/event/WaitEventLoop.java | 6 +- frysk-core/frysk/hpd/ChangeLog | 5 + frysk-core/frysk/hpd/QuitCommand.java | 3 +- frysk-core/frysk/proc/ChangeLog | 11 + frysk-core/frysk/proc/TestMemory.java | 4 +- frysk-core/frysk/proc/TestProcTasksObserver.java | 5 +- frysk-core/frysk/proc/TestSyscallSignal.java | 91 ++++----- frysk-core/frysk/proc/TestTaskObserver.java | 26 ++-- frysk-core/frysk/proc/TestTaskObserverCode.java | 201 ++++++++++---------- frysk-core/frysk/proc/TestTaskObserverDetach.java | 14 +- .../proc/TestTaskObserverInstructionSigReturn.java | 28 ++-- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 16 +- .../frysk/proc/TestTaskTerminateObserver.java | 18 +- frysk-core/frysk/proc/live/ChangeLog | 7 + frysk-core/frysk/proc/live/LinuxTask.java | 14 +- frysk-core/frysk/proc/live/LinuxTaskState.java | 27 ++-- frysk-core/frysk/proc/live/LinuxWaitBuilder.java | 13 +- frysk-core/frysk/stepping/ChangeLog | 7 + frysk-core/frysk/stepping/SteppingEngine.java | 3 +- frysk-core/frysk/stepping/TestStepping.java | 32 ++- frysk-core/frysk/stepping/TestSteppingEngine.java | 5 +- frysk-core/frysk/testbed/ChangeLog | 12 ++ frysk-core/frysk/testbed/ExecOffspring.java | 6 +- frysk-core/frysk/testbed/LegacyOffspring.java | 39 ++-- frysk-core/frysk/testbed/Offspring.java | 7 +- frysk-core/frysk/testbed/SignalWaiter.java | 17 +- frysk-core/frysk/testbed/SlaveOffspring.java | 43 +++-- .../frysk/testbed/SynchronizedOffspring.java | 8 +- frysk-core/frysk/testbed/TestLib.java | 15 +- frysk-core/frysk/testbed/TestSignalWaiter.java | 15 +- frysk-core/frysk/util/ChangeLog | 7 + frysk-core/frysk/util/CoredumpAction.java | 5 +- frysk-core/frysk/util/StacktraceAction.java | 4 +- frysk-core/frysk/util/TestFCatch.java | 3 +- frysk-gui/frysk/gui/ChangeLog | 5 + frysk-gui/frysk/gui/Gui.java | 39 ++-- frysk-gui/frysk/gui/monitor/ChangeLog | 7 + frysk-gui/frysk/gui/monitor/MainWindow.java | 19 +- .../monitor/observers/TaskSignaledObserver.java | 41 +++-- .../monitor/observers/TaskTerminatingObserver.java | 33 ++-- frysk-sys/frysk/expunit/ChangeLog | 5 + frysk-sys/frysk/expunit/Expect.java | 3 +- frysk-sys/frysk/expunit/TestExpect.java | 5 +- frysk-sys/frysk/sys/ChangeLog | 49 +++++ frysk-sys/frysk/sys/Itimer.java | 15 +- frysk-sys/frysk/sys/Poll.java | 9 +- frysk-sys/frysk/sys/PollBuilder.java | 5 +- frysk-sys/frysk/sys/ProcessIdentifier.java | 10 +- frysk-sys/frysk/sys/Ptrace.java | 3 +- frysk-sys/frysk/sys/Sig.shenum | 77 -------- frysk-sys/frysk/sys/Signal.java | 153 ++++++++++++++- frysk-sys/frysk/sys/SignalBuilder.java | 5 +- frysk-sys/frysk/sys/SignalSet.java | 29 ++-- frysk-sys/frysk/sys/TestFork.java | 6 +- frysk-sys/frysk/sys/TestPipePair.java | 14 +- frysk-sys/frysk/sys/TestPseudoTerminal.java | 2 +- frysk-sys/frysk/sys/TestPtrace.java | 23 ++- frysk-sys/frysk/sys/TestSignalSet.java | 103 +++++------ frysk-sys/frysk/sys/TestWait.java | 12 +- frysk-sys/frysk/sys/Wait.java | 2 +- frysk-sys/frysk/sys/cni/Itimer.cxx | 6 +- frysk-sys/frysk/sys/cni/Poll.cxx | 6 +- frysk-sys/frysk/sys/cni/Signal.cxx | 48 ++++-- frysk-sys/frysk/sys/cni/SignalSet.cxx | 18 +- frysk-sys/frysk/sys/cni/Wait.cxx | 6 +- frysk-sys/frysk/sys/termios/ChangeLog | 5 + frysk-sys/frysk/sys/termios/TestLib.java | 3 +- frysk-sys/frysk/testbed/AttachedSelf.java | 8 +- frysk-sys/frysk/testbed/ChangeLog | 8 + frysk-sys/frysk/testbed/TearDownProcess.java | 23 +-- frysk-sys/frysk/testbed/TestTearDownExpect.java | 4 +- frysk-sys/frysk/testbed/TestTearDownProcess.java | 9 +- 80 files changed, 912 insertions(+), 755 deletions(-) delete mode 100755 frysk-sys/frysk/sys/Sig.shenum First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index ad2fdc3..7706b70 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-12-04 Andrew Cagney + + Merge frysk.sys.Sig into frysk.sys.Signal. + * TestDebugInfoStackTrace.java: Update. + 2007-12-03 Stan Cox * gen-type-expect-tests.py (main): Emit one test per variable. diff --git a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java index 91a697b..b986d8a 100644 --- a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java +++ b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java @@ -56,7 +56,7 @@ import frysk.stepping.SteppingEngine; import frysk.stepping.TaskStepEngine; import frysk.symtab.Symbol; import frysk.sys.Pid; -import frysk.sys.Sig; +import frysk.sys.Signal; import frysk.testbed.SynchronizedOffspring; import frysk.testbed.TestLib; @@ -96,10 +96,10 @@ public class TestDebugInfoStackTrace lock = new LockObserver(); SynchronizedOffspring process - = new SynchronizedOffspring (Sig.USR1, new String[] { + = new SynchronizedOffspring (Signal.USR1, new String[] { getExecPath ("funit-rt-looper"), "" + Pid.get (), - "" + Sig.USR1_ + Signal.USR1.toString() }); myTask = process.findTaskUsingRefresh(true); assertNotNull(myTask); @@ -215,10 +215,10 @@ public class TestDebugInfoStackTrace lock = new LockObserver(); SynchronizedOffspring process - = new SynchronizedOffspring (Sig.USR1, new String[] { + = new SynchronizedOffspring (Signal.USR1, new String[] { getExecPath ("funit-rt-threader"), "" + Pid.get (), - "" + Sig.USR1_ + Signal.USR1.toString() }); myTask = process.findTaskUsingRefresh(true); @@ -265,10 +265,10 @@ public class TestDebugInfoStackTrace testState = PUSH; SynchronizedOffspring process - = new SynchronizedOffspring (Sig.USR1, new String[] { + = new SynchronizedOffspring (Signal.USR1, new String[] { getExecPath ("funit-rt-stepper"), "" + Pid.get (), - "" + Sig.USR1_ + Signal.USR1.toString() }); myTask = process.findTaskUsingRefresh(true); myProc = myTask.getProc(); @@ -303,10 +303,10 @@ public class TestDebugInfoStackTrace testState = POP; SynchronizedOffspring process - = new SynchronizedOffspring (Sig.USR1, new String[] { + = new SynchronizedOffspring (Signal.USR1, new String[] { getExecPath ("funit-rt-stepper"), "" + Pid.get (), - "" + Sig.USR1_ + Signal.USR1.toString() }); myTask = process.findTaskUsingRefresh(true); myProc = myTask.getProc(); diff --git a/frysk-core/frysk/event/ChangeLog b/frysk-core/frysk/event/ChangeLog index 4eb7b01..478a02f 100644 --- a/frysk-core/frysk/event/ChangeLog +++ b/frysk-core/frysk/event/ChangeLog @@ -1,3 +1,13 @@ +2007-12-04 Andrew Cagney + + Merge frysk.sys.Sig into frysk.sys.Signal. + * PollEventLoop.java: Update. + * EventLoop.java: Update. + * SignalEvent.java: Update. + * EventLoopTestBed.java: Update. + * TestSigChild.java: Update. + * WaitEventLoop.java: Update. + 2007-11-28 Tim Moore * EventLoop.java (run, start, running) Loop around the wait, diff --git a/frysk-core/frysk/event/EventLoop.java b/frysk-core/frysk/event/EventLoop.java index bf62450..e44212e 100644 --- a/frysk-core/frysk/event/EventLoop.java +++ b/frysk-core/frysk/event/EventLoop.java @@ -39,7 +39,7 @@ package frysk.event; -import frysk.sys.Sig; +import frysk.sys.Signal; import frysk.sys.Tid; import frysk.sys.WaitBuilder; import java.util.HashMap; @@ -61,15 +61,15 @@ public abstract class EventLoop protected static Logger logger = Logger.getLogger("frysk"); /** - * The EventLoop uses Sig.IO to wake up, or unblock, the + * The EventLoop uses Signal.IO to wake up, or unblock, the * event-loop thread when a request comes in. */ protected EventLoop() { signalEmpty (); - // Sig.IO is used to wake up a blocked event loop when an + // Signal.IO is used to wake up a blocked event loop when an // asynchronous event arrives. - signalAdd (Sig.IO); + signalAdd(Signal.IO); logger.log (Level.FINE, "{0} new\n", this); } @@ -79,9 +79,9 @@ public abstract class EventLoop */ protected abstract void signalEmpty(); /** - * Add Sig to the signals that can be received. + * Add Signal to the signals that can be received. */ - protected abstract void signalAdd(Sig sig); + protected abstract void signalAdd(Signal sig); /** @@ -98,7 +98,7 @@ public abstract class EventLoop /** * The EventLoop's thread ID. If a thread, other than the * EventLoop thread modifies any of the event queues, the event - * thread will need to be woken up using a Sig.IO. + * thread will need to be woken up using a Signal.IO. */ private int tid = -1; // can change once final boolean isCurrentThread() @@ -116,7 +116,7 @@ public abstract class EventLoop // wasn't set. if (tid <= 0) throw new RuntimeException ("EventLoop.tid botch"); - frysk.sys.Signal.tkill (tid, Sig.IO); + Signal.IO.tkill(tid); } private Exception firstSet; private void updateTid() @@ -240,10 +240,10 @@ public abstract class EventLoop { logger.log (Level.FINEST, "{0} add SignalEvent {1}\n", new Object[] { this, signalEvent }); - Object old = signalHandlers.put (signalEvent.getSig (), signalEvent); + Object old = signalHandlers.put (signalEvent.getSignal(), signalEvent); if (old == null) // New signal, tell Poll. - signalAdd (signalEvent.getSig ()); + signalAdd (signalEvent.getSignal()); wakeupIfBlocked (); } /** @@ -253,7 +253,7 @@ public abstract class EventLoop public synchronized void remove (SignalEvent signalEvent) { logger.log (Level.FINE, "{0} remove SignalEvent\n", this); - signalHandlers.remove (signalEvent.getSig ()); + signalHandlers.remove (signalEvent.getSignal()); // XXX: Poll.SignalSet.remove (sig.signal); } /** @@ -262,8 +262,7 @@ public abstract class EventLoop * signal delivery un-blocks the poll, the event thread is no * longer going to block. */ - protected synchronized void processSignal (Sig sig) - { + protected synchronized void processSignal(Signal sig) { logger.log (Level.FINEST, "{0} processSignal Sig\n", this); SignalEvent handler = (SignalEvent) signalHandlers.get (sig); if (handler != null) diff --git a/frysk-core/frysk/event/EventLoopTestBed.java b/frysk-core/frysk/event/EventLoopTestBed.java index ebdee1e..7183c89 100644 --- a/frysk-core/frysk/event/EventLoopTestBed.java +++ b/frysk-core/frysk/event/EventLoopTestBed.java @@ -40,7 +40,6 @@ package frysk.event; import frysk.sys.Signal; -import frysk.sys.Sig; import frysk.sys.Tid; import frysk.junit.TestCase; @@ -66,10 +65,8 @@ abstract class EventLoopTestBed public void setUp () { eventLoop = newEventLoop (); - eventLoop.add (new SignalEvent (Sig.INT) - { - public void execute () - { + eventLoop.add(new SignalEvent(Signal.INT) { + public void execute () { fail ("Got CNTRL-C"); } }); @@ -83,8 +80,8 @@ abstract class EventLoopTestBed { // Make certain that the event loop died. eventLoop.requestStop(); - Signal.drain (Sig.USR1); - Signal.drain (Sig.CHLD); + Signal.USR1.drain(); + Signal.CHLD.drain(); } /** @@ -108,10 +105,10 @@ abstract class EventLoopTestBed 0, count.numberOfSignalEvents); assertEquals ("count.numberOfTimerEvents", 1, count.numberOfTimerEvents); - Signal.tkill (eventTid, Sig.USR1); + Signal.USR1.tkill(eventTid); } }); - eventLoop.add (new SignalEvent (Sig.USR1) + eventLoop.add (new SignalEvent (Signal.USR1) { Counters count = counters; public void execute () @@ -306,7 +303,7 @@ abstract class EventLoopTestBed class SignalFired extends SignalEvent { - SignalFired (Sig sig) + SignalFired (Signal sig) { super (sig); } @@ -317,22 +314,22 @@ abstract class EventLoopTestBed eventLoop.requestStop (); } } - SignalFired handler = new SignalFired (Sig.CHLD); + SignalFired handler = new SignalFired (Signal.CHLD); // Add a handler for SIGCHILD, shoot the signal (which makes // it pending since there is a handler), and then run the loop // checking that it did, indeed fire. eventLoop.add (handler); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); eventLoop.runPolling (0); - assertEquals ("One Sig.CHLD was received.", 1, handler.count); + assertEquals ("One Signal.CHLD was received.", 1, handler.count); // Remove the handler, send a further signal, check that it // wasn't received. eventLoop.remove (handler); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); eventLoop.runPolling (0); - assertEquals ("Still only one Sig.CHLD (no additions).", + assertEquals ("Still only one Signal.CHLD (no additions).", 1, handler.count); // Re-add the CHLD handler, but this time twice - the @@ -340,15 +337,15 @@ abstract class EventLoopTestBed // receiving signal events. eventLoop.add (handler); eventLoop.add (handler); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); eventLoop.runPolling (0); - assertEquals ("Second Sig.CHLD received.", 2, handler.count); + assertEquals ("Second Signal.CHLD received.", 2, handler.count); // Finally remove the handler and again check no signal was // received (if the handler was duplicated in the signal pool // then it might still see the signal). eventLoop.remove (handler); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); eventLoop.runPolling (0); assertEquals ("No further SIGCHLDs.", 2, handler.count); } @@ -363,10 +360,10 @@ abstract class EventLoopTestBed */ public void testAsync () { - // Set up a dummy Sig.CHLD handler, this should never occur + // Set up a dummy Signal.CHLD handler, this should never occur // as it is overridden by an asynchronous thread before the // signal is delivered. - eventLoop.add (new SignalEvent (Sig.CHLD) + eventLoop.add (new SignalEvent (Signal.CHLD) { public void execute () { @@ -428,14 +425,14 @@ abstract class EventLoopTestBed { public void run () { - eventLoop.add (new SignalEvent (Sig.CHLD) + eventLoop.add (new SignalEvent (Signal.CHLD) { public void execute () { new SleepThread ().start (); } }); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); } } /** @@ -454,7 +451,7 @@ abstract class EventLoopTestBed fail ("sleep interrupted"); } eventLoop.add (new RequestStopEvent(eventLoop)); - Signal.tkill (eventTid, Sig.CHLD); + Signal.CHLD.tkill(eventTid); } } diff --git a/frysk-core/frysk/event/PollEventLoop.java b/frysk-core/frysk/event/PollEventLoop.java index e9d6a3f..91e06bb 100644 --- a/frysk-core/frysk/event/PollEventLoop.java +++ b/frysk-core/frysk/event/PollEventLoop.java @@ -41,7 +41,7 @@ package frysk.event; import frysk.sys.Poll; import frysk.sys.PollBuilder; -import frysk.sys.Sig; +import frysk.sys.Signal; import frysk.sys.Wait; import frysk.sys.WaitBuilder; import java.util.logging.Level; @@ -57,8 +57,7 @@ class PollEventLoop { Poll.empty (); } - protected void signalAdd(Sig sig) - { + protected void signalAdd(Signal sig) { Poll.add(sig); } @@ -89,7 +88,7 @@ class PollEventLoop final WaitBuilder waitBuilder; PollWaitOnSigChild (WaitBuilder waitBuilder) { - super(Sig.CHLD); + super(Signal.CHLD); this.waitBuilder = waitBuilder; logger.log(Level.FINE, "{0} PollWaitOnSigChld\n", this); } @@ -108,7 +107,7 @@ class PollEventLoop { return ("{" + super.toString () + "}"); } - public void signal (Sig sig) { + public void signal(Signal sig) { logger.log (Level.FINEST, "{0} PollBuilder.signal Sig\n", this); processSignal (sig); } diff --git a/frysk-core/frysk/event/SignalEvent.java b/frysk-core/frysk/event/SignalEvent.java index 85166f9..f8cc4c3 100644 --- a/frysk-core/frysk/event/SignalEvent.java +++ b/frysk-core/frysk/event/SignalEvent.java @@ -39,29 +39,25 @@ package frysk.event; -import frysk.sys.Sig; +import frysk.sys.Signal; /** * An event due to a signal. */ -public abstract class SignalEvent - implements Event -{ - private final Sig sig; +public abstract class SignalEvent implements Event { + private final Signal sig; /** * Return the corresponding signal; the sig can be used as a * search key. */ - public Sig getSig () - { + public Signal getSignal() { return sig; } /** * Create a Signal based event. */ - public SignalEvent (Sig sig) - { + public SignalEvent(Signal sig) { this.sig = sig; } /** diff --git a/frysk-core/frysk/event/TestSigChild.java b/frysk-core/frysk/event/TestSigChild.java index f8abc4e..117048a 100644 --- a/frysk-core/frysk/event/TestSigChild.java +++ b/frysk-core/frysk/event/TestSigChild.java @@ -39,7 +39,7 @@ package frysk.event; -import frysk.sys.Sig; +import frysk.sys.Signal; import frysk.junit.TestCase; /** @@ -53,10 +53,8 @@ public class TestSigChild public void stackDump () { EventLoop eventLoop = new PollEventLoop (); - eventLoop.add (new SignalEvent (Sig.CHLD) - { - public final void execute () - { + eventLoop.add (new SignalEvent (Signal.CHLD) { + public final void execute () { } }); new RuntimeException ().getStackTrace (); diff --git a/frysk-core/frysk/event/WaitEventLoop.java b/frysk-core/frysk/event/WaitEventLoop.java index c33a626..9898d25 100644 --- a/frysk-core/frysk/event/WaitEventLoop.java +++ b/frysk-core/frysk/event/WaitEventLoop.java @@ -42,7 +42,7 @@ package frysk.event; import frysk.sys.Wait; import frysk.sys.WaitBuilder; import frysk.sys.SignalBuilder; -import frysk.sys.Sig; +import frysk.sys.Signal; import java.util.logging.Level; /** @@ -56,7 +56,7 @@ class WaitEventLoop { Wait.signalEmpty (); } - protected void signalAdd(Sig sig) + protected void signalAdd(Signal sig) { Wait.signalAdd(sig); } @@ -70,7 +70,7 @@ class WaitEventLoop private SignalBuilder signalBuilder = new SignalBuilder () { - public void signal (Sig sig) + public void signal (Signal sig) { if (logger.isLoggable(Level.FINEST)) { diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 1970598..2f4412a 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-12-04 Andrew Cagney + + Merge frysk.sys.Sig into frysk.sys.Signal. + * QuitCommand.java: Update. + 2007-11-29 Rick Moseley * RunCommand.java: Added code to implement the ability to run diff --git a/frysk-core/frysk/hpd/QuitCommand.java b/frysk-core/frysk/hpd/QuitCommand.java index 4bb3e14..5d08f31 100644 --- a/frysk-core/frysk/hpd/QuitCommand.java +++ b/frysk-core/frysk/hpd/QuitCommand.java @@ -45,7 +45,6 @@ import frysk.event.Request; import frysk.proc.Manager; import frysk.proc.Proc; import frysk.sys.Signal; -import frysk.sys.Sig; import frysk.util.CountDownLatch; import java.util.List; @@ -67,7 +66,7 @@ class QuitCommand extends ParameterizedCommand { for (Iterator iterator = cli.runningProcs.iterator(); iterator.hasNext();) { Proc p = (Proc) iterator.next(); hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Dec 5 10:15:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 05 Dec 2007 10:15:00 -0000 Subject: [SCM] master: Fixing tests for PowerPC64, mainly float pointer regs test. Message-ID: <20071205101555.7005.qmail@sourceware.org> The branch, master has been updated via aeabc3f897c851589dc688578f78450cd3210277 (commit) from 0e8076d9ad47b55a7451b014124cd9b2428a8bfe (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit aeabc3f897c851589dc688578f78450cd3210277 Author: Jose Flavio Aguilar Paulino Date: Wed Dec 5 08:15:48 2007 -0200 Fixing tests for PowerPC64, mainly float pointer regs test. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/funit-frameless.S | 8 +- frysk-core/frysk/pkglibdir/funit-location.S | 6 +-- frysk-core/frysk/pkglibdir/funit-regs.S | 78 +++++++++++++++++++++++++- 3 files changed, 82 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/funit-frameless.S b/frysk-core/frysk/pkglibdir/funit-frameless.S index 0fade7b..0ba5712 100644 --- a/frysk-core/frysk/pkglibdir/funit-frameless.S +++ b/frysk-core/frysk/pkglibdir/funit-frameless.S @@ -50,10 +50,10 @@ MOV(REG0, REG1) FRAMELESS_ADJ_RETURN (REG1) NO_OP ; NO_OP -#if !defined __powerpc__ + LOAD_IMMED_WORD(REG0, .L1) JUMP(bar) // _stepFramelessEntry_ -#endif + .L1: NO_OP ; NO_OP // _stepFramelessReturn_ JUMP_REG(REG1) @@ -62,10 +62,10 @@ FUNCTION_BEGIN(main, 0) MAIN_PROLOGUE(0) -#if !defined __powerpc__ + LOAD_IMMED_WORD(REG0, .L2) JUMP(foo) -#endif + .L2: NO_OP MAIN_EPILOGUE(0) diff --git a/frysk-core/frysk/pkglibdir/funit-location.S b/frysk-core/frysk/pkglibdir/funit-location.S index 31e1f60..e7021b8 100644 --- a/frysk-core/frysk/pkglibdir/funit-location.S +++ b/frysk-core/frysk/pkglibdir/funit-location.S @@ -45,11 +45,7 @@ MAIN_PROLOGUE(0) LOAD_IMMED_WORD (REG0, 0) LOAD_IMMED_WORD (REG1, 987) -#if defined __powerpc__ -#warning PowerPC do not support load a LABEL into a Register as a immediate -#else - LOAD_IMMED_WORD (REG2, memory) -#endif +LOAD_IMMED_WORD (REG2, memory) STORE (REG0, REG0) // To crash program diff --git a/frysk-core/frysk/pkglibdir/funit-regs.S b/frysk-core/frysk/pkglibdir/funit-regs.S index 6bc5edb..d9b8690 100644 --- a/frysk-core/frysk/pkglibdir/funit-regs.S +++ b/frysk-core/frysk/pkglibdir/funit-regs.S @@ -89,7 +89,45 @@ #elif defined __powerpc64__ - LOAD_IMMED_WORD( 0, 0x0000000000000000) //This Reg is always Zero + // Setting FP values, need gpr1 for loading them + + LOAD_IMMED_WORD(1, ppc_fp_values) + lfd 0, 0(1) ; + lfd 1, 8(1) ; + lfd 2, 16(1) ; + lfd 3, 24(1) ; + lfd 4, 32(1) ; + lfd 5, 40(1) ; + lfd 6, 48(1) ; + lfd 7, 56(1) ; + lfd 8, 64(1) ; + lfd 9, 72(1) ; + lfd 10, 80(1) ; + lfd 11, 88(1) ; + lfd 12, 96(1) ; + lfd 13, 104(1) ; + lfd 14, 112(1) ; + lfd 15, 120(1) ; + lfd 16, 128(1) ; + lfd 17, 136(1) ; + lfd 18, 144(1) ; + lfd 19, 152(1) ; + lfd 20, 160(1) ; + lfd 21, 168(1) ; + lfd 22, 176(1) ; + lfd 23, 184(1) ; + lfd 24, 192(1) ; + lfd 25, 200(1) ; + lfd 26, 208(1) ; + lfd 27, 216(1) ; + lfd 28, 224(1) ; + lfd 29, 232(1) ; + lfd 30, 240(1) ; + lfd 31, 248(1) ; + + // Setting General Purpose Registers + + LOAD_IMMED_WORD( 0, 0x0000000000000000) // This Reg is always Zero LOAD_IMMED_WORD( 1, 0x514c159c25c27735) LOAD_IMMED_WORD( 2, 0x674b6064cdf97685) LOAD_IMMED_WORD( 3, 0x808ac01e8911f56c) @@ -345,4 +383,42 @@ fxregs: .byte 0xd9, 0x83, 0x66, 0xfc // some padding .fill 512, 1, 0 + +#elif defined __powerpc64__ + .data + .align 8 + ppc_fp_values: + .byte 0x75, 0xf9, 0x8c, 0xa5, 0xea, 0x9d, 0x46, 0x22 + .byte 0x20, 0x53, 0xc1, 0x89, 0xe7, 0xaa, 0x9a, 0xde + .byte 0x3d, 0xf0, 0x9c, 0x83, 0x07, 0xb6, 0xfc, 0x56 + .byte 0xb3, 0xb9, 0x5a, 0x2e, 0x6f, 0xbe, 0x9b, 0xf0 //fpr3 + .byte 0x29, 0xc9, 0x16, 0x90, 0x2e, 0x8c, 0x7c, 0x07 + .byte 0xe7, 0x4e, 0xcd, 0xc5, 0x30, 0xdc, 0x7b, 0x77 + .byte 0x90, 0x50, 0x5e, 0x84, 0x18, 0x7b, 0x20, 0x6b + .byte 0x6e, 0x5a, 0xc9, 0xb6, 0x9d, 0xad, 0x58, 0x52 //fpr7 + .byte 0x20, 0xed, 0x2a, 0x35, 0x62, 0x01, 0xd3, 0xd1 + .byte 0xec, 0x7b, 0xa6, 0xb6, 0xd8, 0x2d, 0x28, 0x59 + .byte 0x19, 0x08, 0xe8, 0x30, 0xb5, 0x4d, 0xa7, 0x71 + .byte 0xba, 0x39, 0x9d, 0x51, 0x7c, 0xee, 0x2b, 0xb3 //fpr11 + .byte 0x06, 0x01, 0xc9, 0xbf, 0x3d, 0xac, 0x15, 0x41 + .byte 0x42, 0xef, 0x87, 0x55, 0x26, 0xd2, 0x6a, 0xc7 + .byte 0x1d, 0xd0, 0x6c, 0x1c, 0x91, 0x32, 0xb4, 0xcb + .byte 0xc9, 0xb9, 0x57, 0xb3, 0xef, 0x59, 0xad, 0xf5 //fpr15 + .byte 0xf3, 0xc5, 0x55, 0x50, 0x4f, 0x10, 0xef, 0x96 + .byte 0x48, 0x48, 0x0d, 0xaa, 0x25, 0x66, 0x64, 0x24 + .byte 0x60, 0x08, 0x87, 0x5d, 0x4a, 0x37, 0x30, 0x61 + .byte 0xd1, 0x1d, 0x69, 0x87, 0x28, 0xce, 0xab, 0x86 //fpr19 + .byte 0x84, 0xd1, 0x23, 0xc3, 0x49, 0xf2, 0x46, 0x8e + .byte 0x0a, 0x45, 0xfc, 0x95, 0x17, 0x34, 0x31, 0x63 + .byte 0x19, 0xa6, 0x21, 0xd6, 0xf7, 0xd8, 0xe7, 0xb9 + .byte 0xd4, 0x5b, 0x91, 0xce, 0xda, 0x65, 0xde, 0x9e //fpr23 + .byte 0xb0, 0x2e, 0x40, 0x44, 0xd6, 0x80, 0x25, 0x06 + .byte 0x04, 0x27, 0x41, 0x1a, 0xff, 0x7c, 0x47, 0x66 + .byte 0x4f, 0x5b, 0x95, 0x5b, 0x70, 0x21, 0x7b, 0xf5 + .byte 0xed, 0xdc, 0x0c, 0x73, 0xbb, 0x1e, 0x86, 0x99 //fpr27 + .byte 0x47, 0x2c, 0x0c, 0x59, 0x69, 0xc0, 0xaf, 0x0a + .byte 0x01, 0x9c, 0x66, 0x01, 0x2a, 0x71, 0x52, 0x12 + .byte 0xfa, 0xf3, 0x68, 0x73, 0x8b, 0xd3, 0xce, 0xc4 + .byte 0x5e, 0xe6, 0xe7, 0x41, 0x8f, 0xe6, 0x1e, 0x98 //fpr31 + #endif hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Dec 5 12:21:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 05 Dec 2007 12:21:00 -0000 Subject: [SCM] master: Fix tests for PowerPC32/64, remove old debug information. Message-ID: <20071205122139.18431.qmail@sourceware.org> The branch, master has been updated via 7d3bf0bd1f52d0b50f8bf7618ebcbb53da15bd13 (commit) from aeabc3f897c851589dc688578f78450cd3210277 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 7d3bf0bd1f52d0b50f8bf7618ebcbb53da15bd13 Author: Jose Flavio Aguilar Paulino Date: Wed Dec 5 10:21:24 2007 -0200 Fix tests for PowerPC32/64, remove old debug information. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 14 ++++++++++++++ frysk-core/frysk/pkglibdir/funit-location.S | 4 +++- frysk-core/frysk/pkglibdir/funit-raise.S | 19 +++++++++---------- frysk-core/frysk/pkglibdir/funit-symbols.S | 11 +++-------- frysk-core/frysk/proc/live/ChangeLog | 5 +++++ .../proc/live/PtraceRegisterBanksFactory.java | 1 - 6 files changed, 34 insertions(+), 20 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index bef2604..989cefa 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,5 +1,19 @@ 2007-12-04 Jose Flavio Aguilar Paulino + * funit-regs.S: Add floating support for PowerPC64. + + * funit-raise.S: Adding division by zero instructions for + PowerPC32. Put data section for usage text. + + * funit-location.S: Fixed the test for PowerPC, it is using + the new LOAD_IMMED_WORD. Add a 8byte word for PowerPC64. + + * funit-frameless.S: Same as above. + + * funit-symbols.S: Same as above. Add data section for usage text. + +2007-12-04 Jose Flavio Aguilar Paulino + * funit-regs.S: add support to PowerPC32/64 to this test. 2007-12-03 Stan Cox diff --git a/frysk-core/frysk/pkglibdir/funit-location.S b/frysk-core/frysk/pkglibdir/funit-location.S index e7021b8..cf188c2 100644 --- a/frysk-core/frysk/pkglibdir/funit-location.S +++ b/frysk-core/frysk/pkglibdir/funit-location.S @@ -54,7 +54,9 @@ FUNCTION_RETURN(main,0) FUNCTION_END(main,0) memory: // Set up memory locations -#if defined __powerpc__ +#if defined __powerpc64__ + .8byte 0x12341234 +#elif defined __powerpc__ .4byte 0x1234 #else .word 0x1234 diff --git a/frysk-core/frysk/pkglibdir/funit-raise.S b/frysk-core/frysk/pkglibdir/funit-raise.S index 1d648d6..f3fb530 100644 --- a/frysk-core/frysk/pkglibdir/funit-raise.S +++ b/frysk-core/frysk/pkglibdir/funit-raise.S @@ -1,6 +1,7 @@ // This file is part of the program FRYSK. // // Copyright 2007 Red Hat Inc. +// Copyright 2007 (C) IBM // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -48,10 +49,13 @@ #if defined(__i386__) || defined(__x86_64__) #define DIV_ZERO(REG) div REG; #define ILL_INST .word 0xffff; -#elif defined(__powerpc__) +#elif defined __powerpc64__ #define DIV_ZERO(REG) li 5, 0; divw 6, REG, 5 //PowePC64 has fixed size instructions upcodes, 16 bytes (64bits) long - #define ILL_INST .8byte 0xffff; .8byte 0xffff; + #define ILL_INST .8byte 0xffffffffffffffff; +#elif defined __powerpc__ + #define DIV_ZERO(REG) li 5, 0; divw 6, REG, 5 + #define ILL_INST .4byte 0xffffffff; #else #error unsuported architecture #endif @@ -141,12 +145,8 @@ FUNCTION_BEGIN(main,0) LOAD_IMMED_BYTE(REG0, SYS_write) LOAD_IMMED_BYTE(REG1, 1) - #if defined(__powerpc__) - #warning You cant load a LABEL as an immediate in PowerPC - #else - LOAD_IMMED_WORD(REG2, usage) - LOAD_IMMED_WORD(REG3, .usage-usage) - #endif + LOAD_IMMED_WORD(REG2, usage) + LOAD_IMMED_WORD(REG3, .usage-usage) SYSCALL @@ -158,8 +158,8 @@ exit_main: FUNCTION_RETURN(main,0) FUNCTION_END(main,0) +.data //In PowerPC you cant have unaligned upcodes in executable segment -#if !defined(__powerpc__) usage: .asciz "Usage:\r\n\ ARG1 ...\r\n\ The number of arguments determines the function which this program\r\n\ @@ -171,4 +171,3 @@ calls and how it will raise a signal/trap because:\r\n\ 5: SIGURG ignore signal (ign_sig_urg)\r\n\ " .usage: -#endif diff --git a/frysk-core/frysk/pkglibdir/funit-symbols.S b/frysk-core/frysk/pkglibdir/funit-symbols.S index 3a1e45b..9f59f41 100644 --- a/frysk-core/frysk/pkglibdir/funit-symbols.S +++ b/frysk-core/frysk/pkglibdir/funit-symbols.S @@ -340,12 +340,9 @@ LOCAL(small_local_at_large_local) LOAD_IMMED_BYTE(REG0, SYS_write) LOAD_IMMED_BYTE(REG1, 1) -#if defined(__powerpc__) - #warning You cant load a LABEL as an immediate in PowerPC -#else LOAD_IMMED_WORD(REG2, usage) LOAD_IMMED_WORD(REG3, .usage-usage) -#endif + SYSCALL // exit with a non-zero status LOAD_IMMED_BYTE(REG0, 1) @@ -353,9 +350,8 @@ LOCAL(small_local_at_large_local) FUNCTION_RETURN(main,0) FUNCTION_END(main,0) -#if defined(__powerpc__) -#warning In PowerPC you cant have unaligned upcodes in executable segment -#else +//In PowerPC the next section can not stay in a executable segment +.data usage: .asciz "Usage:\r\n\ ARG1 ...\r\n\ The number of arguments determines the symbol at which this program\r\n\ @@ -386,4 +382,3 @@ crashes:\r\n\ 24: No symbol after local with nested zero-sized symbols\r\n\ " .usage: -#endif diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 64f0443..f095694 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,8 @@ +2007-12-05 Jose Flavio Aguilar Paulino + + * PtraceRegisterBanksFactory.java: Removing PowerPC useless + debug information. + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. diff --git a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java index 75aeed9..4777a2d 100644 --- a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java @@ -90,7 +90,6 @@ class PtraceRegisterBanksFactory { for (int i = 0; i < bankBuffers.length; i++) { bankBuffers[i].order(ByteOrder.BIG_ENDIAN); } - System.out.println("Usr Addr Space Size: " + bankBuffers[0].capacity()); return bankBuffers; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Dec 5 16:55:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 05 Dec 2007 16:55:00 -0000 Subject: [SCM] master: For "regs" set on __powerpc64__ do not return usr set. Message-ID: <20071205165504.9842.qmail@sourceware.org> The branch, master has been updated via 57c114a4078d7283c05e8262cbe7b7d08ad52ae5 (commit) from 7d3bf0bd1f52d0b50f8bf7618ebcbb53da15bd13 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 57c114a4078d7283c05e8262cbe7b7d08ad52ae5 Author: Andrew Cagney Date: Wed Dec 5 11:54:23 2007 -0500 For "regs" set on __powerpc64__ do not return usr set. frysk-sys/frysk/sys/ChangeLog 2007-12-05 Andrew Cagney * cni/Ptrace.cxx (regs) [__powerpc64__]: Delete code; do not return USR section for REGS section. (fpregs): Similar. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/sys/ChangeLog | 6 ++++++ frysk-sys/frysk/sys/cni/Ptrace.cxx | 8 -------- 2 files changed, 6 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index b0d4446..2c4494a 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,3 +1,9 @@ +2007-12-05 Andrew Cagney + + * cni/Ptrace.cxx (regs) [__powerpc64__]: Delete code; do not + return USR section for REGS section. + (fpregs): Similar. + 2007-12-04 Andrew Cagney * Sig.shenum: Delete; merge into ... diff --git a/frysk-sys/frysk/sys/cni/Ptrace.cxx b/frysk-sys/frysk/sys/cni/Ptrace.cxx index 5959eb3..c712e5f 100644 --- a/frysk-sys/frysk/sys/cni/Ptrace.cxx +++ b/frysk-sys/frysk/sys/cni/Ptrace.cxx @@ -207,10 +207,6 @@ frysk::sys::Ptrace$RegisterSet::regs () #if defined(__i386__)|| defined(__x86_64__) return new frysk::sys::Ptrace$RegisterSet (sizeof (user_regs_struct), PTRACE_GETREGS, PTRACE_SETREGS); -#elif defined(__powerpc64__) - /* PowerPc single register bank which holds ALL registers (of all kinds) */ - return new frysk::sys::Ptrace$RegisterSet (sizeof(mcontext_t), - PTRACE_PEEKUSR , PTRACE_POKEUSR); #else return NULL; #endif @@ -223,10 +219,6 @@ frysk::sys::Ptrace$RegisterSet::fpregs () return new frysk::sys::Ptrace$RegisterSet (sizeof(user_fpregs_struct), PTRACE_GETFPREGS, PTRACE_SETFPREGS); -#elif defined(__powerpc64__) - /* PowerPC has a single register bank (by ptrace) and it hold all - registers, even the floating pointer ones, special and vector regs */ - return NULL; #else return NULL; #endif hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Dec 5 17:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 05 Dec 2007 17:07:00 -0000 Subject: [SCM] master: Delete unused host dependant frysk.sys java file. Message-ID: <20071205170711.20325.qmail@sourceware.org> The branch, master has been updated via 41a18d8cfd325843485f8892ce98221b503f9b0f (commit) from 57c114a4078d7283c05e8262cbe7b7d08ad52ae5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 41a18d8cfd325843485f8892ce98221b503f9b0f Author: Andrew Cagney Date: Wed Dec 5 12:07:07 2007 -0500 Delete unused host dependant frysk.sys java file. frysk-sys/frysk/sys/ChangeLog 2007-12-05 Andrew Cagney * SyscallNum.java-sh: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/sys/ChangeLog | 2 + frysk-sys/frysk/sys/SyscallNum.java-sh | 69 -------------------------------- 2 files changed, 2 insertions(+), 69 deletions(-) delete mode 100755 frysk-sys/frysk/sys/SyscallNum.java-sh First 500 lines of diff: diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index 2c4494a..453ffb8 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,5 +1,7 @@ 2007-12-05 Andrew Cagney + * SyscallNum.java-sh: Delete. + * cni/Ptrace.cxx (regs) [__powerpc64__]: Delete code; do not return USR section for REGS section. (fpregs): Similar. diff --git a/frysk-sys/frysk/sys/SyscallNum.java-sh b/frysk-sys/frysk/sys/SyscallNum.java-sh deleted file mode 100755 index bb18fc5..0000000 --- a/frysk-sys/frysk/sys/SyscallNum.java-sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -e -# This file is part of the program FRYSK. -# -# Copyright 2005, Red Hat Inc. -# -# FRYSK is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; version 2 of the License. -# -# FRYSK is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with FRYSK; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -# -# In addition, as a special exception, Red Hat, Inc. gives You the -# additional right to link the code of FRYSK with code not covered -# under the GNU General Public License ("Non-GPL Code") and to -# distribute linked combinations including the two, subject to the -# limitations in this paragraph. Non-GPL Code permitted under this -# exception must only link to the code of FRYSK through those well -# defined interfaces identified in the file named EXCEPTION found in -# the source code files (the "Approved Interfaces"). The files of -# Non-GPL Code may instantiate templates or use macros or inline -# functions from the Approved Interfaces without causing the -# resulting work to be covered by the GNU General Public -# License. Only Red Hat, Inc. may make changes or additions to the -# list of Approved Interfaces. You must obey the GNU General Public -# License in all respects for all of the FRYSK code and other code -# used in conjunction with FRYSK except the Non-GPL Code covered by -# this exception. If you modify this file, you may extend this -# exception to your version of the file, but you are not obligated to -# do so. If you do not wish to provide this exception without -# modification, you must delete this exception statement from your -# version and license this file solely under the GPL without -# exception. - -# Grub through the file generating a mkjava.sh table -CC=${CC:-gcc} -$CC -dD -E /usr/include/syscall.h | sed -n ' -/#define __NR_[a-z][a-z0-9]* / { - s,\([[:space:]]\)__NR_,\1SYS,g - s,#define ,, - s,/\*,, - s,\*/,, - p -} -' | awk '{ - # SYSCALL VALUE - if ($2 ~ /[A-Z]/) { - # VALUE is ASCII (i.e., another syscall), save - saved[$1] = $2 - } else if ($2 in value2syscall) { - # VALUE is duplicated, save the reference - saved[$1] = value2syscall[$2] - } else { - value2syscall[$2] = $1 - print - } -} -END { - for (s in saved) { - print s, saved[s], "-" - } -} -' | sh $(dirname $0)/../../common/mkjava.sh "$*" hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Wed Dec 5 17:22:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Wed, 05 Dec 2007 17:22:00 -0000 Subject: [SCM] master: Fix the expected string for PowerPC32/64 isa. Message-ID: <20071205172202.27945.qmail@sourceware.org> The branch, master has been updated via 159b6d1d9636793df6ffaf4eea39d0d1f58fc552 (commit) from 41a18d8cfd325843485f8892ce98221b503f9b0f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 159b6d1d9636793df6ffaf4eea39d0d1f58fc552 Author: Jose Flavio Aguilar Paulino Date: Wed Dec 5 15:21:55 2007 -0200 Fix the expected string for PowerPC32/64 isa. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/isa/ChangeLog | 4 ++++ frysk-core/frysk/isa/TestISA.java | 6 +++++- 2 files changed, 9 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 7377c5e..4a83a10 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,7 @@ +2007-12-05 Jose Flavio Aguilar Paulino + + * TestISA.java: Correcting PowerPC32/64 isa expected strings. + 2007-12-04 Jose Flavio Aguilar Paulino * ISA.java: Updating a comment. diff --git a/frysk-core/frysk/isa/TestISA.java b/frysk-core/frysk/isa/TestISA.java index 9d6c5e9..739ce5b 100644 --- a/frysk-core/frysk/isa/TestISA.java +++ b/frysk-core/frysk/isa/TestISA.java @@ -56,8 +56,12 @@ public class TestISA extends TestCase { assertFalse("!equals", ISA.IA32.equals(ISA.X8664)); } public void testToString() { - assertEquals("toString", "32-bit big-endian PowerPC", + assertEquals("toString", + "32-bit big-endian PowerPC32BE", ISA.PPC32BE.toString()); + assertEquals("toString", + "64-bit big-endian PowerPC64BE", + ISA.PPC64BE.toString()); } public void testElfGet() { assertSame("IA32 core", ISA.IA32, hooks/post-receive -- frysk system monitor/debugger From scox@sourceware.org Thu Dec 6 03:48:00 2007 From: scox@sourceware.org (scox@sourceware.org) Date: Thu, 06 Dec 2007 03:48:00 -0000 Subject: [SCM] master: Use splitext instead of split Message-ID: <20071206034829.24232.qmail@sourceware.org> The branch, master has been updated via abf779095e5f0032dd63a47ff641faed580989fa (commit) from 159b6d1d9636793df6ffaf4eea39d0d1f58fc552 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit abf779095e5f0032dd63a47ff641faed580989fa Author: Stan Cox Date: Wed Dec 5 22:34:15 2007 -0500 Use splitext instead of split * gen-type-expect-tests.py (j.start_test): Use splitext instead of split ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 4 ++++ .../frysk/debuginfo/gen-type-expect-tests.py | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 7706b70..82bb3b9 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2007-12-05 Stan Cox + + * gen-type-expect-tests.py (j.start_test): Use splitext instead of split + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. diff --git a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py index 73aaa1f..5daa7a5 100644 --- a/frysk-core/frysk/debuginfo/gen-type-expect-tests.py +++ b/frysk-core/frysk/debuginfo/gen-type-expect-tests.py @@ -142,7 +142,7 @@ public class %s extends TestLib { def start_test(self, executable, name): print(" public void test_%s () {" % (name)) - tokens = os.path.abspath(executable).split(".") + tokens = os.path.splitext(os.path.abspath(executable)) print(' TypeTestbed typeTestbed = new TypeTestbed("%s", "test%s");' % (os.path.basename(tokens[0]), name)) def add_test(self, name, type, etype, decl, value): hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Dec 6 12:41:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 06 Dec 2007 12:41:00 -0000 Subject: [SCM] master: Add auxv fhpd command Message-ID: <20071206124103.10542.qmail@sourceware.org> The branch, master has been updated via 92c63ef33c7b802db6fee1c0f46c091b5a8ba0f4 (commit) from abf779095e5f0032dd63a47ff641faed580989fa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 92c63ef33c7b802db6fee1c0f46c091b5a8ba0f4 Author: Phil Muldoon Date: Thu Dec 6 12:40:26 2007 +0000 Add auxv fhpd command 2007-12-06 Phil Muldoon * TopLevelCommand.java(TopLevelCommand): add auxv command. * TestAuxvCommand.java: New. * AuxvCommand.java: New. ----------------------------------------------------------------------- Summary of changes: .../hpd/{LoadCommand.java => AuxvCommand.java} | 129 +++++++++++--------- frysk-core/frysk/hpd/ChangeLog | 6 + ...CompletionFactory.java => TestAuxvCommand.java} | 57 +++++----- frysk-core/frysk/hpd/TopLevelCommand.java | 1 + 4 files changed, 105 insertions(+), 88 deletions(-) copy frysk-core/frysk/hpd/{LoadCommand.java => AuxvCommand.java} (53%) copy frysk-core/frysk/hpd/{TestCompletionFactory.java => TestAuxvCommand.java} (70%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/LoadCommand.java b/frysk-core/frysk/hpd/AuxvCommand.java similarity index 53% copy from frysk-core/frysk/hpd/LoadCommand.java copy to frysk-core/frysk/hpd/AuxvCommand.java index 312c084..79f52fd 100644 --- a/frysk-core/frysk/hpd/LoadCommand.java +++ b/frysk-core/frysk/hpd/AuxvCommand.java @@ -39,70 +39,81 @@ package frysk.hpd; -import java.io.File; +import inua.elf.AT; import java.util.Iterator; -import frysk.debuginfo.DebugInfo; -import frysk.debuginfo.DebugInfoFrame; -import frysk.debuginfo.DebugInfoStackFactory; -import frysk.proc.Host; -import frysk.proc.dead.LinuxExeHost; -import frysk.proc.Manager; -import frysk.proc.Proc; -import frysk.proc.Task; import java.util.List; +import frysk.proc.Auxv; +import frysk.proc.Proc; -/** - * LoadCommand handles the "load path-to-executable" command on the fhpd - * commandline. - * - */ - -public class LoadCommand extends ParameterizedCommand { - - LoadCommand() { - super("load", "load path-to-executable", "load an executable file"); - } - - public void interpret(CLI cli, Input cmd, Object options) { - if (cmd.size() > 2) { - throw new InvalidCommandException("Too many parameters"); - } - - File executableFile = new File(cmd.parameter(0)); - - if (!executableFile.exists() || !executableFile.canRead() - || !executableFile.isFile()) { - throw new InvalidCommandException - ("File does not exist or is not readable or is not a file."); - } - - Host exeHost = new LinuxExeHost(Manager.eventLoop, executableFile); - Proc exeProc = frysk.util.Util.getProcFromExeFile(exeHost); - - int procID = cli.idManager.reserveProcID(); - cli.idManager.manageProc(exeProc, procID); - - Iterator foo = cli.targetset.getTasks(); - while (foo.hasNext()) { - Task task = (Task) foo.next(); - if (task.getTid() == exeProc.getMainTask().getTid()) { - DebugInfoFrame frame = DebugInfoStackFactory - .createDebugInfoStackTrace(task); - cli.setTaskFrame(task, frame); - cli.setTaskDebugInfo(task, new DebugInfo( - frame)); - } - } - synchronized (cli) { - cli.getLoadedProcs().put(exeProc, new Integer(procID)); +public class AuxvCommand extends ParameterizedCommand { + + boolean verbose = false; + + public AuxvCommand() { + super("Print process auxiliary", "auxv [-verbose]", + "Print out the process auxiliary data for this " + + "process."); + + add(new CommandOption("verbose", "Print out known auxv descriptions ") { + void parse(String argument, Object options) { + verbose = true; } + }); - cli.addMessage("Loaded executable file: " + cmd.parameter(0), - Message.TYPE_NORMAL); + } + + void interpret(CLI cli, Input cmd, Object options) { + PTSet ptset = cli.getCommandPTSet(cmd); + Iterator taskDataIterator = ptset.getTaskData(); + if (taskDataIterator.hasNext() == false) + cli.addMessage("Cannot find main task. Cannot print out auxv", Message.TYPE_ERROR); + Proc mainProc = ((TaskData) taskDataIterator.next()).getTask().getProc(); + Auxv[] liveAux = mainProc.getAuxv(); + + class BuildAuxv extends AuxvStringBuilder { + + public StringBuffer auxvData = new StringBuffer(); + public void buildLine(String type, String desc, String value) { + if (verbose) + auxvData.append(type+" (" + desc+") : " + value+"\n"); + else + auxvData.append(type+" : " + value+"\n"); + } } - - int completer(CLI cli, Input input, int cursor, List completions) { - return CompletionFactory.completeFileName(cli, input, cursor, - completions); + + BuildAuxv buildAuxv = new BuildAuxv(); + buildAuxv.construct(liveAux); + + cli.outWriter.println(buildAuxv.auxvData.toString()); + } + + int completer(CLI cli, Input input, int cursor, List completions) { + return -1; + } + + abstract class AuxvStringBuilder + { + protected AuxvStringBuilder() { } + + public final void construct (Auxv[] rawAuxv) { + String value; + for (int i=0; i < rawAuxv.length; i++) { + switch (rawAuxv[i].type) { + case 33: + case 16: + case 3: + case 9: + case 15: + value = "0x"+Long.toHexString(rawAuxv[i].val); + break; + default: + value = ""+rawAuxv[i].val; + } + buildLine(AT.toString(rawAuxv[i].type), AT.toPrintString(rawAuxv[i].type), value); + } + } + + abstract public void buildLine(String type, String desc, String value); + } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 2f4412a..7e612de 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,9 @@ +2007-12-06 Phil Muldoon + + * TopLevelCommand.java(TopLevelCommand): add auxv command. + * TestAuxvCommand.java: New. + * AuxvCommand.java: New. + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. diff --git a/frysk-core/frysk/hpd/TestCompletionFactory.java b/frysk-core/frysk/hpd/TestAuxvCommand.java similarity index 70% copy from frysk-core/frysk/hpd/TestCompletionFactory.java copy to frysk-core/frysk/hpd/TestAuxvCommand.java index 3f595bd..35fad72 100644 --- a/frysk-core/frysk/hpd/TestCompletionFactory.java +++ b/frysk-core/frysk/hpd/TestAuxvCommand.java @@ -41,33 +41,32 @@ package frysk.hpd; import frysk.Config; -public class TestCompletionFactory extends TestLib { - - public void setUp() { - super.setUp(); - e = new HpdTestbed(); - } - - /** - * At least two expansions of "funit-stack-" are - * "funit-stack-inlined" and "funit-stack-outlined"; there might - * also be .o files, but ignore that. - */ - private void checkFunitStackCompletion() { - e.send(Config.getPkgLibFile("funit-stack-").getAbsolutePath()); - e.send("\t"); - e.expect("funit-stack-inlined\\r\\n"); - e.expect("funit-stack-outlined\\r\\n"); - e.expectPrompt(); - } - - public void testCompleteFirstFileNameArg() { - e.send("run "); - checkFunitStackCompletion(); - } - - public void testCompleteSecondFileNameArg() { - e.send("run a "); - checkFunitStackCompletion(); - } +public class TestAuxvCommand extends TestLib { + + public void testAuxVCoreCommand() { + e = new HpdTestbed(); + e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + + " -noexe\n"); + e.expect(5, "Attached to core file.*"); + e.send("auxv\n"); + e.expect("AT_SYSINFO : 6464512"); + e.expect("AT_SYSINFO_EHDR : 0x62a000"); + e.expect("AT_HWCAP : 0xafe9f1bf"); + e.expect("AT_PAGESZ : 4096"); + e.expect("AT_CLKTCK : 100"); + e.expect("AT_PHDR : 0x8048034"); + e.expect("AT_PHENT : 32"); + e.expect("AT_PHNUM : 8"); + e.expect("AT_BASE : 0"); + e.expect("AT_FLAGS : 0"); + e.expect("AT_ENTRY : 0x80483e0"); + e.expect("AT_UID : 500"); + e.expect("AT_EUID : 500"); + e.expect("AT_GID : 500"); + e.expect("AT_EGID : 500"); + e.expect("AT_0x17 : 0"); + e.expect("AT_PLATFORM : 0xbfcfee4b"); + e.expect("AT_NULL : 0"); + e.close(); + } } diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index 4289903..875836a 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -80,6 +80,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new AliasCommands.Alias(), "alias"); add(new AliasCommands.Unalias(), "unalias"); add(new AttachCommand(), "attach"); + add(new AuxvCommand(), "auxv"); add(new BreakpointCommand(), "b|reak"); add(new CoreCommand(), "core"); add(new DbgVariableCommands.Set(), "set"); hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Thu Dec 6 16:07:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Thu, 06 Dec 2007 16:07:00 -0000 Subject: [SCM] master: swagiaal: DwarfDie.DwarfDie() Changed constructor to take DwflModule Message-ID: <20071206160724.2012.qmail@sourceware.org> The branch, master has been updated via e84fae5b93e545c70551225ae9c14907f1433ad6 (commit) via 6b6e12c6d2e496413deed9e819999eac41d5d913 (commit) via 02a3f7e9e6fb01704b55fcbb97574c655434ebd7 (commit) from 92c63ef33c7b802db6fee1c0f46c091b5a8ba0f4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e84fae5b93e545c70551225ae9c14907f1433ad6 Author: Sami Wagiaalla Date: Wed Dec 5 14:50:03 2007 -0500 swagiaal: DwarfDie.DwarfDie() Changed constructor to take DwflModule frysk-sys/lib/dwfl/ChangeLog +2007-12-05 Sami Wagiaalla + + * TestDwarfDie.java (testGetModule): New Test. + * DwarfDie.java (DwarfDie): Changed constructor to take + DwflModule instead of Dwfl. + * DwarfDieFactory.java: Updated. + * die/Variant.java: Updated. + * die/VariantPart.java: Updated. + * die/VolatileType.java: Updated. + * die/WithStmt.java: Updated. + * die/Label.java: Updated. + * die/LexicalBlock.java: Updated. + * die/LoUser.java: Updated. + * die/Member.java: Updated. + * die/MIPSLoop.java: Updated. + * die/Module.java: Updated. + * die/MutableType.java: Updated. + * die/Namelist.java: Updated. + * die/NamelistItem.java: Updated. + * die/Namespace.java: Updated. + * die/PackedType.java: Updated. + * die/PartialUnit.java: Updated. + * die/PointerType.java: Updated. + * die/PtrToMemberType.java: Updated. + * die/ReferenceType.java: Updated. + * die/RestrictType.java: Updated. + * die/SetType.java: Updated. + * die/SharedType.java: Updated. + * die/StringType.java: Updated. + * die/StructureType.java: Updated. + * die/Subprogram.java: Updated. + * die/SubrangeType.java: Updated. + * die/SubroutineType.java: Updated. + * die/TemplateTypeParameter.java: Updated. + * die/TemplateValueParameter.java: Updated. + * die/ThrownType.java: Updated. + * die/TryBlock.java: Updated. + * die/Typedef.java: Updated. + * die/UnionType.java: Updated. + * die/UnspecifiedParameters.java: Updated. + * die/UnspecifiedType.java: Updated. + * die/Variable.java: Updated. + * die/AccessDeclaration.java: Updated. + * die/ArrayType.java: Updated. + * die/BaseType.java: Updated. + * die/CatchBlock.java: Updated. + * die/ClassTemplate.java: Updated. + * die/ClassType.java: Updated. + * die/CommonBlock.java: Updated. + * die/CommonInclusion.java: Updated. + * die/CompileUnit.java: Updated. + * die/Condition.java: Updated. + * die/Constant.java: Updated. + * die/ConstType.java: Updated. + * die/DwarfProcedure.java: Updated. + * die/EntryPoint.java: Updated. + * die/EnumerationType.java: Updated. + * die/Enumerator.java: Updated. + * die/FileType.java: Updated. + * die/FormalParameter.java: Updated. + * die/FormatLabel.java: Updated. + * die/Friend.java: Updated. + * die/FunctionTemplate.java: Updated. + * die/HiUser.java: Updated. + * die/ImportedDeclaration.java: Updated. + * die/ImportedModule.java: Updated. + * die/ImportedUnit.java: Updated. + * die/Inheritance.java: + * die/InlinedSubroutine.java: Updated. + * die/InterfaceType.java: Updated. + commit 6b6e12c6d2e496413deed9e819999eac41d5d913 Author: Sami Wagiaalla Date: Tue Dec 4 12:44:24 2007 -0500 swagiaal: implemented and tested Dwfl.getCompilationUnitModule. +2007-12-04 Sami Wagiaalla + + * TestDwfl.java (testGetCompliationUnitModule): New test. + (getCompliationUnitModule): New function. + * cni/Dwfl.cxx: implemented dwfl_cumodule(). + commit 02a3f7e9e6fb01704b55fcbb97574c655434ebd7 Author: Sami Wagiaalla Date: Tue Dec 4 11:45:39 2007 -0500 swagiaal: Added and tested DwarfDie.getCompilationUnit(). frysk-sys/lib/dwfl/ChangeLog +2007-12-04 Sami Wagiaalla + + * DwarfDie.java (getCompilationUnit): New. + * TestDwarfDie.java (testGetCompilationUnit): New test. + ----------------------------------------------------------------------- Summary of changes: frysk-sys/lib/dwfl/ChangeLog | 82 ++++++++++++++++++++ frysk-sys/lib/dwfl/DwarfDie.java | 37 +++++++--- frysk-sys/lib/dwfl/DwarfDieFactory.java | 8 +- frysk-sys/lib/dwfl/Dwfl.java | 8 ++- frysk-sys/lib/dwfl/TestDwarfDie.java | 40 ++++++++++ frysk-sys/lib/dwfl/TestDwfl.java | 18 ++++- frysk-sys/lib/dwfl/cni/Dwfl.cxx | 12 +++- frysk-sys/lib/dwfl/cni/DwflModule.cxx | 2 +- frysk-sys/lib/dwfl/die/AccessDeclaration.java | 6 +- frysk-sys/lib/dwfl/die/ArrayType.java | 6 +- frysk-sys/lib/dwfl/die/BaseType.java | 6 +- frysk-sys/lib/dwfl/die/CatchBlock.java | 6 +- frysk-sys/lib/dwfl/die/ClassTemplate.java | 6 +- frysk-sys/lib/dwfl/die/ClassType.java | 6 +- frysk-sys/lib/dwfl/die/CommonBlock.java | 6 +- frysk-sys/lib/dwfl/die/CommonInclusion.java | 6 +- frysk-sys/lib/dwfl/die/CompileUnit.java | 6 +- frysk-sys/lib/dwfl/die/Condition.java | 6 +- frysk-sys/lib/dwfl/die/ConstType.java | 6 +- frysk-sys/lib/dwfl/die/Constant.java | 6 +- frysk-sys/lib/dwfl/die/DwarfProcedure.java | 6 +- frysk-sys/lib/dwfl/die/EntryPoint.java | 6 +- frysk-sys/lib/dwfl/die/EnumerationType.java | 6 +- frysk-sys/lib/dwfl/die/Enumerator.java | 6 +- frysk-sys/lib/dwfl/die/FileType.java | 6 +- frysk-sys/lib/dwfl/die/FormalParameter.java | 6 +- frysk-sys/lib/dwfl/die/FormatLabel.java | 6 +- frysk-sys/lib/dwfl/die/Friend.java | 6 +- frysk-sys/lib/dwfl/die/FunctionTemplate.java | 6 +- frysk-sys/lib/dwfl/die/HiUser.java | 6 +- frysk-sys/lib/dwfl/die/ImportedDeclaration.java | 6 +- frysk-sys/lib/dwfl/die/ImportedModule.java | 6 +- frysk-sys/lib/dwfl/die/ImportedUnit.java | 6 +- frysk-sys/lib/dwfl/die/Inheritance.java | 6 +- frysk-sys/lib/dwfl/die/InlinedSubroutine.java | 6 +- frysk-sys/lib/dwfl/die/InterfaceType.java | 6 +- frysk-sys/lib/dwfl/die/Label.java | 6 +- frysk-sys/lib/dwfl/die/LexicalBlock.java | 6 +- frysk-sys/lib/dwfl/die/LoUser.java | 6 +- frysk-sys/lib/dwfl/die/MIPSLoop.java | 6 +- frysk-sys/lib/dwfl/die/Member.java | 6 +- frysk-sys/lib/dwfl/die/Module.java | 6 +- frysk-sys/lib/dwfl/die/MutableType.java | 6 +- frysk-sys/lib/dwfl/die/Namelist.java | 6 +- frysk-sys/lib/dwfl/die/NamelistItem.java | 6 +- frysk-sys/lib/dwfl/die/Namespace.java | 6 +- frysk-sys/lib/dwfl/die/PackedType.java | 6 +- frysk-sys/lib/dwfl/die/PartialUnit.java | 6 +- frysk-sys/lib/dwfl/die/PointerType.java | 6 +- frysk-sys/lib/dwfl/die/PtrToMemberType.java | 6 +- frysk-sys/lib/dwfl/die/ReferenceType.java | 6 +- frysk-sys/lib/dwfl/die/RestrictType.java | 6 +- frysk-sys/lib/dwfl/die/SetType.java | 6 +- frysk-sys/lib/dwfl/die/SharedType.java | 6 +- frysk-sys/lib/dwfl/die/StringType.java | 6 +- frysk-sys/lib/dwfl/die/StructureType.java | 6 +- frysk-sys/lib/dwfl/die/Subprogram.java | 6 +- frysk-sys/lib/dwfl/die/SubrangeType.java | 6 +- frysk-sys/lib/dwfl/die/SubroutineType.java | 6 +- frysk-sys/lib/dwfl/die/TemplateTypeParameter.java | 6 +- frysk-sys/lib/dwfl/die/TemplateValueParameter.java | 6 +- frysk-sys/lib/dwfl/die/ThrownType.java | 6 +- frysk-sys/lib/dwfl/die/TryBlock.java | 6 +- frysk-sys/lib/dwfl/die/Typedef.java | 6 +- frysk-sys/lib/dwfl/die/UnionType.java | 6 +- frysk-sys/lib/dwfl/die/UnspecifiedParameters.java | 6 +- frysk-sys/lib/dwfl/die/UnspecifiedType.java | 6 +- frysk-sys/lib/dwfl/die/Variable.java | 6 +- frysk-sys/lib/dwfl/die/Variant.java | 6 +- frysk-sys/lib/dwfl/die/VariantPart.java | 6 +- frysk-sys/lib/dwfl/die/VolatileType.java | 6 +- frysk-sys/lib/dwfl/die/WithStmt.java | 6 +- 72 files changed, 381 insertions(+), 210 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 1884fc3..4806cc3 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,85 @@ +2007-12-05 Sami Wagiaalla + + * TestDwarfDie.java (testGetModule): New Test. + * DwarfDie.java (DwarfDie): Changed constructor to take + DwflModule instead of Dwfl. + * DwarfDieFactory.java: Updated. + * die/Variant.java: Updated. + * die/VariantPart.java: Updated. + * die/VolatileType.java: Updated. + * die/WithStmt.java: Updated. + * die/Label.java: Updated. + * die/LexicalBlock.java: Updated. + * die/LoUser.java: Updated. + * die/Member.java: Updated. + * die/MIPSLoop.java: Updated. + * die/Module.java: Updated. + * die/MutableType.java: Updated. + * die/Namelist.java: Updated. + * die/NamelistItem.java: Updated. + * die/Namespace.java: Updated. + * die/PackedType.java: Updated. + * die/PartialUnit.java: Updated. + * die/PointerType.java: Updated. + * die/PtrToMemberType.java: Updated. + * die/ReferenceType.java: Updated. + * die/RestrictType.java: Updated. + * die/SetType.java: Updated. + * die/SharedType.java: Updated. + * die/StringType.java: Updated. + * die/StructureType.java: Updated. + * die/Subprogram.java: Updated. + * die/SubrangeType.java: Updated. + * die/SubroutineType.java: Updated. + * die/TemplateTypeParameter.java: Updated. + * die/TemplateValueParameter.java: Updated. + * die/ThrownType.java: Updated. + * die/TryBlock.java: Updated. + * die/Typedef.java: Updated. + * die/UnionType.java: Updated. + * die/UnspecifiedParameters.java: Updated. + * die/UnspecifiedType.java: Updated. + * die/Variable.java: Updated. + * die/AccessDeclaration.java: Updated. + * die/ArrayType.java: Updated. + * die/BaseType.java: Updated. + * die/CatchBlock.java: Updated. + * die/ClassTemplate.java: Updated. + * die/ClassType.java: Updated. + * die/CommonBlock.java: Updated. + * die/CommonInclusion.java: Updated. + * die/CompileUnit.java: Updated. + * die/Condition.java: Updated. + * die/Constant.java: Updated. + * die/ConstType.java: Updated. + * die/DwarfProcedure.java: Updated. + * die/EntryPoint.java: Updated. + * die/EnumerationType.java: Updated. + * die/Enumerator.java: Updated. + * die/FileType.java: Updated. + * die/FormalParameter.java: Updated. + * die/FormatLabel.java: Updated. + * die/Friend.java: Updated. + * die/FunctionTemplate.java: Updated. + * die/HiUser.java: Updated. + * die/ImportedDeclaration.java: Updated. + * die/ImportedModule.java: Updated. + * die/ImportedUnit.java: Updated. + * die/Inheritance.java: + * die/InlinedSubroutine.java: Updated. + * die/InterfaceType.java: Updated. + +2007-12-04 Sami Wagiaalla + + * TestDwfl.java (testGetCompliationUnitModule): New test. + (getCompliationUnitModule): New function. + * cni/Dwfl.cxx: implemented dwfl_cumodule(). + +2007-12-04 Sami Wagiaalla + + * DwarfDie.java (getCompilationUnit): New. + * TestDwarfDie.java (testGetCompilationUnit): New test. + 2007-12-03 Sami Wagiaalla * DwarfDie.java (getDwfl): renamed getParent to getDwfl. diff --git a/frysk-sys/lib/dwfl/DwarfDie.java b/frysk-sys/lib/dwfl/DwarfDie.java index 1693532..909fad7 100644 --- a/frysk-sys/lib/dwfl/DwarfDie.java +++ b/frysk-sys/lib/dwfl/DwarfDie.java @@ -47,17 +47,34 @@ abstract public class DwarfDie { private long pointer; private DwarfDie[] scopes; private int scopeIndex; - private Dwfl dwfl; + private DwflModule module; protected boolean manageDie = false; - protected DwarfDie(long pointer, Dwfl parent) { + protected DwarfDie(long pointer, DwflModule module) { this.pointer = pointer; - this.dwfl = parent; + this.module = module; } + protected DwflModule getModule(){ + return module; + } + + protected DwarfDie getCompilationUnit(){ + + if(this.getTag().equals(DwTag.COMPILE_UNIT)){ + return this; + } + + DwarfDie[] scopes = this.getScopesDie(); + if(!scopes[scopes.length -1].getTag().equals(DwTag.COMPILE_UNIT)){ + throw new RuntimeException("Could not retrieve CU of this die ["+this.getTag()+"]"); + } + return scopes[scopes.length -1]; + } + protected Dwfl getDwfl () { - return this.dwfl; + return this.module.getParent(); } public long getHighPC () { @@ -106,7 +123,7 @@ abstract public class DwarfDie { DwarfDieFactory factory = DwarfDieFactory.getFactory(); for(int i = 0; i < vals.length; i++) if(vals[i] != 0) - dies[i] = factory.makeDie(vals[i], this.dwfl); + dies[i] = factory.makeDie(vals[i], this.module); else dies[i] = null; @@ -123,7 +140,7 @@ abstract public class DwarfDie { DwarfDieFactory factory = DwarfDieFactory.getFactory(); for(int i = 0; i < vals.length; i++) { if(vals[i] != 0) - dies[i] = factory.makeDie(vals[i], this.dwfl); + dies[i] = factory.makeDie(vals[i], this.module); else dies[i] = null; } @@ -145,7 +162,7 @@ abstract public class DwarfDie { long val = get_scopevar(die_and_scope, vals, variable); if (val >= 0) { die = DwarfDieFactory.getFactory().makeDie(die_and_scope[0], - this.dwfl); + this.module); die.scopes = scopes; die.scopeIndex = (int)die_and_scope[1]; } @@ -222,7 +239,7 @@ abstract public class DwarfDie { DwarfDie die = null; long type = get_type(this.getPointer(), followTypeDef); if (type != 0) - die = DwarfDieFactory.getFactory().makeDie(type, this.dwfl); + die = DwarfDieFactory.getFactory().makeDie(type, this.module); return die; } @@ -255,7 +272,7 @@ abstract public class DwarfDie { long child = get_child(this.getPointer()); DwarfDie die = null; if (child != 0) - die = DwarfDieFactory.getFactory().makeDie(child, this.dwfl); + die = DwarfDieFactory.getFactory().makeDie(child, this.module); return die; } @@ -266,7 +283,7 @@ abstract public class DwarfDie { long sibling = get_sibling(this.getPointer()); DwarfDie die = null; if (sibling != 0) - die = DwarfDieFactory.getFactory().makeDie(sibling, this.dwfl); + die = DwarfDieFactory.getFactory().makeDie(sibling, this.module); return die; } diff --git a/frysk-sys/lib/dwfl/DwarfDieFactory.java b/frysk-sys/lib/dwfl/DwarfDieFactory.java index 28f1cee..37bfff0 100644 --- a/frysk-sys/lib/dwfl/DwarfDieFactory.java +++ b/frysk-sys/lib/dwfl/DwarfDieFactory.java @@ -77,7 +77,7 @@ public class DwarfDieFactory { Pattern pattern = Pattern.compile("_."); HashMap dieClasses = loadDies(); Class[] constructorArgTypes = new Class[] {Long.TYPE, - lib.dwfl.Dwfl.class}; + lib.dwfl.DwflModule.class}; for (int i = 0; i < tagEncodings.length; i++) { DwTag tag = tagEncodings[i]; int tagValue = tag.hashCode(); @@ -123,10 +123,10 @@ public class DwarfDieFactory { * Create a subclass of DwarfDie based on the tag in the Dwarf_Die object * pointed to by pointer. * @param pointer raw Dwarf_Die from libdw - * @param parent Dwfl object associated with the DIE, if any + * @param module Dwfl object associated with the DIE, if any * @return subclass of DwarfDie */ - public DwarfDie makeDie(long pointer, Dwfl parent) { + public DwarfDie makeDie(long pointer, DwflModule module) { int tag = DwarfDie.get_tag(pointer); Constructor constructor = (Constructor)constructorMap.get(new Integer(tag)); @@ -135,7 +135,7 @@ public class DwarfDieFactory { } try { return (DwarfDie)constructor.newInstance(new Object[] - {new Long(pointer), parent}); + {new Long(pointer), module}); } catch (InstantiationException e) { throw new DwarfException("creating tag " + tag, e); diff --git a/frysk-sys/lib/dwfl/Dwfl.java b/frysk-sys/lib/dwfl/Dwfl.java index 313a9f5..23aa7ce 100644 --- a/frysk-sys/lib/dwfl/Dwfl.java +++ b/frysk-sys/lib/dwfl/Dwfl.java @@ -89,7 +89,13 @@ public class Dwfl { * @return The module */ public native DwflModule getModule(long addr); - + + public DwflModule getCompliationUnitModule(DwarfDie cuDie){ + return new DwflModule(dwfl_cumodule(cuDie.getPointer()), this); + } + + private native long dwfl_cumodule(long cuDie); + public DwflLine getSourceLine (long addr) { long val = 0; try { diff --git a/frysk-sys/lib/dwfl/TestDwarfDie.java b/frysk-sys/lib/dwfl/TestDwarfDie.java index de0e3d0..ed2049c 100644 --- a/frysk-sys/lib/dwfl/TestDwarfDie.java +++ b/frysk-sys/lib/dwfl/TestDwarfDie.java @@ -61,4 +61,44 @@ public class TestDwarfDie extends TestCase { assertFalse("Does not have location attribute", die .hasAttribute(DwAt.LOCATION)); } + + + public void testGetCompilationUnit(){ + long pc = LocalMemory.getCodeAddr(); + Dwfl dwfl = new Dwfl(Pid.get()); + assertNotNull(dwfl); + + // get CUDIE + DwflDieBias bias = dwfl.getCompilationUnit(pc); + assertNotNull(bias); + + DwarfDie cuDie = bias.die; + assertNotNull(cuDie); + + DwarfDie die = cuDie; + + assertTrue("cudie returned", die.getCompilationUnit().getName().equals(cuDie.getName())); + + die = cuDie.getScopes(pc)[0]; + assertNotNull(die); + + assertTrue("cudie returned", die.getCompilationUnit().getName().equals(cuDie.getName())); + } + + public void testGetModule(){ + + Dwfl dwfl = new Dwfl(Pid.get()); + assertNotNull(dwfl); + long addr = LocalMemory.getCodeAddr(); + + DwarfDie cuDie = dwfl.getCompilationUnit(addr).die; + assertNotNull(cuDie); + + DwarfDie die = cuDie.getScopes(addr)[0]; + DwflModule dwflModule = die.getModule(); + assertNotNull(dwflModule); + + assertTrue("Found correct module", dwflModule.getName().contains("TestRunner")); + } + } diff --git a/frysk-sys/lib/dwfl/TestDwfl.java b/frysk-sys/lib/dwfl/TestDwfl.java index eb79d18..0236c48 100644 --- a/frysk-sys/lib/dwfl/TestDwfl.java +++ b/frysk-sys/lib/dwfl/TestDwfl.java @@ -42,8 +42,9 @@ package lib.dwfl; import java.io.File; import java.util.Iterator; import java.util.List; -import frysk.junit.TestCase; + import frysk.junit.Runner; +import frysk.junit.TestCase; import frysk.sys.Pid; import frysk.testbed.LocalMemory; @@ -216,4 +217,19 @@ public class TestDwfl } assertTrue(foundAddress); } + + public void testGetCompliationUnitModule() + { + Dwfl dwfl = new Dwfl(Pid.get()); + assertNotNull(dwfl); + long addr = LocalMemory.getCodeAddr(); + + DwarfDie cuDie = dwfl.getCompilationUnit(addr).die; + assertNotNull(cuDie); + + DwflModule dwflModule = dwfl.getCompliationUnitModule(cuDie); + + assertTrue("Found correct module", dwflModule.getName().contains("TestRunner")); + } + } diff --git a/frysk-sys/lib/dwfl/cni/Dwfl.cxx b/frysk-sys/lib/dwfl/cni/Dwfl.cxx index dc0c6a1..13418e2 100644 --- a/frysk-sys/lib/dwfl/cni/Dwfl.cxx +++ b/frysk-sys/lib/dwfl/cni/Dwfl.cxx @@ -240,7 +240,9 @@ lib::dwfl::Dwfl::dwfl_addrdie(jlong addr){ return NULL; lib::dwfl::DwflDieBias *retval = new lib::dwfl::DwflDieBias(); - retval->die = factory->makeDie((jlong) die, this); + + lib::dwfl::DwflModule* module = lib::dwfl::Dwfl::getModule(addr); + retval->die = factory->makeDie((jlong) die, module); retval->bias = (jlong) bias; return retval; @@ -260,3 +262,11 @@ lib::dwfl::Dwfl::getModule(jlong addr) return 0; return new lib::dwfl::DwflModule((jlong)module, this); } + +jlong +lib::dwfl::Dwfl::dwfl_cumodule(jlong cudie) +{ + Dwfl_Module* module = ::dwfl_cumodule((Dwarf_Die*)cudie); + return (jlong)module; +} + diff --git a/frysk-sys/lib/dwfl/cni/DwflModule.cxx b/frysk-sys/lib/dwfl/cni/DwflModule.cxx index 3a1113c..515632e 100644 --- a/frysk-sys/lib/dwfl/cni/DwflModule.cxx +++ b/frysk-sys/lib/dwfl/cni/DwflModule.cxx @@ -216,7 +216,7 @@ callback (Dwarf *dwarf, Dwarf_Global *gl, void* thisObject) if (dwarf_offdie (dwarf, gl->die_offset, die) == NULL){ throw new lib::dwfl::DwarfException(JvNewStringUTF("failed to get object die")); }else{ - lib::dwfl::DwarfDie* dwarfDie = dwfl->factory->makeDie((jlong)die, dwfl); + lib::dwfl::DwarfDie* dwarfDie = dwfl->factory->makeDie((jlong)die, dwflModule); dwflModule->pubNames->add(dwarfDie); } diff --git a/frysk-sys/lib/dwfl/die/AccessDeclaration.java b/frysk-sys/lib/dwfl/die/AccessDeclaration.java index 1b53aca..e1e5145 100644 --- a/frysk-sys/lib/dwfl/die/AccessDeclaration.java +++ b/frysk-sys/lib/dwfl/die/AccessDeclaration.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; import lib.dwfl.DieVisitor; +import lib.dwfl.DwarfDie; +import lib.dwfl.DwflModule; /** * Wrapper around Dwarf DW_TAG_access_declaration DIE @@ -49,7 +49,7 @@ import lib.dwfl.DieVisitor; public class AccessDeclaration extends DwarfDie { - public AccessDeclaration(long pointer, Dwfl parent) + public AccessDeclaration(long pointer, DwflModule parent) { super(pointer, parent); } diff --git a/frysk-sys/lib/dwfl/die/ArrayType.java b/frysk-sys/lib/dwfl/die/ArrayType.java index 745ca2b..052a6a0 100644 --- a/frysk-sys/lib/dwfl/die/ArrayType.java +++ b/frysk-sys/lib/dwfl/die/ArrayType.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; import lib.dwfl.DieVisitor; +import lib.dwfl.DwarfDie; +import lib.dwfl.DwflModule; /** * Wrapper around Dwarf DW_TAG_array_type DIE @@ -49,7 +49,7 @@ import lib.dwfl.DieVisitor; public class ArrayType extends DwarfDie { - public ArrayType(long pointer, Dwfl parent) + public ArrayType(long pointer, DwflModule parent) { super(pointer, parent); } diff --git a/frysk-sys/lib/dwfl/die/BaseType.java b/frysk-sys/lib/dwfl/die/BaseType.java index 5dd6dc9..c8cd92b 100644 --- a/frysk-sys/lib/dwfl/die/BaseType.java +++ b/frysk-sys/lib/dwfl/die/BaseType.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; import lib.dwfl.DieVisitor; +import lib.dwfl.DwarfDie; +import lib.dwfl.DwflModule; /** * Wrapper around Dwarf DW_TAG_base_type DIE @@ -49,7 +49,7 @@ import lib.dwfl.DieVisitor; public class BaseType extends DwarfDie { - public BaseType(long pointer, Dwfl parent) + public BaseType(long pointer, DwflModule parent) { super(pointer, parent); } diff --git a/frysk-sys/lib/dwfl/die/CatchBlock.java b/frysk-sys/lib/dwfl/die/CatchBlock.java index 0b464c3..902f617 100644 --- a/frysk-sys/lib/dwfl/die/CatchBlock.java +++ b/frysk-sys/lib/dwfl/die/CatchBlock.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; import lib.dwfl.DieVisitor; +import lib.dwfl.DwarfDie; +import lib.dwfl.DwflModule; /** * Wrapper around Dwarf DW_TAG_catch_block DIE @@ -49,7 +49,7 @@ import lib.dwfl.DieVisitor; public class CatchBlock extends DwarfDie { - public CatchBlock(long pointer, Dwfl parent) + public CatchBlock(long pointer, DwflModule parent) { super(pointer, parent); } diff --git a/frysk-sys/lib/dwfl/die/ClassTemplate.java b/frysk-sys/lib/dwfl/die/ClassTemplate.java index fb004ef..013ae3f 100644 --- a/frysk-sys/lib/dwfl/die/ClassTemplate.java +++ b/frysk-sys/lib/dwfl/die/ClassTemplate.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; import lib.dwfl.DieVisitor; +import lib.dwfl.DwarfDie; +import lib.dwfl.DwflModule; /** * Wrapper around Dwarf DW_TAG_class_template DIE @@ -49,7 +49,7 @@ import lib.dwfl.DieVisitor; public class ClassTemplate extends DwarfDie { - public ClassTemplate(long pointer, Dwfl parent) + public ClassTemplate(long pointer, DwflModule parent) { super(pointer, parent); } diff --git a/frysk-sys/lib/dwfl/die/ClassType.java b/frysk-sys/lib/dwfl/die/ClassType.java index fcd4293..c04750b 100644 --- a/frysk-sys/lib/dwfl/die/ClassType.java +++ b/frysk-sys/lib/dwfl/die/ClassType.java @@ -39,9 +39,9 @@ package lib.dwfl.die; -import lib.dwfl.DwarfDie; -import lib.dwfl.Dwfl; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 6 17:02:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 06 Dec 2007 17:02:00 -0000 Subject: [SCM] master: Require an up-to-date GCJ, or GCJ. Message-ID: <20071206170201.27164.qmail@sourceware.org> The branch, master has been updated via a53d055d1c2501c03156b10e493a0f39126b7184 (commit) from e84fae5b93e545c70551225ae9c14907f1433ad6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a53d055d1c2501c03156b10e493a0f39126b7184 Author: Andrew Cagney Date: Thu Dec 6 12:01:50 2007 -0500 Require an up-to-date GCJ, or GCJ. frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (JAVAC): Set to either GCJ or $ECJ_JAR. (ECJ): Delete variable. (--enable-jar-compile): Use "yes" and "no", not "true" and "false. (JAVAC_IS): New variable; either gcj or ecj. (HAVE_ECJ): Delete. * Makefile.rules (checked-ecj-compile): Delete. (.g.antlred): Use $(JAVAC) and $(JAVAC_IS) ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 10 ++++ frysk-common/Makefile.rules | 54 ++++--------------- frysk-common/frysk-common.ac | 122 ++++++++++++++++++++++-------------------- 3 files changed, 84 insertions(+), 102 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 3ee3af2..6fc3df6 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,13 @@ +2007-12-06 Andrew Cagney + + * frysk-common.ac (JAVAC): Set to either GCJ or $ECJ_JAR. + (ECJ): Delete variable. + (--enable-jar-compile): Use "yes" and "no", not "true" and "false. + (JAVAC_IS): New variable; either gcj or ecj. + (HAVE_ECJ): Delete. + * Makefile.rules (checked-ecj-compile): Delete. + (.g.antlred): Use $(JAVAC) and $(JAVAC_IS) + 2007-11-27 Andrew Cagney * Makefile.rules (GEN_GCJ_SO_DIRS): Fix typo, match -L%. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index 84ae020..d696ac2 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -524,23 +524,20 @@ SUFFIXES += .antlred .g echo "Parsing compiler warnings from $$b..." ; \ rm -f $$t/*.antlr-fixes ; \ rm -rf $$t/classes ; mkdir -p $$t/classes ; \ - if test "x@HAVE_ECJ_TRUE@" = x ; then \ - $(GIJ) 2>&1 \ - --classpath $(ECJ_JAR):$(CLASSPATH) \ - org.eclipse.jdt.internal.compiler.batch.Main \ - \ + case "$(JAVAC_IS)" in \ + gcj) $(JAVAC) $(JAVACFLAGS) \ -d $$t/classes \ + -I $$t \ + $$t/$$d/$$b.java \ + 2>&1 || true ;; \ + ecj) $(JAVAC) \ + -d $$t/classes \ -warn:+semicolon \ -sourcepath $$t:$(SOURCEPATH) \ -classpath $(CLASSPATH) \ - $$t/$$d/$$b.java || true ; \ - else \ - $(GCJCOMPILE) 2>&1 \ - -C \ - -I $$t \ - -d $$t/classes \ - $$t/$$d/$$b.java || true ; \ - fi | ( \ + $$t/$$d/$$b.java \ + 2>&1 || true ;; \ + esac | ( \ cd $$t ; \ $(AWK) -f @abs_srcdir@/common/antlr-warnings.awk \ ) ; \ @@ -668,37 +665,6 @@ ${GEN_DIRNAME}.jar: files-java.list | $(JAR) -@ -cf $@ mv $(JAVAROOT)/$@ $@ -# When ECJ is available, use it as an extra lint pass. GCJ has the -# habit of silently compiling invalid Java code (garbage in, garbage -# out), fortunately ECJ rejects it. - -# This is part of all-local, since, if this fails the build won't fly. - -all-local: checked-ecj-compile -CLEANFILES += checked-ecj-compile files-java-gen.list -CLEANDIRS += ecj -checked-ecj-compile: files-java.list $(if $(GEN_DIRS),$(GEN_DIRNAME).jar) - rm -rf ecj - mkdir -p ecj -if HAVE_ECJ - echo Compiling all the generated files. - ( test -s files-java.list && $(GIJ) \ - --classpath $(ECJ_JAR):$(CLASSPATH) \ - org.eclipse.jdt.internal.compiler.batch.Main \ - \ - -d ecj \ - -warn:+semicolon \ - -sourcepath $(SOURCEPATH) \ - -classpath $(CLASSPATH) \ - @files-java.list \ - 2>&1 ) | tee $@.log - if test -s $@.log ; \ - then rm $@.log ; false ; \ - fi - rm -f $@.log $(top_builddir)/files-{java,genjava}.list.ecj -endif - touch $@ - # Check that everything, well except for a few exceptions, is using # frysk.junit and not the junit stuff directly. Depend on the # directories .jar file as that is updated when ever any java files diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index 3897b0b..f72c24a 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -99,56 +99,78 @@ AC_CHECK_PROGS([JV_SCAN], [jv-scan4 jv-scan], [no]) AM_CONDITIONAL([HAVE_JV_SCAN], test x"${JV_SCAN}" != xno) -# Always use GCJ as the Java compiler. While other, possibly better, -# alternatives might be available, using those alternatives can (and -# did) lead to problems such as: developers missing problems in the -# base-line build compiler; and developers testing code different to -# what will be shipped. Having said that, do allow people to override -# this. - -JAVAC="${JAVAC:-$GCJ -C}" -AC_SUBST([JAVAC]) +# autoconf doesn't yet know about GCJ, so define it ourselves. -# autoconf doesn't yet know about JAVA, so define it ourselves. -m4_define([AC_LANG(JAVA)], +m4_define([AC_LANG(GCJ)], [ac_ext=java ac_objext=class -ac_compile='$JAVAC $JAVACFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' +ac_compile='$GCJ $GCJFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' ac_java_werror_flag=no ]) -m4_defun([AC_LANG_COMPILER(JAVA)], []) -m4_define([_AC_LANG_ABBREV(JAVA)], [java]) - -AC_LANG(JAVA) +m4_defun([AC_LANG_COMPILER(GCJ)], []) +m4_define([_AC_LANG_ABBREV(GCJ)], [java]) +AC_LANG(GCJ) -# Only add -warn flags when the compiler is known to be ECJ. -AC_MSG_CHECKING([java flags]) -case "${JAVAC}" in -gcj* | */gcj* ) JAVACFLAGS='-g -classpath $(SOURCEPATH):$(CLASSPATH)' ;; -ecj | */ecj ) JAVACFLAGS='-warn:+semicolon -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)' ;; -* ) JAVACFLAGS='-g -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)' ;; -esac -AC_SUBST([JAVACFLAGS]) -AC_MSG_RESULT(${JAVACFLAGS}) -# See if -fsource=1.4 can be added, if not only use the warning flags. -# If it is available also use it for the GCJFLAGS. +# See gcj accepts -fsource=1.4, if not only use the warning flags. If +# it is available also use it for the GCJFLAGS. -AC_MSG_CHECKING([whether ${JAVAC} accepts -fsource=1.4]) +AC_MSG_CHECKING([whether ${GCJ} accepts -fsource=1.4]) if test "x$ac_env_GCJFLAGS_set" == xset ; then GCJ_FSOURCE="no" AC_MSG_RESULT([not needed]) else - JAVACFLAGS_WARN=$JAVACFLAGS - JAVACFLAGS="$JAVACFLAGS -fsource=1.4" + GCJFLAGS_WARN=$GCJFLAGS + GCJFLAGS="$GCJFLAGS -fsource=1.4" AC_COMPILE_IFELSE([public class conftest{}], [GCJ_FSOURCE="yes" GCJFLAGS="$GCJFLAGS -fsource=1.4"], [GCJ_FSOURCE="no" - JAVACFLAGS=$JAVACFLAGS_WARN]) + GCJFLAGS=$GCJFLAGS_WARN]) AC_MSG_RESULT([${GCJ_FSOURCE}]) fi + +# Check for the ECJ compiler. + +AC_MSG_CHECKING([ecj.jar]) +ECJ_JAR=${ECJ_JAR:-/usr/share/java/eclipse-ecj.jar} +AC_SUBST([ECJ_JAR]) +AC_MSG_RESULT(${ECJ_JAR}) + + +# Two possible compilers: either GCJ (wrapper round ECJ); or ECJ. In +# the latter case, need to explicitly run compiler from within the GIJ +# runtime so that ECJ sees the classpath environment, in particular +# things like gnu.gcj.RawDataManaged. + +AC_MSG_CHECKING([JAVAC]) +if test x"${JAVAC}" = x ; then + if test "x${GCJ_FSOURCE}" = xyes ; then + JAVAC_IS=gcj + JAVAC="\$(GCJ) -C" + elif test "x${ECJ_JAR}" != xno ; then + JAVAC_IS=ecj + JAVAC="\$(GIJ) --classpath \$(ECJ_JAR):\$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main" + else + AC_MSG_ERROR([no java compiler]) + fi +fi +AC_SUBST([JAVAC]) +AC_SUBST([JAVAC_IS]) +AC_MSG_RESULT(${JAVAC}) + + +# Only add -warn flags when the compiler is known to be ECJ. +AC_MSG_CHECKING([java flags]) +case "${JAVAC_IS}" in + gcj) JAVACFLAGS='-g -classpath $(SOURCEPATH):$(CLASSPATH)' ;; + ecj) JAVACFLAGS='-warn:+semicolon -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)' ;; +esac +AC_SUBST([JAVACFLAGS]) +AC_MSG_RESULT(${JAVACFLAGS}) + + # Some versions of gcj don't support -Wall. Some versions generate # good warnings without it. So explictily test for it. @@ -156,7 +178,7 @@ AC_MSG_CHECKING([whether ${JAVAC} accepts -Wall]) if test "x$ac_env_GCJFLAGS_set" == xset ; then GCJ_WALL=no AC_MSG_RESULT([not needed]) -elif test "x${GCJ_FSOURCE}" == xyes ; then +elif test x"${JAVAC_IS}" = xgcj ; then # Newer compilers have a good default set of warnings so do # not need -Wall. However, older GCJs barf on stray # semicolons so always check for them to help with @@ -164,36 +186,20 @@ elif test "x${GCJ_FSOURCE}" == xyes ; then GCJ_WALL=-Wextraneous-semicolon JAVACFLAGS="$JAVACFLAGS ${GCJ_WALL}" GCJFLAGS="$GCJFLAGS ${GCJ_WALL}" - AC_MSG_RESULT([${GCJ_WALL}]) -else - JAVACFLAGS_WARN=$JAVACFLAGS - JAVACFLAGS="$JAVACFLAGS -Wall" - AC_COMPILE_IFELSE([public class conftest{}], - [GCJ_WALL=yes - GCJFLAGS="$GCJFLAGS -Wall"], - [GCJ_WALL=no - JAVACFLAGS=$JAVACFLAGS_WARN]) - AC_MSG_RESULT([${GCJ_WALL}]) +else + GCJ_WALL=no fi +AC_MSG_RESULT([${GCJ_WALL}]) + # Always use GIJ as the byte code interpreter. java programs, run # during the build, need to see the GNU Java environment. That -# environment classes such as gnu.gcj.RawData which can be found using -# reflection. +# environment contains classes such as gnu.gcj.RawData which can be +# found using reflection. JAVA="${JAVA:-$GIJ}" AC_SUBST([JAVA]) -# Check for the ECJ compiler. If available, enable rules that push -# all the java code through that compiler. Doing this adds an -# additional (but optional) code check -- ECJ tends to find more -# errors than GCJ. Ignore when gcj support -fsource since then it -# already uses a source -> byte code compiler that is sane. - -ECJ_JAR=${ECJ_JAR:-/usr/share/java/eclipse-ecj.jar} -AC_SUBST([ECJ_JAR]) -AC_CHECK_PROGS([ECJ], [ecj], [no]) -AM_CONDITIONAL(HAVE_ECJ, test x"${ECJ}" != xno -a x"${GCJ_FSOURCE}" != xyes) # Check for the availablity of fig2dev @@ -270,8 +276,8 @@ AC_ARG_WITH(libopcodes, AC_ARG_ENABLE([jar-compile], [ --enable-jar-compile Enable compilation of jars], [case "${enableval}" in - yes) jar_compile=true ;; - no) jar_compile=false;; + yes) jar_compile=yes ;; + no) jar_compile=no;; *) AC_MSG_ERROR([bad value ${enableval} for --enable-jar-compile]) ;; - esac],[jar_compile=false]) -AM_CONDITIONAL([JAR_COMPILE], [test x$jar_compile = xtrue]) + esac],[jar_compile=no]) +AM_CONDITIONAL([JAR_COMPILE], [test x$jar_compile = xyes]) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 6 17:22:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 06 Dec 2007 17:22:00 -0000 Subject: [SCM] master: Pass -1.4 to ECJ. Message-ID: <20071206172240.11526.qmail@sourceware.org> The branch, master has been updated via e15c87d557c15d6417d9065e2f6603be8d880c95 (commit) from a53d055d1c2501c03156b10e493a0f39126b7184 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e15c87d557c15d6417d9065e2f6603be8d880c95 Author: Andrew Cagney Date: Thu Dec 6 11:22:23 2007 -0600 Pass -1.4 to ECJ. frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (JAVAC): Pass -1.4 to ECJ compiler. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 4 ++++ frysk-common/frysk-common.ac | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 6fc3df6..51b8530 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,7 @@ +2007-12-06 Andrew Cagney + + * frysk-common.ac (JAVAC): Pass -1.4 to ECJ compiler. + 2007-12-06 Andrew Cagney * frysk-common.ac (JAVAC): Set to either GCJ or $ECJ_JAR. diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index f72c24a..1dbd199 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -151,7 +151,7 @@ if test x"${JAVAC}" = x ; then JAVAC="\$(GCJ) -C" elif test "x${ECJ_JAR}" != xno ; then JAVAC_IS=ecj - JAVAC="\$(GIJ) --classpath \$(ECJ_JAR):\$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main" + JAVAC="\$(GIJ) --classpath \$(ECJ_JAR):\$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main -1.4" else AC_MSG_ERROR([no java compiler]) fi hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 6 22:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 06 Dec 2007 22:56:00 -0000 Subject: [SCM] master: Implement a really simple logger package. Message-ID: <20071206225656.18982.qmail@sourceware.org> The branch, master has been updated via b752273a412939b9d582ee4cf6b8d419dc956909 (commit) from e15c87d557c15d6417d9065e2f6603be8d880c95 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b752273a412939b9d582ee4cf6b8d419dc956909 Author: Andrew Cagney Date: Thu Dec 6 17:56:44 2007 -0500 Implement a really simple logger package. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/rsl/ChangeLog | 13 ++ frysk-sys/frysk/rsl/Level.mkenum | 3 + frysk-sys/frysk/rsl/Log.java | 165 ++++++++++++++++++++ .../frysk/rsl/TestLog.java | 70 ++++++--- frysk-sys/frysk/rsl/package.html | 24 +++ 5 files changed, 252 insertions(+), 23 deletions(-) create mode 100644 frysk-sys/frysk/rsl/ChangeLog create mode 100644 frysk-sys/frysk/rsl/Level.mkenum create mode 100644 frysk-sys/frysk/rsl/Log.java copy frysk-core/frysk/isa/TestRegisters.java => frysk-sys/frysk/rsl/TestLog.java (60%) create mode 100644 frysk-sys/frysk/rsl/package.html First 500 lines of diff: diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog new file mode 100644 index 0000000..48622a0 --- /dev/null +++ b/frysk-sys/frysk/rsl/ChangeLog @@ -0,0 +1,13 @@ +2007-12-06 Andrew Cagney + + New directory. + * Log.java: New file. + * TestLog.java: New file. + * Level.mkenum: New file. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/frysk-sys/frysk/rsl/Level.mkenum b/frysk-sys/frysk/rsl/Level.mkenum new file mode 100644 index 0000000..5deb651 --- /dev/null +++ b/frysk-sys/frysk/rsl/Level.mkenum @@ -0,0 +1,3 @@ +NONE 0 +FINE 1 +FINEST 2 diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java new file mode 100644 index 0000000..9bbfcdf --- /dev/null +++ b/frysk-sys/frysk/rsl/Log.java @@ -0,0 +1,165 @@ +// This file is part of the program FRYSK. +// +// Copyright 2007, Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.rsl; + +import java.io.PrintStream; +import java.util.HashMap; +import java.util.Iterator; + +/** + * Generate log information when enabled. + */ +public final class Log { + + private int level; + private final String path; + private Log(String path, Log parent) { + this.path = path; + this.level = parent.level; + } + /** + * Create a root logger; package private so that test code can + * create their own root logger. + */ + Log() { + this.level = 0; + this.path = ""; + } + + public String toString() { + return ("{" + super.toString() + + ",path=" + path + + ",level=" + level + + "}"); + } + + private final HashMap children = new HashMap(); + public synchronized final Log set(Level level) { + this.level = level.intValue(); + for (Iterator i = children.values().iterator(); i.hasNext(); ) { + Log child = (Log)i.next(); + child.set(level); + } + return this; + } + public Level level() { + return Level.valueOf(level); + } + + /** + * POS starts at -1, then points at "." or the end of the name. + */ + synchronized final Log get(String path, int pos) { + if (pos >= path.length()) + // Reached end if the string. + return this; + // Split + int dot = path.indexOf(".", pos + 1); + if (dot < 0) + dot = path.length(); + String name = path.substring(pos + 1, dot); + Log child = (Log)children.get(name); + if (child == null) { + child = new Log(path.substring(0, dot), this); + children.put(name, child); + } + return child.get(path, dot); + } + + private static final Log root = new Log(); + public static Log get(String klass) { + return root.get(klass, -1); + } + public static Log get(Class klass) { + return root.get(klass.getName(), -1); + } + + // Static? + private static PrintStream out = System.out; + static void set(PrintStream out) { + Log.out = out; + } + + private void prefix() { + out.print(path); + out.print(": "); + } + + private void prefix(Object o) { + out.print(path); + out.print("["); + out.print(o.toString()); + out.print("]: "); + } + + private void postfix() { + out.println(); + } + + // Add at will and on demand. + private void log(String s1) { + prefix(); + out.print(s1); + postfix(); + } + public final void fine(String s1) { + log(s1); + } + public final void finest(String s1) { + log(s1); + } + + // Add at will and on demand. + private void log(Object self, String s1) { + prefix(self); + out.print(s1); + postfix(); + } + public final void fine(Object self, String s1) { + if (level < Level.FINE_) + return; + log(self, s1); + } + public final void finest(Object self, String s1) { + if (level < Level.FINEST_) + return; + log(self, s1); + } +} diff --git a/frysk-core/frysk/isa/TestRegisters.java b/frysk-sys/frysk/rsl/TestLog.java similarity index 60% copy from frysk-core/frysk/isa/TestRegisters.java copy to frysk-sys/frysk/rsl/TestLog.java index 7fc0d44..88f4eef 100644 --- a/frysk-core/frysk/isa/TestRegisters.java +++ b/frysk-sys/frysk/rsl/TestLog.java @@ -1,11 +1,11 @@ // This file is part of the program FRYSK. -// +// // Copyright 2007, Red Hat Inc. -// +// // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. -// +// // FRYSK is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @@ -37,42 +37,66 @@ // version and license this file solely under the GPL without // exception. -package frysk.isa; +package frysk.rsl; import frysk.junit.TestCase; /** - * The set of registers belonging to an ISA. + * Testlogging that is a sub-class of this directory. */ -public class TestRegisters extends TestCase { - private Registers regs; +public class TestLog extends TestCase { + //private static final Log log = Log.get(TestCase.class).set(Level.FINE); + + private Log root; public void setUp() { - regs = new IA32Registers(); + root = new Log(); } public void tearDown() { - regs = null; + root = null; + } + private Log get(String path) { + return root.get(path, -1); } - public void testGetGroup() { - assertEquals("getGroup", IA32Registers.REGS_GROUP, - regs.getGroup("regs")); + public void testRoot() { + //log.fine(this, "hello"); + assertNotNull("root", root); } - public void testGetRegister() { - assertEquals("getGroup", IA32Registers.FS, - regs.getRegister("fs")); + public void testGetSelf() { + Log self = get("self"); + assertNotNull("self", self); } - public void testGetGroupNames() { - assertEquals("getGroupNames", - new String[] { - "regs", "float", "vector", "segment" - }, regs.getGroupNames()); + public void testPeers() { + Log lhs = get("the.lhs"); + Log rhs = get("the.rhs"); + assertNotNull("the.lhs", lhs); + assertNotNull("the.rhs", rhs); + assertTrue("lhs != rhs", lhs != rhs); + assertEquals("the.lhs", lhs, get("the.lhs")); + assertEquals("the.rhs", rhs, get("the.rhs")); } - public void testGeneralRegisterGroup() { - assertEquals("getGeneralRegisterGroup", IA32Registers.REGS_GROUP, - regs.getGeneralRegisterGroup()); + private void checkLevel(String path, Level level) { + assertEquals("level " + path, level, get(path).level()); + } + private void set(String path, Level level) { + get(path).set(level); } + public void testLeveling() { + // create a tree + get("the.lower.left.hand.side"); + get("the.lower.right.hand.side"); + // set a level + set("the.lower.left", Level.FINE); + checkLevel("the", Level.NONE); + checkLevel("the.lower", Level.NONE); + checkLevel("the.lower.left", Level.FINE); + checkLevel("the.lower.left.hand", Level.FINE); + checkLevel("the.lower.left.hand.side", Level.FINE); + checkLevel("the.lower.right", Level.NONE); + } + } diff --git a/frysk-sys/frysk/rsl/package.html b/frysk-sys/frysk/rsl/package.html new file mode 100644 index 0000000..d93c3d3 --- /dev/null +++ b/frysk-sys/frysk/rsl/package.html @@ -0,0 +1,24 @@ + + + +This package provides a really simple logger mechanism. + +

    Overview

    + +The {@link frysk.rsl} package provides the client with a really simple +logging mechanism. + +

    + +Create a logger using: +

    +private final Log log = Log.get(MyClass.class);
    +
    +and use it with: +
    +log.fine("a message"); // static
    +log.finest(this, "a message"); // dynamic
    +
    + + + hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 7 01:55:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 07 Dec 2007 01:55:00 -0000 Subject: [SCM] master: Fix missing -fsource=1.4 when .java.h: and JAVAC=GCJ. Message-ID: <20071207015532.15278.qmail@sourceware.org> The branch, master has been updated via 165cdef652b84c712b7d6ade77608d538ec7a02b (commit) from b752273a412939b9d582ee4cf6b8d419dc956909 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 165cdef652b84c712b7d6ade77608d538ec7a02b Author: Andrew Cagney Date: Thu Dec 6 20:54:45 2007 -0500 Fix missing -fsource=1.4 when .java.h: and JAVAC=GCJ. frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (GCJ_FSOURCE): Delete. (AC_LANG(JAVA)): Replace AC_LANG(GCJ). (JAVA_IS): Re-implement using AC_COMPILE_IFELSE. (GCJ_WALL): Default to adding -Wall. * Makefile.rules (.java.h): Use JAVAC. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 8 +++ frysk-common/Makefile.rules | 2 +- frysk-common/frysk-common.ac | 102 +++++++++++++++-------------------------- 3 files changed, 46 insertions(+), 66 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 51b8530..7be00a9 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,11 @@ +2007-12-06 Andrew Cagney + + * frysk-common.ac (GCJ_FSOURCE): Delete. + (AC_LANG(JAVA)): Replace AC_LANG(GCJ). + (JAVA_IS): Re-implement using AC_COMPILE_IFELSE. + (GCJ_WALL): Default to adding -Wall. + * Makefile.rules (.java.h): Use JAVAC. + 2007-12-06 Andrew Cagney * frysk-common.ac (JAVAC): Pass -1.4 to ECJ compiler. diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules index d696ac2..3b9e075 100644 --- a/frysk-common/Makefile.rules +++ b/frysk-common/Makefile.rules @@ -360,7 +360,7 @@ $(GEN_SOURCENAME)/JUnitTests.java: files-java.list tmpdir=$$b.tmp ; \ rm -rf $$tmpdir ; \ mkdir -p $$tmpdir ; \ - $(GCJCOMPILE) -C -d $$tmpdir '$<' || exit 1 ; \ + $(JAVAC) $(JAVACFLAGS) -d $$tmpdir '$<' || exit 1 ; \ classes=`cd $$tmpdir; find $$d/$$b*.class \ -name '*\$$[0-9]*' -prune \ -o -name $$b.class -print \ diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index 1dbd199..3db1dd3 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -99,38 +99,6 @@ AC_CHECK_PROGS([JV_SCAN], [jv-scan4 jv-scan], [no]) AM_CONDITIONAL([HAVE_JV_SCAN], test x"${JV_SCAN}" != xno) -# autoconf doesn't yet know about GCJ, so define it ourselves. - -m4_define([AC_LANG(GCJ)], -[ac_ext=java -ac_objext=class -ac_compile='$GCJ $GCJFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' -ac_java_werror_flag=no -]) -m4_defun([AC_LANG_COMPILER(GCJ)], []) -m4_define([_AC_LANG_ABBREV(GCJ)], [java]) -AC_LANG(GCJ) - - -# See gcj accepts -fsource=1.4, if not only use the warning flags. If -# it is available also use it for the GCJFLAGS. - -AC_MSG_CHECKING([whether ${GCJ} accepts -fsource=1.4]) -if test "x$ac_env_GCJFLAGS_set" == xset ; then - GCJ_FSOURCE="no" - AC_MSG_RESULT([not needed]) -else - GCJFLAGS_WARN=$GCJFLAGS - GCJFLAGS="$GCJFLAGS -fsource=1.4" - AC_COMPILE_IFELSE([public class conftest{}], - [GCJ_FSOURCE="yes" - GCJFLAGS="$GCJFLAGS -fsource=1.4"], - [GCJ_FSOURCE="no" - GCJFLAGS=$GCJFLAGS_WARN]) - AC_MSG_RESULT([${GCJ_FSOURCE}]) -fi - - # Check for the ECJ compiler. AC_MSG_CHECKING([ecj.jar]) @@ -139,55 +107,59 @@ AC_SUBST([ECJ_JAR]) AC_MSG_RESULT(${ECJ_JAR}) +# autoconf doesn't yet know about JAVAC, so define it ourselves. + +m4_define([AC_LANG(JAVAC)], +[ac_ext=java +ac_objext=class +ac_compile='$JAVAC $JAVACFLAGS conftest.$ac_ext >&AS_MESSAGE_LOG_FD' +ac_java_werror_flag=no +]) +m4_defun([AC_LANG_COMPILER(JAVAC)], []) +m4_define([_AC_LANG_ABBREV(JAVAC)], [java]) +AC_LANG(JAVAC) + + # Two possible compilers: either GCJ (wrapper round ECJ); or ECJ. In # the latter case, need to explicitly run compiler from within the GIJ # runtime so that ECJ sees the classpath environment, in particular -# things like gnu.gcj.RawDataManaged. - -AC_MSG_CHECKING([JAVAC]) -if test x"${JAVAC}" = x ; then - if test "x${GCJ_FSOURCE}" = xyes ; then - JAVAC_IS=gcj - JAVAC="\$(GCJ) -C" - elif test "x${ECJ_JAR}" != xno ; then - JAVAC_IS=ecj - JAVAC="\$(GIJ) --classpath \$(ECJ_JAR):\$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main -1.4" - else - AC_MSG_ERROR([no java compiler]) - fi -fi -AC_SUBST([JAVAC]) -AC_SUBST([JAVAC_IS]) -AC_MSG_RESULT(${JAVAC}) +# things like gnu.gcj.RawDataManaged. Start out assuming GCJ (with +# the -fsource=1.4 flag), if that fails, fall back to ECJ. +# See gcj accepts -fsource=1.4, if not only use the warning flags. If +# it is available also use it for the GCJFLAGS. -# Only add -warn flags when the compiler is known to be ECJ. -AC_MSG_CHECKING([java flags]) -case "${JAVAC_IS}" in - gcj) JAVACFLAGS='-g -classpath $(SOURCEPATH):$(CLASSPATH)' ;; - ecj) JAVACFLAGS='-warn:+semicolon -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)' ;; -esac +AC_MSG_CHECKING([for working java compiler]) +JAVAC=${JAVAC:-${GCJ} -C -fsource=1.4} +JAVACFLAGS=${JAVACFLAGS:-${GCJFLAGS}} +AC_COMPILE_IFELSE([public class conftest{}], + [JAVAC_IS=gcj], + [JAVAC_IS=ecj + JAVAC='$(GIJ) --classpath $(ECJ_JAR):$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main -1.4' + JAVACFLAGS='-warn:+semicolon -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)']) +AC_SUBST([JAVAC]) AC_SUBST([JAVACFLAGS]) -AC_MSG_RESULT(${JAVACFLAGS}) - +AC_SUBST([JAVAC_IS]) +AC_MSG_RESULT([${JAVAC_IS} ($JAVAC)]) # Some versions of gcj don't support -Wall. Some versions generate # good warnings without it. So explictily test for it. -AC_MSG_CHECKING([whether ${JAVAC} accepts -Wall]) +AC_MSG_CHECKING([whether GCJ needs -Wall]) if test "x$ac_env_GCJFLAGS_set" == xset ; then - GCJ_WALL=no - AC_MSG_RESULT([not needed]) + GCJ_WALL="not needed" elif test x"${JAVAC_IS}" = xgcj ; then - # Newer compilers have a good default set of warnings so do - # not need -Wall. However, older GCJs barf on stray - # semicolons so always check for them to help with - # compatibility. + # A newer GCJ (using it for JAVAC) which has a good + # default set of warnings so do not need -Wall. However, + # older GCJs barf on stray semicolons so always check for them + # to help with compatibility. GCJ_WALL=-Wextraneous-semicolon JAVACFLAGS="$JAVACFLAGS ${GCJ_WALL}" GCJFLAGS="$GCJFLAGS ${GCJ_WALL}" else - GCJ_WALL=no + # Older GCJ (not using it for JAVAC) need the full gamit. + GCJ_WALL="-Wextraneous-semicolon -Wall" + GCJFLAGS="$GCJFLAGS ${GCJ_WALL}" fi AC_MSG_RESULT([${GCJ_WALL}]) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 7 02:38:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 07 Dec 2007 02:38:00 -0000 Subject: [SCM] master: Restore -g -classpath flags (when JAVAC=gcj). Message-ID: <20071207023826.3744.qmail@sourceware.org> The branch, master has been updated via 96ef4b71529b1b3defe470e577319e1ac440b02c (commit) from 165cdef652b84c712b7d6ade77608d538ec7a02b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 96ef4b71529b1b3defe470e577319e1ac440b02c Author: Andrew Cagney Date: Thu Dec 6 21:36:30 2007 -0500 Restore -g -classpath flags (when JAVAC=gcj). frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (JAVACFLAGS): For GCJ, re-add -g -classpath lost in previous commit. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 3 +++ frysk-common/frysk-common.ac | 2 +- 2 files changed, 4 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 7be00a9..dde516c 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,8 @@ 2007-12-06 Andrew Cagney + * frysk-common.ac (JAVACFLAGS): For GCJ, re-add -g -classpath lost + in previous commit. + * frysk-common.ac (GCJ_FSOURCE): Delete. (AC_LANG(JAVA)): Replace AC_LANG(GCJ). (JAVA_IS): Re-implement using AC_COMPILE_IFELSE. diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index 3db1dd3..7482d22 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -131,7 +131,7 @@ AC_LANG(JAVAC) AC_MSG_CHECKING([for working java compiler]) JAVAC=${JAVAC:-${GCJ} -C -fsource=1.4} -JAVACFLAGS=${JAVACFLAGS:-${GCJFLAGS}} +JAVACFLAGS=${JAVACFLAGS:-${GCJFLAGS} -g -classpath \$(SOURCEPATH):\$(CLASSPATH)} AC_COMPILE_IFELSE([public class conftest{}], [JAVAC_IS=gcj], [JAVAC_IS=ecj hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 7 03:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 07 Dec 2007 03:06:00 -0000 Subject: [SCM] master: Explicitly add -fsource=1.4 to GCJFLAGS. Message-ID: <20071207030602.27844.qmail@sourceware.org> The branch, master has been updated via c609bbcdc6907752ed3ed955d4b5021a4492e6d3 (commit) from 96ef4b71529b1b3defe470e577319e1ac440b02c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c609bbcdc6907752ed3ed955d4b5021a4492e6d3 Author: Andrew Cagney Date: Thu Dec 6 22:05:46 2007 -0500 Explicitly add -fsource=1.4 to GCJFLAGS. frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (GCJFLAGS): Add -fsource=1.4 when applicable. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 2 ++ frysk-common/frysk-common.ac | 5 ++++- 2 files changed, 6 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index dde516c..49fc8e2 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,7 @@ 2007-12-06 Andrew Cagney + * frysk-common.ac (GCJFLAGS): Add -fsource=1.4 when applicable. + * frysk-common.ac (JAVACFLAGS): For GCJ, re-add -g -classpath lost in previous commit. diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index 7482d22..54baa98 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -133,7 +133,10 @@ AC_MSG_CHECKING([for working java compiler]) JAVAC=${JAVAC:-${GCJ} -C -fsource=1.4} JAVACFLAGS=${JAVACFLAGS:-${GCJFLAGS} -g -classpath \$(SOURCEPATH):\$(CLASSPATH)} AC_COMPILE_IFELSE([public class conftest{}], - [JAVAC_IS=gcj], + [JAVAC_IS=gcj + if test "x$ac_env_GCJFLAGS_set" != xset; then + GCJFLAGS="$GCJFLAGS -fsource=1.4" + fi], [JAVAC_IS=ecj JAVAC='$(GIJ) --classpath $(ECJ_JAR):$(CLASSPATH) org.eclipse.jdt.internal.compiler.batch.Main -1.4' JAVACFLAGS='-warn:+semicolon -sourcepath $(SOURCEPATH) -classpath $(CLASSPATH)']) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 7 03:23:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 07 Dec 2007 03:23:00 -0000 Subject: [SCM] master: Facilitate dancing in the streets (when JAVAC=gcj --enable-jar-compile). Message-ID: <20071207032307.6478.qmail@sourceware.org> The branch, master has been updated via af8def376f0ce3d3f216c3704bca8aec55843927 (commit) from c609bbcdc6907752ed3ed955d4b5021a4492e6d3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit af8def376f0ce3d3f216c3704bca8aec55843927 Author: Andrew Cagney Date: Thu Dec 6 21:34:18 2007 -0500 Facilitate dancing in the streets (when JAVAC=gcj --enable-jar-compile). frysk-common/ChangeLog 2007-12-06 Andrew Cagney * frysk-common.ac (--enable-jar-compile): When JAVAC is GCJ, default to on. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 3 +++ frysk-common/frysk-common.ac | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 49fc8e2..9d5bb00 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,8 @@ 2007-12-06 Andrew Cagney + * frysk-common.ac (--enable-jar-compile): When JAVAC is GCJ, + default to on. + * frysk-common.ac (GCJFLAGS): Add -fsource=1.4 when applicable. * frysk-common.ac (JAVACFLAGS): For GCJ, re-add -g -classpath lost diff --git a/frysk-common/frysk-common.ac b/frysk-common/frysk-common.ac index 54baa98..32a2242 100644 --- a/frysk-common/frysk-common.ac +++ b/frysk-common/frysk-common.ac @@ -248,11 +248,18 @@ AC_ARG_WITH(libopcodes, LIBS="$LIBS -lopcodes"] []) +AC_MSG_CHECKING([direct .jar to .o compilation (--enable-jar-compile)]) AC_ARG_ENABLE([jar-compile], - [ --enable-jar-compile Enable compilation of jars], + [ --enable-jar-compile Enable direct compilation of jars], [case "${enableval}" in - yes) jar_compile=yes ;; - no) jar_compile=no;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable-jar-compile]) ;; - esac],[jar_compile=no]) + yes) jar_compile=yes ;; + no) jar_compile=no;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-jar-compile]) ;; + esac], + [case "$JAVAC_IS" in + gcj) jar_compile=yes ;; + ecj) jar_compile=no ;; + *) AC_MSG_ERROR([compiler ${JAVAC_IS} unknown]) ;; + esac]) +AC_MSG_RESULT([$jar_compile]) AM_CONDITIONAL([JAR_COMPILE], [test x$jar_compile = xyes]) hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Dec 7 12:13:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 07 Dec 2007 12:13:00 -0000 Subject: [SCM] master: Refactor Auxv test, move AuxvStringBuilder to utils. Message-ID: <20071207121327.6926.qmail@sourceware.org> The branch, master has been updated via 108636b93367206922bef95b14494b4cb7dbe244 (commit) from af8def376f0ce3d3f216c3704bca8aec55843927 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 108636b93367206922bef95b14494b4cb7dbe244 Author: Phil Muldoon Date: Fri Dec 7 12:13:18 2007 +0000 Refactor Auxv test, move AuxvStringBuilder to utils. 2007-12-07 Phil Muldoon * AuxvStringBuilder.java: New. 2007-12-07 Phil Muldoon * AuxvCommand.java: Move AuxvStringBuilder from here to frysk.util. * TestAuxvCommand.java (testAuxVCoreCommand): Rewrite. Extract auxv from live process, generate core, test against fhpd represention of core auxv data. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AuxvCommand.java | 30 +----------- frysk-core/frysk/hpd/ChangeLog | 9 +++ frysk-core/frysk/hpd/TestAuxvCommand.java | 52 ++++++++++++-------- .../frysk/util/AuxvStringBuilder.java | 46 +++++++++-------- frysk-core/frysk/util/ChangeLog | 4 ++ 5 files changed, 71 insertions(+), 70 deletions(-) copy frysk-sys/lib/dwfl/DwarfException.java => frysk-core/frysk/util/AuxvStringBuilder.java (77%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AuxvCommand.java b/frysk-core/frysk/hpd/AuxvCommand.java index 79f52fd..41d2fa1 100644 --- a/frysk-core/frysk/hpd/AuxvCommand.java +++ b/frysk-core/frysk/hpd/AuxvCommand.java @@ -39,11 +39,11 @@ package frysk.hpd; -import inua.elf.AT; import java.util.Iterator; import java.util.List; import frysk.proc.Auxv; import frysk.proc.Proc; +import frysk.util.AuxvStringBuilder; public class AuxvCommand extends ParameterizedCommand { @@ -89,31 +89,5 @@ public class AuxvCommand extends ParameterizedCommand { int completer(CLI cli, Input input, int cursor, List completions) { return -1; - } - - abstract class AuxvStringBuilder - { - protected AuxvStringBuilder() { - } - - public final void construct (Auxv[] rawAuxv) { - String value; - for (int i=0; i < rawAuxv.length; i++) { - switch (rawAuxv[i].type) { - case 33: - case 16: - case 3: - case 9: - case 15: - value = "0x"+Long.toHexString(rawAuxv[i].val); - break; - default: - value = ""+rawAuxv[i].val; - } - buildLine(AT.toString(rawAuxv[i].type), AT.toPrintString(rawAuxv[i].type), value); - } - } - - abstract public void buildLine(String type, String desc, String value); - } + } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 7e612de..cbd0566 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,12 @@ +2007-12-07 Phil Muldoon + + * AuxvCommand.java: Move AuxvStringBuilder from here + to frysk.util. + * TestAuxvCommand.java (testAuxVCoreCommand): Rewrite. + Extract auxv from live process, generate core, test + against fhpd represention of core auxv data. + + 2007-12-06 Phil Muldoon * TopLevelCommand.java(TopLevelCommand): add auxv command. diff --git a/frysk-core/frysk/hpd/TestAuxvCommand.java b/frysk-core/frysk/hpd/TestAuxvCommand.java index 35fad72..a0f9c59 100644 --- a/frysk-core/frysk/hpd/TestAuxvCommand.java +++ b/frysk-core/frysk/hpd/TestAuxvCommand.java @@ -39,34 +39,46 @@ package frysk.hpd; -import frysk.Config; +import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; + +import frysk.proc.Auxv; +import frysk.proc.Proc; +import frysk.proc.dead.TestLinuxCore; +import frysk.testbed.DaemonBlockedAtSignal; +import frysk.util.AuxvStringBuilder; public class TestAuxvCommand extends TestLib { public void testAuxVCoreCommand() { + + Proc proc = (new DaemonBlockedAtSignal("funit-stacks")).getMainTask().getProc(); + Auxv[] liveAuxv = proc.getAuxv(); + + TestLinuxCore tester = new TestLinuxCore(); + File core = new File(tester.constructCore(proc)); + core.deleteOnExit(); + class BuildAuxv extends AuxvStringBuilder { + + public ArrayList auxvData = new ArrayList(); + public void buildLine(String type, String desc, String value) { + auxvData.add(type+" : " + value+"\n"); + } + } + + BuildAuxv buildAuxv = new BuildAuxv(); + buildAuxv.construct(liveAuxv); + + e = new HpdTestbed(); - e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + e.send("core " + core.getPath() + " -noexe\n"); e.expect(5, "Attached to core file.*"); e.send("auxv\n"); - e.expect("AT_SYSINFO : 6464512"); - e.expect("AT_SYSINFO_EHDR : 0x62a000"); - e.expect("AT_HWCAP : 0xafe9f1bf"); - e.expect("AT_PAGESZ : 4096"); - e.expect("AT_CLKTCK : 100"); - e.expect("AT_PHDR : 0x8048034"); - e.expect("AT_PHENT : 32"); - e.expect("AT_PHNUM : 8"); - e.expect("AT_BASE : 0"); - e.expect("AT_FLAGS : 0"); - e.expect("AT_ENTRY : 0x80483e0"); - e.expect("AT_UID : 500"); - e.expect("AT_EUID : 500"); - e.expect("AT_GID : 500"); - e.expect("AT_EGID : 500"); - e.expect("AT_0x17 : 0"); - e.expect("AT_PLATFORM : 0xbfcfee4b"); - e.expect("AT_NULL : 0"); + Iterator i = buildAuxv.auxvData.iterator(); + while (i.hasNext()) + e.equals((String)i.next()); e.close(); } } diff --git a/frysk-sys/lib/dwfl/DwarfException.java b/frysk-core/frysk/util/AuxvStringBuilder.java similarity index 77% copy from frysk-sys/lib/dwfl/DwarfException.java copy to frysk-core/frysk/util/AuxvStringBuilder.java index 1f804ad..02ce064 100644 --- a/frysk-sys/lib/dwfl/DwarfException.java +++ b/frysk-core/frysk/util/AuxvStringBuilder.java @@ -36,33 +36,35 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. +package frysk.util; -package lib.dwfl; +import inua.elf.AT; +import frysk.proc.Auxv; -public class DwarfException - extends RuntimeException + +public abstract class AuxvStringBuilder { - static public final long serialVersionUID = 200703231604l; - public DwarfException() - { - super(); + protected AuxvStringBuilder() { } - public DwarfException(String message) - { - super(message); - } - - public DwarfException(String message, Throwable cause) - { - super(message, cause); - } - - public DwarfException(Throwable cause) - { - super(cause); + public final void construct (Auxv[] rawAuxv) { + String value; + for (int i=0; i < rawAuxv.length; i++) { + switch (rawAuxv[i].type) { + case 33: + case 16: + case 3: + case 9: + case 15: + value = "0x"+Long.toHexString(rawAuxv[i].val); + break; + default: + value = ""+rawAuxv[i].val; + } + buildLine(AT.toString(rawAuxv[i].type), AT.toPrintString(rawAuxv[i].type), value); + } } + + abstract public void buildLine(String type, String desc, String value); } - - diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index cde359d..c404a5b 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-12-07 Phil Muldoon + + * AuxvStringBuilder.java: New. + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Dec 7 14:31:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 07 Dec 2007 14:31:00 -0000 Subject: [SCM] master: Add maps command Message-ID: <20071207143111.21593.qmail@sourceware.org> The branch, master has been updated via 1428e86f7a48aceaee478725a9a8c641d502f7db (commit) from 108636b93367206922bef95b14494b4cb7dbe244 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1428e86f7a48aceaee478725a9a8c641d502f7db Author: Phil Muldoon Date: Fri Dec 7 14:31:03 2007 +0000 Add maps command 2007-12-07 Phil Muldoon * AuxvCommand.java (interpret): Return nothing when main task cannot be found. * MapsCommand.java: New. * TestMapsCommand: New. * TopLevelCommand.java (TopLevelCommand): Add maps command. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AuxvCommand.java | 3 + frysk-core/frysk/hpd/ChangeLog | 6 +++ .../hpd/{AuxvCommand.java => MapsCommand.java} | 47 ++++++------------- .../DeadProc.java => hpd/TestMapsCommand.java} | 30 +++++++----- frysk-core/frysk/hpd/TopLevelCommand.java | 1 + 5 files changed, 42 insertions(+), 45 deletions(-) copy frysk-core/frysk/hpd/{AuxvCommand.java => MapsCommand.java} (72%) copy frysk-core/frysk/{proc/dead/DeadProc.java => hpd/TestMapsCommand.java} (80%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AuxvCommand.java b/frysk-core/frysk/hpd/AuxvCommand.java index 41d2fa1..33b6554 100644 --- a/frysk-core/frysk/hpd/AuxvCommand.java +++ b/frysk-core/frysk/hpd/AuxvCommand.java @@ -66,7 +66,10 @@ public class AuxvCommand extends ParameterizedCommand { PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskDataIterator = ptset.getTaskData(); if (taskDataIterator.hasNext() == false) + { cli.addMessage("Cannot find main task. Cannot print out auxv", Message.TYPE_ERROR); + return; + } Proc mainProc = ((TaskData) taskDataIterator.next()).getTask().getProc(); Auxv[] liveAux = mainProc.getAuxv(); diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index cbd0566..000ee62 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,11 @@ 2007-12-07 Phil Muldoon + * AuxvCommand.java (interpret): Return nothing when + main task cannot be found. + * MapsCommand.java: New. + * TestMapsCommand: New. + * TopLevelCommand.java (TopLevelCommand): Add maps command. + * AuxvCommand.java: Move AuxvStringBuilder from here to frysk.util. * TestAuxvCommand.java (testAuxVCoreCommand): Rewrite. diff --git a/frysk-core/frysk/hpd/AuxvCommand.java b/frysk-core/frysk/hpd/MapsCommand.java similarity index 72% copy from frysk-core/frysk/hpd/AuxvCommand.java copy to frysk-core/frysk/hpd/MapsCommand.java index 41d2fa1..1c1b212 100644 --- a/frysk-core/frysk/hpd/AuxvCommand.java +++ b/frysk-core/frysk/hpd/MapsCommand.java @@ -41,24 +41,16 @@ package frysk.hpd; import java.util.Iterator; import java.util.List; -import frysk.proc.Auxv; +import frysk.proc.MemoryMap; import frysk.proc.Proc; -import frysk.util.AuxvStringBuilder; -public class AuxvCommand extends ParameterizedCommand { +public class MapsCommand extends ParameterizedCommand { boolean verbose = false; - public AuxvCommand() { - super("Print process auxiliary", "auxv [-verbose]", - "Print out the process auxiliary data for this " - + "process."); - - add(new CommandOption("verbose", "Print out known auxv descriptions ") { - void parse(String argument, Object options) { - verbose = true; - } - }); + public MapsCommand() { + super("Print process maps", "maps", + "Print out the process maps table."); } @@ -66,28 +58,19 @@ public class AuxvCommand extends ParameterizedCommand { PTSet ptset = cli.getCommandPTSet(cmd); Iterator taskDataIterator = ptset.getTaskData(); if (taskDataIterator.hasNext() == false) - cli.addMessage("Cannot find main task. Cannot print out auxv", Message.TYPE_ERROR); - Proc mainProc = ((TaskData) taskDataIterator.next()).getTask().getProc(); - Auxv[] liveAux = mainProc.getAuxv(); - - class BuildAuxv extends AuxvStringBuilder { - - public StringBuffer auxvData = new StringBuffer(); - public void buildLine(String type, String desc, String value) { - if (verbose) - auxvData.append(type+" (" + desc+") : " + value+"\n"); - else - auxvData.append(type+" : " + value+"\n"); - } + { + cli.addMessage("Cannot find main task. Cannot print out process maps.", Message.TYPE_ERROR); + return; } + Proc mainProc = ((TaskData) taskDataIterator.next()).getTask().getProc(); + MemoryMap[] maps = mainProc.getMaps(); - BuildAuxv buildAuxv = new BuildAuxv(); - buildAuxv.construct(liveAux); - - cli.outWriter.println(buildAuxv.auxvData.toString()); + for (int i=0; i The branch, master has been updated via 88f78bba64995ee006c9da8e22f655b4a6ad57c4 (commit) from 1428e86f7a48aceaee478725a9a8c641d502f7db (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 88f78bba64995ee006c9da8e22f655b4a6ad57c4 Author: Andrew Cagney Date: Fri Dec 7 11:26:32 2007 -0500 Add log completer. frysk-sys/frysk/rsl/ChangeLog 2007-12-07 Andrew Cagney * TestLog.java (testCompletion()): New. (checkComplete(String,int,String[])): New. (testName()): New. (testPath()): New. (testCompleteChildPresent()): New. (testCompleteChildMissing()): New. (testCompleteSingle()): New. (testCompleteSingle()): New. (testCompleteMultiple()): New. (testCompleteMidway()): New. (testCompleteNothing()): New. (testCompleteBogus()): New. * Log.java (Log(String,String,Log)): Add Second string name parameter. (name()): New. (path()): New. (complete(String,List)): New. (complete(String,int,List)): New. (children): Change type to TreeMap. ----------------------------------------------------------------------- Summary of changes: frysk-common/Makefile.gen.sh | 4 +- frysk-sys/frysk/rsl/ChangeLog | 22 ++++++++ frysk-sys/frysk/rsl/Log.java | 110 ++++++++++++++++++++++++++++++++++++-- frysk-sys/frysk/rsl/TestLog.java | 56 +++++++++++++++++++- 4 files changed, 183 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index fc374d8..21a4a1f 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -569,9 +569,7 @@ else fi # Grep the cni/*.cxx files forming a list of included files. Assume -# these are all generated from .class files. The list can be pruned a -# little since, given Class$Nested and Class, generating Class.h will -# automatically generate the inner Class$Nested class. +# these are all generated from .class files found in the master .jar. # This matches both: # #include "a/file/dot.h" diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog index 48622a0..a7f1335 100644 --- a/frysk-sys/frysk/rsl/ChangeLog +++ b/frysk-sys/frysk/rsl/ChangeLog @@ -1,3 +1,25 @@ +2007-12-07 Andrew Cagney + + * TestLog.java (testCompletion()): New. + (checkComplete(String,int,String[])): New. + (testName()): New. + (testPath()): New. + (testCompleteChildPresent()): New. + (testCompleteChildMissing()): New. + (testCompleteSingle()): New. + (testCompleteSingle()): New. + (testCompleteMultiple()): New. + (testCompleteMidway()): New. + (testCompleteNothing()): New. + (testCompleteBogus()): New. + * Log.java (Log(String,String,Log)): Add Second string name + parameter. + (name()): New. + (path()): New. + (complete(String,List)): New. + (complete(String,int,List)): New. + (children): Change type to TreeMap. + 2007-12-06 Andrew Cagney New directory. diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java index 9bbfcdf..964f919 100644 --- a/frysk-sys/frysk/rsl/Log.java +++ b/frysk-sys/frysk/rsl/Log.java @@ -40,8 +40,9 @@ package frysk.rsl; import java.io.PrintStream; -import java.util.HashMap; +import java.util.TreeMap; import java.util.Iterator; +import java.util.List; /** * Generate log information when enabled. @@ -50,10 +51,13 @@ public final class Log { private int level; private final String path; - private Log(String path, Log parent) { + private final String name; + private Log(String path, String name, Log parent) { this.path = path; this.level = parent.level; + this.name = name; } + /** * Create a root logger; package private so that test code can * create their own root logger. @@ -61,6 +65,7 @@ public final class Log { Log() { this.level = 0; this.path = ""; + this.name = ""; } public String toString() { @@ -70,7 +75,23 @@ public final class Log { + "}"); } - private final HashMap children = new HashMap(); + /** + * Return the "basename" of the logger. + */ + public final String name() { + return name; + } + /** + * Return the full path of the logger. + */ + public final String path() { + return path; + } + + private final TreeMap children = new TreeMap(); + /** + * Set this logger's logging level. + */ public synchronized final Log set(Level level) { this.level = level.intValue(); for (Iterator i = children.values().iterator(); i.hasNext(); ) { @@ -79,12 +100,16 @@ public final class Log { } return this; } - public Level level() { + /** + * Return this loggers current logging level. + */ + public final Level level() { return Level.valueOf(level); } /** * POS starts at -1, then points at "." or the end of the name. + * Package private so it can be called from test code. */ synchronized final Log get(String path, int pos) { if (pos >= path.length()) @@ -97,20 +122,95 @@ public final class Log { String name = path.substring(pos + 1, dot); Log child = (Log)children.get(name); if (child == null) { - child = new Log(path.substring(0, dot), this); + child = new Log(path.substring(0, dot), name, this); children.put(name, child); } return child.get(path, dot); } private static final Log root = new Log(); + /** + * Find the logger by the name KLASS. + */ public static Log get(String klass) { return root.get(klass, -1); } + /** + * Find the logger by with KLASS's name. + */ public static Log get(Class klass) { return root.get(klass.getName(), -1); } + /** + * Complete the logger. On entry, POS is either -1 or the + * location of the last DOT indicating further name completion is + * needed; or the length indicating that either a "." or " " + * completion is needed. + * + * Returns the offset into INCOMPLETE that the completions apply + * to, or -1. + * + * Package private to allow testing. + */ + synchronized final int complete(String incomplete, int pos, + List candidates) { + int dot = incomplete.indexOf('.', pos + 1); + if (dot >= 0) { + // More tokens to follow; recursively resolve. + String name = incomplete.substring(pos + 1, dot); + Log child = (Log)children.get(name); + if (child == null) + return -1; + else + return child.complete(incomplete, dot, candidates); + } else { + // Final token, scan children for all partial matches. + String name = incomplete.substring(pos + 1); + for (Iterator i = children.keySet().iterator(); i.hasNext(); ) { + String child = (String)i.next(); + if (child.startsWith(name)) + candidates.add(child); + } + switch (candidates.size()) { + case 0: + return -1; + case 1: + Log child = (Log)children.get(name); + if (child != null) { + // The final NAME was an exact match for a child; + // and there are no other possible completions + // (size == 1); change the expansion to either "." + // (have children) or " " (childless). + candidates.remove(0); + synchronized (child) { + if (child.children.size() > 0) { + candidates.add("."); + } else { + candidates.add(" "); + } + return incomplete.length(); + } + } else { + // A single partial completion e.g., <>> + // -> <>. + return pos + 1; + } + default: + return pos + 1; + } + } + } + + /** + * Complete the logger path using constructed loggers. Return the + * offset into incomplete where the completions apply, or -1 when + * no completions. + */ + public static int complete(String incomplete, List candidates) { + return root.complete(incomplete, -1, candidates); + } + // Static? private static PrintStream out = System.out; static void set(PrintStream out) { diff --git a/frysk-sys/frysk/rsl/TestLog.java b/frysk-sys/frysk/rsl/TestLog.java index 88f4eef..2833d8d 100644 --- a/frysk-sys/frysk/rsl/TestLog.java +++ b/frysk-sys/frysk/rsl/TestLog.java @@ -40,6 +40,7 @@ package frysk.rsl; import frysk.junit.TestCase; +import java.util.LinkedList; /** * Testlogging that is a sub-class of this directory. @@ -69,6 +70,15 @@ public class TestLog extends TestCase { assertNotNull("self", self); } + public void testPath() { + String path = "a.long.path"; + assertEquals("path", path, get(path).path()); + } + + public void testName() { + assertEquals("name", "path", get("a.long.path").name()); + } + public void testPeers() { Log lhs = get("the.lhs"); Log rhs = get("the.rhs"); @@ -98,5 +108,49 @@ public class TestLog extends TestCase { checkLevel("the.lower.left.hand.side", Level.FINE); checkLevel("the.lower.right", Level.NONE); } - + + private void checkComplete(String incomplete, int expectedCursor, + String[] expectedCandidates) { + // create a tree. + get("the.lower.left.hand.side"); + get("the.lower.left.half"); + get("the.lower.right.hand.side"); + // Perfomr a completion + LinkedList candidates = new LinkedList(); + int cursor = root.complete(incomplete, -1, candidates); + assertEquals("candidate.size", expectedCandidates.length, + candidates.size()); + for (int i = 0; i < expectedCandidates.length; i++) { + assertEquals("candidate[" + i + "]", expectedCandidates[i], + candidates.get(i)); + } + assertEquals("cursor", expectedCursor, cursor); + } + public void testCompleteChildPresent() { + // children present, expand the dot + checkComplete("the", 3, new String[] {"." }); + } + public void testCompleteChildMissing() { + // no children present, expand the space + checkComplete("the.lower.left.half", 19, new String[] {" "}); + } + public void testCompleteSingle() { + // single completion + checkComplete("the.", 4, new String[] {"lower" }); + } + public void testCompleteMultiple() { + // multiple completion + checkComplete("the.lower.",10, new String[] { "left", "right" }); + } + public void testCompleteMidway() { + // mid completion + checkComplete("the.lower.left.h", 15, new String[] { "half", "hand" }); + } + public void testCompleteNothing() { + checkComplete("", 0, new String[] { "the" }); + } + public void testCompleteBogus() { + // bogus completion + checkComplete("the.upper", -1, new String[0]); + } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Dec 7 16:34:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 07 Dec 2007 16:34:00 -0000 Subject: [SCM] master: Tweak corefile command help text Message-ID: <20071207163402.11915.qmail@sourceware.org> The branch, master has been updated via 01f016ef60b42e011ffa962ef5524c687e0293ef (commit) via e966108fc4e97e9a12ef3d36ae436a4521e41934 (commit) from 88f78bba64995ee006c9da8e22f655b4a6ad57c4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 01f016ef60b42e011ffa962ef5524c687e0293ef Merge: e966108fc4e97e9a12ef3d36ae436a4521e41934 88f78bba64995ee006c9da8e22f655b4a6ad57c4 Author: Phil Muldoon Date: Fri Dec 7 16:33:15 2007 +0000 Tweak corefile command help text commit e966108fc4e97e9a12ef3d36ae436a4521e41934 Author: Phil Muldoon Date: Fri Dec 7 16:32:52 2007 +0000 2007-12-07 Phil Muldoon * CoreCommand.java: Tweak help text. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 2 ++ frysk-core/frysk/hpd/CoreCommand.java | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 000ee62..8513ec2 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,7 @@ 2007-12-07 Phil Muldoon + * CoreCommand.java: Tweak help text. + * AuxvCommand.java (interpret): Return nothing when main task cannot be found. * MapsCommand.java: New. diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java index 7ebd163..000dbe3 100644 --- a/frysk-core/frysk/hpd/CoreCommand.java +++ b/frysk-core/frysk/hpd/CoreCommand.java @@ -60,8 +60,8 @@ public class CoreCommand extends ParameterizedCommand { boolean noExeOption = false; CoreCommand() { - super("core", "core [ ] [ -noexe ]", - "open a core file"); + super("Load a Corefile.", "core [ ] [ -noexe ]", + "Opens, loads and models corefile."); add(new CommandOption("noexe", "Do not attempt to load executable ") { void parse(String argument, Object options) { hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Fri Dec 7 16:49:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Fri, 07 Dec 2007 16:49:00 -0000 Subject: [SCM] master: Tweak Error values in common utilities. Message-ID: <20071207164924.19009.qmail@sourceware.org> The branch, master has been updated via f58119c5647ea4f0fde832a9bb080227926a52db (commit) from 01f016ef60b42e011ffa962ef5524c687e0293ef (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f58119c5647ea4f0fde832a9bb080227926a52db Author: Phil Muldoon Date: Fri Dec 7 16:49:17 2007 +0000 Tweak Error values in common utilities. 2007-12-07 Phil Muldoon * Util.java (getProcFromCoreFile): Tweak Error text. (getProcFromCoreExePair): Ditto. (getProcFromPid): Ditto. (getProcFromExeFile)L Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 5 +++++ frysk-core/frysk/util/Util.java | 18 +++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index c404a5b..fa30995 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,5 +1,10 @@ 2007-12-07 Phil Muldoon + * Util.java (getProcFromCoreFile): Tweak Error text. + (getProcFromCoreExePair): Ditto. + (getProcFromPid): Ditto. + (getProcFromExeFile)L Ditto. + * AuxvStringBuilder.java: New. 2007-12-04 Andrew Cagney diff --git a/frysk-core/frysk/util/Util.java b/frysk-core/frysk/util/Util.java index 828b859..59be104 100644 --- a/frysk-core/frysk/util/Util.java +++ b/frysk-core/frysk/util/Util.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, Red Hat Inc. +// Copyright 2005, 2007, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -73,10 +73,10 @@ public class Util else { proc = null; - throw new RuntimeException("No proc in this corefile"); + throw new RuntimeException("Cannot find a process in this corefile."); } if (iterator.hasNext()) - throw new RuntimeException("Too many procs on this corefile"); + throw new RuntimeException("Too many processes in this corefile."); return proc; } @@ -93,10 +93,10 @@ public class Util else { proc = null; - throw new RuntimeException("No proc in this corefile"); + throw new RuntimeException("Cannot find a process in this corefile."); } if (iterator.hasNext()) - throw new RuntimeException("Too many procs on this corefile"); + throw new RuntimeException("Too many processes in this corefile."); return proc; } @@ -125,8 +125,8 @@ public class Util public void procNotFound (ProcId procId, Exception e) { - System.err.println("Couldn't find the process: " - + procId.toString()); + System.err.println("Could not find the process: " + + procId.intValue()); Manager.eventLoop.requestStop(); } } @@ -151,10 +151,10 @@ public class Util else { proc = null; - throw new RuntimeException("No proc in this exefile"); + throw new RuntimeException("Cannot find a process in this executable."); } if (iterator.hasNext()) - throw new RuntimeException("Too many procs in this exefile"); + throw new RuntimeException("Too many processes in this executable."); return proc; } hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Dec 7 22:11:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 07 Dec 2007 22:11:00 -0000 Subject: [SCM] master: swagiaal: Tested DwarfDie.getOffset. Implmented and tested DwarfDie.getDieByOffset(). Message-ID: <20071207221140.21928.qmail@sourceware.org> The branch, master has been updated via 36cff033d7840d1968d9952a44486abbe3b26b3f (commit) via d44d1d4b37527e6af661a2e59db675f5a146b01c (commit) from f58119c5647ea4f0fde832a9bb080227926a52db (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 36cff033d7840d1968d9952a44486abbe3b26b3f Author: Sami Wagiaalla Date: Fri Dec 7 16:32:06 2007 -0500 swagiaal: Tested DwarfDie.getOffset. Implmented and tested DwarfDie.getDieByOffset(). frysk-sys/lib/dwfl/ChangeLog +2007-12-07 Sami Wagiaalla + + * DwflModule.java (getDieByOffset): New function + * cni/DwflModule.cxx (DwflModule::offdie): New function. + * TestDwarfDie.java (testGetOffset): New test. + commit d44d1d4b37527e6af661a2e59db675f5a146b01c Author: Sami Wagiaalla Date: Fri Dec 7 12:00:23 2007 -0500 swagiaal: DwarfDie.getOffset() now returns long instead of int. frysk-core/frysk/debuginfo/ChangeLog +2007-12-07 Sami Wagiaalla + + DwarfDie.getOffset() now returns long. + * TypeEntry.java: Updated. + frysk-sys/lib/dwfl/ChangeLog +2007-12-07 Sami Wagiaalla + + * DwarfDie.java (getOffset): Now returns long. + * cni/DwarfDie.cxx: Updated. + ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/debuginfo/ChangeLog | 5 +++++ frysk-core/frysk/debuginfo/TypeEntry.java | 8 ++++---- frysk-sys/lib/dwfl/ChangeLog | 11 +++++++++++ frysk-sys/lib/dwfl/DwarfDie.java | 4 ++-- frysk-sys/lib/dwfl/DwflModule.java | 8 +++++++- frysk-sys/lib/dwfl/TestDwarfDie.java | 24 ++++++++++++++++++++++++ frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 4 ++-- frysk-sys/lib/dwfl/cni/DwflModule.cxx | 16 ++++++++++++++++ 8 files changed, 71 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index 82bb3b9..4cea696 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,8 @@ +2007-12-07 Sami Wagiaalla + + DwarfDie.getOffset() now returns long. + * TypeEntry.java: Updated. + 2007-12-05 Stan Cox * gen-type-expect-tests.py (j.start_test): Use splitext instead of split diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 5aac115..4e0567f 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -342,16 +342,16 @@ public class TypeEntry else type = typeDie; - Type mappedType = (Type)dieHash.get(new Integer(type.getOffset())); + Type mappedType = (Type)dieHash.get(new Long(type.getOffset())); if (mappedType != null) return mappedType; - else if (dieHash.containsKey(new Integer(type.getOffset()))) { + else if (dieHash.containsKey(new Long(type.getOffset()))) { // ??? will this always be a pointer to ourselves? // Instead of VoidType, we need a way to reference ourselves return new PointerType("", byteorder, getByteSize(type), new VoidType()); } - dieHash.put(new Integer(type.getOffset()), null); + dieHash.put(new Long(type.getOffset()), null); Type returnType = null; switch (type.getTag().hashCode()) { @@ -434,7 +434,7 @@ public class TypeEntry } if (returnType != null) { - dieHash.put(new Integer(type.getOffset()), returnType); + dieHash.put(new Long(type.getOffset()), returnType); return returnType; } else diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog index 4806cc3..9a6434c 100644 --- a/frysk-sys/lib/dwfl/ChangeLog +++ b/frysk-sys/lib/dwfl/ChangeLog @@ -1,3 +1,14 @@ +2007-12-07 Sami Wagiaalla + + * DwflModule.java (getDieByOffset): New function + * cni/DwflModule.cxx (DwflModule::offdie): New function. + * TestDwarfDie.java (testGetOffset): New test. + +2007-12-07 Sami Wagiaalla + + * DwarfDie.java (getOffset): Now returns long. + * cni/DwarfDie.cxx: Updated. + 2007-12-05 Sami Wagiaalla * TestDwarfDie.java (testGetModule): New Test. diff --git a/frysk-sys/lib/dwfl/DwarfDie.java b/frysk-sys/lib/dwfl/DwarfDie.java index 909fad7..1345417 100644 --- a/frysk-sys/lib/dwfl/DwarfDie.java +++ b/frysk-sys/lib/dwfl/DwarfDie.java @@ -261,7 +261,7 @@ abstract public class DwarfDie { /** * @return The offset for this die. */ - public int getOffset() { + public long getOffset() { return get_offset(this.getPointer()); } @@ -436,7 +436,7 @@ abstract public class DwarfDie { private native int get_attr_constant (long addr, int attr); - private native int get_offset (long addr); + private native long get_offset (long addr); // Package access for DwarfDieFactory static native int get_tag (long var_die); diff --git a/frysk-sys/lib/dwfl/DwflModule.java b/frysk-sys/lib/dwfl/DwflModule.java index def4304..6ddf2c1 100644 --- a/frysk-sys/lib/dwfl/DwflModule.java +++ b/frysk-sys/lib/dwfl/DwflModule.java @@ -91,9 +91,15 @@ public class DwflModule } return pubNames; } - private native void get_pubnames(); + + protected DwarfDie getDieByOffset(long offset){ + return offdie(this.getPointer(), offset); + } + private native DwarfDie offdie(long die, long offset); + + /** * Get the name of the module. * diff --git a/frysk-sys/lib/dwfl/TestDwarfDie.java b/frysk-sys/lib/dwfl/TestDwarfDie.java index ed2049c..cc5832e 100644 --- a/frysk-sys/lib/dwfl/TestDwarfDie.java +++ b/frysk-sys/lib/dwfl/TestDwarfDie.java @@ -101,4 +101,28 @@ public class TestDwarfDie extends TestCase { assertTrue("Found correct module", dwflModule.getName().contains("TestRunner")); } + public void testGetOffset(){ + + Dwfl dwfl = new Dwfl(Pid.get()); + assertNotNull(dwfl); + long addr = LocalMemory.getCodeAddr(); + + DwarfDie cuDie = dwfl.getCompilationUnit(addr).die; + assertNotNull(cuDie); + + DwarfDie die = cuDie.getScopes(addr)[0]; + + long offset = die.getOffset(); + + DwarfDie retrievedDie = die.getModule().getDieByOffset(offset); + assertNotNull(retrievedDie); + + assertEquals("dies have the same name", die.getName(), retrievedDie.getName()); + assertEquals("dies have the same tag", die.getTag(), retrievedDie.getTag()); + + die = retrievedDie; + + } + + } diff --git a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx index 810882e..fc57d12 100644 --- a/frysk-sys/lib/dwfl/cni/DwarfDie.cxx +++ b/frysk-sys/lib/dwfl/cni/DwarfDie.cxx @@ -429,11 +429,11 @@ lib::dwfl::DwarfDie::get_attr_constant (jlong die_p, jint attr) return -1; } -jint +jlong lib::dwfl::DwarfDie::get_offset (jlong var_die) { Dwarf_Die *die = (Dwarf_Die*) var_die; - return (jint)dwarf_dieoffset(die); + return (jlong)dwarf_dieoffset(die); } void diff --git a/frysk-sys/lib/dwfl/cni/DwflModule.cxx b/frysk-sys/lib/dwfl/cni/DwflModule.cxx index 515632e..5cfdd09 100644 --- a/frysk-sys/lib/dwfl/cni/DwflModule.cxx +++ b/frysk-sys/lib/dwfl/cni/DwflModule.cxx @@ -233,3 +233,19 @@ lib::dwfl::DwflModule::get_pubnames() dwarf_getpubnames(dwarf, callback, this,0); } + +lib::dwfl::DwarfDie* +lib::dwfl::DwflModule::offdie(jlong die, jlong offset){ + + Dwarf_Addr bias; + Dwarf_Off dwarf_offset = (Dwarf_Off)offset; + Dwarf_Die* dwarf_die = (Dwarf_Die*)JvMalloc(sizeof(Dwarf_Die)); + + ::Dwarf* dbg = dwfl_module_getdwarf ((Dwfl_Module*)this->getPointer(), &bias); + + dwarf_offdie (dbg, dwarf_offset, dwarf_die); + + lib::dwfl::DwarfDie* dwarfDie = this->parent->factory->makeDie((jlong)dwarf_die, this); + + return dwarfDie; +} hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 7 22:51:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 07 Dec 2007 22:51:00 -0000 Subject: [SCM] master: Move tree code from Log.java to Tree.java. Message-ID: <20071207225140.19042.qmail@sourceware.org> The branch, master has been updated via 86395789e16a674353533d7b897df0f24ce4d2df (commit) from 36cff033d7840d1968d9952a44486abbe3b26b3f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 86395789e16a674353533d7b897df0f24ce4d2df Author: Andrew Cagney Date: Fri Dec 7 17:49:06 2007 -0500 Move tree code from Log.java to Tree.java. frysk-sys/frysk/rsl/ChangeLog 2007-12-07 Andrew Cagney * LogOption.java: New file. * Branch.java: New. * Level.mkenum: Add MAX. * Log.java (print(int)): New. (print(long)): New. (print(String)): New. (print(Object)): New. (print(int[])): New. (print(long[])): New. (print(String[])): New. (print(Object[])): New. (fine(...), finest(...)): New. (Log()): Moved to Branch. (children): Moved to Branch. (fine(...), finest(...)): Delete. (get(String,int)): Move to Branch. (complete(String,int,List)): Move to Branch. * package.html: Update. * TestLog.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/rsl/{Log.java => Branch.java} | 180 +++-------- frysk-sys/frysk/rsl/ChangeLog | 20 ++ frysk-sys/frysk/rsl/Level.mkenum | 1 + frysk-sys/frysk/rsl/Log.java | 337 ++++++++++++-------- .../frysk/rsl/LogOption.java | 49 ++-- frysk-sys/frysk/rsl/TestLog.java | 35 ++- 6 files changed, 314 insertions(+), 308 deletions(-) copy frysk-sys/frysk/rsl/{Log.java => Branch.java} (57%) copy frysk-core/frysk/event/TestSigChild.java => frysk-sys/frysk/rsl/LogOption.java (70%) First 500 lines of diff: diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Branch.java similarity index 57% copy from frysk-sys/frysk/rsl/Log.java copy to frysk-sys/frysk/rsl/Branch.java index 964f919..b1856d9 100644 --- a/frysk-sys/frysk/rsl/Log.java +++ b/frysk-sys/frysk/rsl/Branch.java @@ -39,7 +39,6 @@ package frysk.rsl; -import java.io.PrintStream; import java.util.TreeMap; import java.util.Iterator; import java.util.List; @@ -47,99 +46,81 @@ import java.util.List; /** * Generate log information when enabled. */ -public final class Log { +public final class Branch { - private int level; + private final TreeMap children = new TreeMap(); + private final Log[] loggers = new Log[Level.MAX.intValue()]; + private Level level = Level.NONE; private final String path; private final String name; - private Log(String path, String name, Log parent) { + + private Branch(String path, String name) { this.path = path; - this.level = parent.level; this.name = name; } /** - * Create a root logger; package private so that test code can - * create their own root logger. + * Package private for testing. */ - Log() { - this.level = 0; - this.path = ""; - this.name = ""; - } - - public String toString() { - return ("{" + super.toString() - + ",path=" + path - + ",level=" + level - + "}"); + Branch() { + this("", ""); } - /** - * Return the "basename" of the logger. + * The root note; also serves as a single global lock. */ - public final String name() { - return name; - } - /** - * Return the full path of the logger. - */ - public final String path() { - return path; - } + static final Branch root = new Branch(); - private final TreeMap children = new TreeMap(); /** * Set this logger's logging level. */ - public synchronized final Log set(Level level) { - this.level = level.intValue(); - for (Iterator i = children.values().iterator(); i.hasNext(); ) { - Log child = (Log)i.next(); - child.set(level); + public final void set(Level level) { + synchronized (root) { + this.level = level; + for (int i = 0; i < Level.MAX.intValue(); i++) { + if (loggers[i] != null) { + loggers[i].set(i >= level.intValue()); + } + } + for (Iterator i = children.values().iterator(); i.hasNext(); ) { + Branch child = (Branch)i.next(); + child.set(level); + } } - return this; - } - /** - * Return this loggers current logging level. - */ - public final Level level() { - return Level.valueOf(level); } /** * POS starts at -1, then points at "." or the end of the name. * Package private so it can be called from test code. */ - synchronized final Log get(String path, int pos) { - if (pos >= path.length()) - // Reached end if the string. + final Branch get(String path, int pos) { + if (pos >= path.length()) { + // Reached end if the string; find the logger. return this; - // Split - int dot = path.indexOf(".", pos + 1); - if (dot < 0) - dot = path.length(); - String name = path.substring(pos + 1, dot); - Log child = (Log)children.get(name); - if (child == null) { - child = new Log(path.substring(0, dot), name, this); - children.put(name, child); + } else { + // Split + int dot = path.indexOf(".", pos + 1); + if (dot < 0) + dot = path.length(); + String name = path.substring(pos + 1, dot); + Branch child = (Branch)children.get(name); + if (child == null) { + child = new Branch(path.substring(0, dot), name); + children.put(name, child); + } + return child.get(path, dot); } - return child.get(path, dot); } - private static final Log root = new Log(); - /** - * Find the logger by the name KLASS. - */ - public static Log get(String klass) { - return root.get(klass, -1); - } /** - * Find the logger by with KLASS's name. + * Return the requested level. */ - public static Log get(Class klass) { - return root.get(klass.getName(), -1); + final Log get(Level level) { + int l = level.intValue(); + if (loggers[l] == null) { + loggers[l] = new Log(path, name, level, + this.level.compareTo(level) >= 0); + } + return loggers[l]; } /** @@ -153,13 +134,13 @@ public final class Log { * * Package private to allow testing. */ - synchronized final int complete(String incomplete, int pos, - List candidates) { + final int complete(String incomplete, int pos, + List candidates) { int dot = incomplete.indexOf('.', pos + 1); if (dot >= 0) { // More tokens to follow; recursively resolve. String name = incomplete.substring(pos + 1, dot); - Log child = (Log)children.get(name); + Branch child = (Branch)children.get(name); if (child == null) return -1; else @@ -176,7 +157,7 @@ public final class Log { case 0: return -1; case 1: - Log child = (Log)children.get(name); + Branch child = (Branch)children.get(name); if (child != null) { // The final NAME was an exact match for a child; // and there are no other possible completions @@ -201,65 +182,4 @@ public final class Log { } } } - - /** - * Complete the logger path using constructed loggers. Return the - * offset into incomplete where the completions apply, or -1 when - * no completions. - */ - public static int complete(String incomplete, List candidates) { - return root.complete(incomplete, -1, candidates); - } - - // Static? - private static PrintStream out = System.out; - static void set(PrintStream out) { - Log.out = out; - } - - private void prefix() { - out.print(path); - out.print(": "); - } - - private void prefix(Object o) { - out.print(path); - out.print("["); - out.print(o.toString()); - out.print("]: "); - } - - private void postfix() { - out.println(); - } - - // Add at will and on demand. - private void log(String s1) { - prefix(); - out.print(s1); - postfix(); - } - public final void fine(String s1) { - log(s1); - } - public final void finest(String s1) { - log(s1); - } - - // Add at will and on demand. - private void log(Object self, String s1) { - prefix(self); - out.print(s1); - postfix(); - } - public final void fine(Object self, String s1) { - if (level < Level.FINE_) - return; - log(self, s1); - } - public final void finest(Object self, String s1) { - if (level < Level.FINEST_) - return; - log(self, s1); - } } diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog index a7f1335..2141ae3 100644 --- a/frysk-sys/frysk/rsl/ChangeLog +++ b/frysk-sys/frysk/rsl/ChangeLog @@ -1,5 +1,25 @@ 2007-12-07 Andrew Cagney + * LogOption.java: New file. + * Branch.java: New. + * Level.mkenum: Add MAX. + * Log.java (print(int)): New. + (print(long)): New. + (print(String)): New. + (print(Object)): New. + (print(int[])): New. + (print(long[])): New. + (print(String[])): New. + (print(Object[])): New. + (fine(...), finest(...)): New. + (Log()): Moved to Branch. + (children): Moved to Branch. + (fine(...), finest(...)): Delete. + (get(String,int)): Move to Branch. + (complete(String,int,List)): Move to Branch. + * package.html: Update. + * TestLog.java: Update. + * TestLog.java (testCompletion()): New. (checkComplete(String,int,String[])): New. (testName()): New. diff --git a/frysk-sys/frysk/rsl/Level.mkenum b/frysk-sys/frysk/rsl/Level.mkenum index 5deb651..513ac9d 100644 --- a/frysk-sys/frysk/rsl/Level.mkenum +++ b/frysk-sys/frysk/rsl/Level.mkenum @@ -1,3 +1,4 @@ NONE 0 FINE 1 FINEST 2 +MAX 3 diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java index 964f919..dfaaeb7 100644 --- a/frysk-sys/frysk/rsl/Log.java +++ b/frysk-sys/frysk/rsl/Log.java @@ -40,8 +40,6 @@ package frysk.rsl; import java.io.PrintStream; -import java.util.TreeMap; -import java.util.Iterator; import java.util.List; /** @@ -49,23 +47,15 @@ import java.util.List; */ public final class Log { - private int level; private final String path; private final String name; - private Log(String path, String name, Log parent) { + private final Level level; + private boolean logging; + Log(String path, String name, Level level, boolean logging) { this.path = path; - this.level = parent.level; this.name = name; - } - - /** - * Create a root logger; package private so that test code can - * create their own root logger. - */ - Log() { - this.level = 0; - this.path = ""; - this.name = ""; + this.level = level; + this.logging = logging; } public String toString() { @@ -78,137 +68,61 @@ public final class Log { /** * Return the "basename" of the logger. */ - public final String name() { + public String name() { return name; } /** * Return the full path of the logger. */ - public final String path() { + public String path() { return path; } - - private final TreeMap children = new TreeMap(); /** - * Set this logger's logging level. + * The level at which this logger starts logging. */ - public synchronized final Log set(Level level) { - this.level = level.intValue(); - for (Iterator i = children.values().iterator(); i.hasNext(); ) { - Log child = (Log)i.next(); - child.set(level); - } - return this; + public Level level() { + return level; } /** - * Return this loggers current logging level. + * Enable logging; package private. */ - public final Level level() { - return Level.valueOf(level); + void set(boolean logging) { + this.logging = logging; } /** - * POS starts at -1, then points at "." or the end of the name. - * Package private so it can be called from test code. + * Return if this logger is currently enabled for logging. */ - synchronized final Log get(String path, int pos) { - if (pos >= path.length()) - // Reached end if the string. - return this; - // Split - int dot = path.indexOf(".", pos + 1); - if (dot < 0) - dot = path.length(); - String name = path.substring(pos + 1, dot); - Log child = (Log)children.get(name); - if (child == null) { - child = new Log(path.substring(0, dot), name, this); - children.put(name, child); - } - return child.get(path, dot); + public boolean logging() { + return logging; } - private static final Log root = new Log(); - /** - * Find the logger by the name KLASS. - */ - public static Log get(String klass) { - return root.get(klass, -1); + public static Branch get(String klass) { + synchronized (Branch.root) { + return Branch.root.get(klass, -1); + } } - /** - * Find the logger by with KLASS's name. - */ - public static Log get(Class klass) { - return root.get(klass.getName(), -1); + public static Log fine(String klass) { + return get(klass).get(Level.FINE); + } + public static Log finest(String klass) { + return get(klass).get(Level.FINEST); } - /** - * Complete the logger. On entry, POS is either -1 or the - * location of the last DOT indicating further name completion is - * needed; or the length indicating that either a "." or " " - * completion is needed. - * - * Returns the offset into INCOMPLETE that the completions apply - * to, or -1. - * - * Package private to allow testing. - */ - synchronized final int complete(String incomplete, int pos, - List candidates) { - int dot = incomplete.indexOf('.', pos + 1); - if (dot >= 0) { - // More tokens to follow; recursively resolve. - String name = incomplete.substring(pos + 1, dot); - Log child = (Log)children.get(name); - if (child == null) - return -1; - else - return child.complete(incomplete, dot, candidates); - } else { - // Final token, scan children for all partial matches. - String name = incomplete.substring(pos + 1); - for (Iterator i = children.keySet().iterator(); i.hasNext(); ) { - String child = (String)i.next(); - if (child.startsWith(name)) - candidates.add(child); - } - switch (candidates.size()) { - case 0: - return -1; - case 1: - Log child = (Log)children.get(name); - if (child != null) { - // The final NAME was an exact match for a child; - // and there are no other possible completions - // (size == 1); change the expansion to either "." - // (have children) or " " (childless). - candidates.remove(0); - synchronized (child) { - if (child.children.size() > 0) { - candidates.add("."); - } else { - candidates.add(" "); - } - return incomplete.length(); - } - } else { - // A single partial completion e.g., <>> - // -> <>. - return pos + 1; - } - default: - return pos + 1; - } - } + public static Branch get(Class klass) { + return get(klass.getName()); + } + public static Log fine(Class klass) { + return fine(klass.getName()); + } + public static Log finest(Class klass) { + return finest(klass.getName()); } - /** - * Complete the logger path using constructed loggers. Return the - * offset into incomplete where the completions apply, or -1 when - * no completions. - */ public static int complete(String incomplete, List candidates) { - return root.complete(incomplete, -1, candidates); + synchronized (Branch.root) { + return Branch.root.complete(incomplete, -1, candidates); + } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Dec 8 01:07:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 08 Dec 2007 01:07:00 -0000 Subject: [SCM] master: frysk-common/ChangeLog Message-ID: <20071208010722.18568.qmail@sourceware.org> The branch, master has been updated via c5a53ab70bbd3acf3a8aee24627e651bb04127ee (commit) from 86395789e16a674353533d7b897df0f24ce4d2df (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c5a53ab70bbd3acf3a8aee24627e651bb04127ee Author: Andrew Cagney Date: Fri Dec 7 20:05:57 2007 -0500 frysk-common/ChangeLog 2007-12-07 Andrew Cagney * mkenum.sh (map): Construct the String to Enum table using the enum's name, not string. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/mkenum.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 9d5bb00..3391c74 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-12-07 Andrew Cagney + + * mkenum.sh (map): Construct the String to Enum table using the + enum's name, not string. + 2007-12-06 Andrew Cagney * frysk-common.ac (--enable-jar-compile): When JAVAC is GCJ, diff --git a/frysk-common/mkenum.sh b/frysk-common/mkenum.sh index 0413152..201c56f 100644 --- a/frysk-common/mkenum.sh +++ b/frysk-common/mkenum.sh @@ -100,7 +100,7 @@ print_member () if test -z "${op}" ; then if test x"$print" != x- ; then map="${map} -${sp} map.put (${_name}.enumString, ${_name});" +${sp} map.put (${_name}.enumName, ${_name});" valueOf="${valueOf} ${sp} case ${_name}_: return ${_name};" fi hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Dec 10 11:17:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 10 Dec 2007 11:17:00 -0000 Subject: [SCM] master: Rename TestFCore to TestCoredumpAction Message-ID: <20071210111702.30216.qmail@sourceware.org> The branch, master has been updated via d168e117465114bc38e66b5779a4b4cc93399140 (commit) from c5a53ab70bbd3acf3a8aee24627e651bb04127ee (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d168e117465114bc38e66b5779a4b4cc93399140 Author: Phil Muldoon Date: Mon Dec 10 11:13:36 2007 +0000 Rename TestFCore to TestCoredumpAction 2007-12-10 Phil Muldoon * TestFCore.java: Rename to TestCoredumpAction.java ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/util/ChangeLog | 4 ++++ .../{TestFCore.java => TestCoredumpAction.java} | 2 +- 2 files changed, 5 insertions(+), 1 deletions(-) rename frysk-core/frysk/util/{TestFCore.java => TestCoredumpAction.java} (100%) First 500 lines of diff: diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index fa30995..2bbd2ad 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-12-10 Phil Muldoon + + * TestFCore.java: Rename to TestCoredumpAction.java + 2007-12-07 Phil Muldoon * Util.java (getProcFromCoreFile): Tweak Error text. diff --git a/frysk-core/frysk/util/TestFCore.java b/frysk-core/frysk/util/TestCoredumpAction.java similarity index 100% rename from frysk-core/frysk/util/TestFCore.java rename to frysk-core/frysk/util/TestCoredumpAction.java index 9b32905..c694a9c 100644 --- a/frysk-core/frysk/util/TestFCore.java +++ b/frysk-core/frysk/util/TestCoredumpAction.java @@ -67,7 +67,7 @@ import frysk.testbed.SlaveOffspring; import frysk.testbed.TestLib; import frysk.Config; -public class TestFCore +public class TestCoredumpAction extends TestLib { hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Mon Dec 10 13:25:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Mon, 10 Dec 2007 13:25:00 -0000 Subject: [SCM] master: New test for vfork Message-ID: <20071210132538.23414.qmail@sourceware.org> The branch, master has been updated via 898a3b520202dc904f4dbd2863380842bcf0e727 (commit) from d168e117465114bc38e66b5779a4b4cc93399140 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 898a3b520202dc904f4dbd2863380842bcf0e727 Author: Petr Machata Date: Mon Dec 10 14:05:30 2007 +0100 New test for vfork ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/pkglibdir/ChangeLog | 4 + .../{funit-syscallloop.c => funit-vfork.c} | 32 +++-- frysk-core/frysk/proc/ChangeLog | 8 ++ frysk-core/frysk/proc/TestTaskForkedObserver.java | 124 ++++++++++++-------- 4 files changed, 106 insertions(+), 62 deletions(-) copy frysk-core/frysk/pkglibdir/{funit-syscallloop.c => funit-vfork.c} (86%) First 500 lines of diff: diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog index 989cefa..2acecab 100644 --- a/frysk-core/frysk/pkglibdir/ChangeLog +++ b/frysk-core/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-10 Petr Machata + + * funit-vfork.c: New file. + 2007-12-04 Jose Flavio Aguilar Paulino * funit-regs.S: Add floating support for PowerPC64. diff --git a/frysk-core/frysk/pkglibdir/funit-syscallloop.c b/frysk-core/frysk/pkglibdir/funit-vfork.c similarity index 86% copy from frysk-core/frysk/pkglibdir/funit-syscallloop.c copy to frysk-core/frysk/pkglibdir/funit-vfork.c index 293c514..d40b923 100644 --- a/frysk-core/frysk/pkglibdir/funit-syscallloop.c +++ b/frysk-core/frysk/pkglibdir/funit-vfork.c @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, Red Hat Inc. +// Copyright 2007 Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -37,24 +37,30 @@ // version and license this file solely under the GPL without // exception. +#include +#include +#include #include #include int -main (int argc, char **argv) +main(void) { - int i; - int loop_count = atoi (argv[1]); - - if(loop_count == -1){ - while(1){ - close (-1); + pid_t pid = vfork(); + if (pid == -1) + { + perror ("vfork"); + exit (1); } - }else{ - for (i = 0; i < loop_count; ++i){ - close (-1); + else if (pid == 0) + { + puts ("child"); + _exit (1); + } + else + { + waitpid (pid, NULL, 0); + puts ("child done"); } - } - return 0; } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 91240ee..6ce4ae9 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,11 @@ +2007-12-10 Petr Machata + + * TestTaskForkedObserver.java: + (ForkObserver): Class moved from testTaskForkedObserver. + (setupForkTest): New method, contains what's common for the two tests. + (testTaskForkedObserver): Adjusted to above changes. + (testTaskVforkObserver): New test. + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. diff --git a/frysk-core/frysk/proc/TestTaskForkedObserver.java b/frysk-core/frysk/proc/TestTaskForkedObserver.java index 5adc87e..f8f5462 100644 --- a/frysk-core/frysk/proc/TestTaskForkedObserver.java +++ b/frysk-core/frysk/proc/TestTaskForkedObserver.java @@ -54,47 +54,58 @@ import frysk.testbed.DaemonBlockedAtEntry; public class TestTaskForkedObserver extends TestLib { - static int n = 10; + static int n = 10; - /** - * Test that the fork count from a sub-program that, in turn, creates lots and - * lots of sub-processes matches the expected. - */ - public void testTaskForkedObserver () - { - // Watch for any Task fork events, accumulating them as they - // arrive. - class ForkObserver - extends TaskObserverBase - implements TaskObserver.Forked + /** + * Test that the fork count from a sub-program that, in turn, creates lots and + * lots of sub-processes matches the expected. + */ + public void testTaskForkedObserver () + { + ForkObserver forkObserver = new ForkObserver(); + ProcCounter procCounter + = setupForkTest(forkObserver, new String[] + { + getExecPath ("funit-fib-fork"), + Integer.toString(n) + }); + + Fibonacci fib = new Fibonacci(n); + + assertEquals("number of child processes created (not counting first)", + fib.getCallCount() - 1, + procCounter.added.size()); + assertEquals("number of child processes destroyed (not counting first)", + fib.getCallCount() - 1, + procCounter.removed.size()); + assertEquals("number of times fork observer added", + fib.getCallCount(), + forkObserver.addedCount()); + assertEquals("number of forks (one less than number of processes)", + fib.getCallCount() - 1, forkObserver.count); + } + + public void testTaskVforkObserver () { - int count; - - public Action updateForkedParent (Task parent, Task offspring) - { - count++; - parent.requestUnblock(this); - return Action.BLOCK; - } - - public Action updateForkedOffspring (Task parent, Task offspring) - { - // XXX: Is this legit? Like knowing that the request - // won't be processed until the event loop is run - // again so that there's no race condition. - offspring.requestAddForkedObserver(this); - offspring.requestUnblock(this); - return Action.BLOCK; - } + ForkObserver forkObserver = new ForkObserver(); + ProcCounter procCounter + = setupForkTest(forkObserver, + new String[] { getExecPath ("funit-vfork") }); + + assertEquals("number of child processes created", + 1, procCounter.added.size()); + assertEquals("number of child processes destroyed", + 1, procCounter.removed.size()); + assertEquals("number of times fork observer added", + 2, forkObserver.addedCount()); + assertEquals("number of forks (one less than number of processes)", + 1, forkObserver.count); } - ForkObserver forkObserver = new ForkObserver(); + public ProcCounter setupForkTest (ForkObserver forkObserver, String[] argv) + { // Run a program that forks wildly. - DaemonBlockedAtEntry child = new DaemonBlockedAtEntry(new String[] - { - getExecPath ("funit-fib-fork"), - Integer.toString(n) - }); + DaemonBlockedAtEntry child = new DaemonBlockedAtEntry(argv); int pid = child.getMainTask().getProc().getPid(); ProcCounter procCounter = new ProcCounter(pid); @@ -103,18 +114,33 @@ public class TestTaskForkedObserver child.requestRemoveBlock(); assertRunUntilStop("run \"fork\" until exit"); - Fibonacci fib = new Fibonacci(n); - - assertEquals("number of child processes created (not counting first)", - fib.getCallCount() - 1, - procCounter.added.size()); - assertEquals("number of child processes destroyed (not counting first)", - fib.getCallCount() - 1, - procCounter.removed.size()); - assertEquals("number of times fork observer added", - fib.getCallCount(), - forkObserver.addedCount()); - assertEquals("number of forks (one less than number of processes)", - fib.getCallCount() - 1, forkObserver.count); + return procCounter; + } + + // Watch for any Task fork events, accumulating them as they + // arrive. + class ForkObserver + extends TaskObserverBase + implements TaskObserver.Forked + { + int count; + + public Action updateForkedParent (Task parent, Task offspring) + { + count++; + parent.requestUnblock(this); + return Action.BLOCK; + } + + public Action updateForkedOffspring (Task parent, Task offspring) + { + // XXX: Is this legit? Like knowing that the request + // won't be processed until the event loop is run + // again so that there's no race condition. + offspring.requestAddForkedObserver(this); + offspring.requestUnblock(this); + return Action.BLOCK; + } + } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Dec 10 14:49:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 10 Dec 2007 14:49:00 -0000 Subject: [SCM] master: Adds fmaps command Message-ID: <20071210144944.4051.qmail@sourceware.org> The branch, master has been updated via 4684fc99d954edfb96985ac678d4c1e8b45a8a2c (commit) from 898a3b520202dc904f4dbd2863380842bcf0e727 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4684fc99d954edfb96985ac678d4c1e8b45a8a2c Author: Phil Muldoon Date: Mon Dec 10 14:49:33 2007 +0000 Adds fmaps command 2007-12-10 Phil Muldoon * fmaps.java: New. * fmaps.xml: New. * TestFmaps.java: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 6 ++ .../frysk/bindir/{TestFexe.java => TestFmaps.java} | 47 +++++++--- .../dead/ExeByteBuffer.java => bindir/fmaps.java} | 94 ++++++++++---------- frysk-core/frysk/bindir/{fstack.xml => fmaps.xml} | 41 ++++----- 4 files changed, 106 insertions(+), 82 deletions(-) copy frysk-core/frysk/bindir/{TestFexe.java => TestFmaps.java} (65%) copy frysk-core/frysk/{proc/dead/ExeByteBuffer.java => bindir/fmaps.java} (61%) copy frysk-core/frysk/bindir/{fstack.xml => fmaps.xml} (82%) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index c9fcddd..8e19593 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,9 @@ +2007-12-10 Phil Muldoon + + * fmaps.java: New. + * fmaps.xml: New. + * TestFmaps.java: New. + 2007-11-30 Petr Machata * ftrace.xml: Updated. diff --git a/frysk-core/frysk/bindir/TestFexe.java b/frysk-core/frysk/bindir/TestFmaps.java similarity index 65% copy from frysk-core/frysk/bindir/TestFexe.java copy to frysk-core/frysk/bindir/TestFmaps.java index adb9a70..c4dc03e 100644 --- a/frysk-core/frysk/bindir/TestFexe.java +++ b/frysk-core/frysk/bindir/TestFmaps.java @@ -43,21 +43,40 @@ import frysk.junit.TestCase; import frysk.expunit.Expect; import frysk.Config; import java.io.File; +import frysk.testbed.TearDownExpect; +import frysk.testbed.CoreFileAtSignal; -public class TestFexe - extends TestCase +public class TestFmaps + extends TestCase { - Expect e; - public void tearDown () { - if (e != null) - e.close (); - e = null; + + /** + * Start fmaps with both a core file and an executable; avoids + * problems with Linux's bone-head COREFILE format storing only + * the first 50 characters of the executable. + */ + private Expect fmaps(String program, String[] args) { + File coreExe = Config.getPkgLibFile(program); + File coreFile = CoreFileAtSignal.constructCore(coreExe); + String[] argv = new String[args.length + 3]; + int argc = 0; + argv[argc++] = Config.getBinFile("fmaps").getAbsolutePath(); + argv[argc++] = coreFile.getAbsolutePath(); + argv[argc++] = coreExe.getAbsolutePath(); + for (int i = 0; i < args.length; i++) { + argv[argc + i] = args[i]; } - - public void testExeOfPid() { - File fexe = Config.getBinFile("fexe"); - e = new Expect(fexe.getAbsolutePath () + " $$"); - e.expect(fexe + "\r\n"); - } - + Expect e = new Expect(argv); + TearDownExpect.add(e); + return e; + } + + // Basic sniff test, are we getting output that looks like a map? + // getMaps is tested in the frysk-core/proc namespalce + public void testExeOfPid() { + Expect e = fmaps("funit-stack-outlined", new String[0]); + e.expect("frysk/pkglibdir/funit-stack-outlined"); + e.expect("ld-"); + e.expect("libc"); + } } diff --git a/frysk-core/frysk/proc/dead/ExeByteBuffer.java b/frysk-core/frysk/bindir/fmaps.java similarity index 61% copy from frysk-core/frysk/proc/dead/ExeByteBuffer.java copy to frysk-core/frysk/bindir/fmaps.java index cde7b8d..82766e6 100644 --- a/frysk-core/frysk/proc/dead/ExeByteBuffer.java +++ b/frysk-core/frysk/bindir/fmaps.java @@ -37,60 +37,62 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc.dead; +package frysk.bindir; -import java.io.File; -import java.util.ArrayList; -import java.util.Iterator; - -import frysk.sys.StatelessFile; +import frysk.util.CommandlineParser; +import frysk.util.Util; +import frysk.proc.Proc; +import frysk.proc.ProcId; import frysk.proc.MemoryMap; +import java.io.File; +import frysk.util.CoreExePair; -import inua.eio.ByteBuffer; - -public class ExeByteBuffer extends ByteBuffer { - - ArrayList metaData = new ArrayList(); +public class fmaps { + + public static void main (String[] args) { + // Parse command line. Check pid provided. - protected ExeByteBuffer(long lowWater, long highWater) { - super(lowWater, highWater); - } - - public ExeByteBuffer(ArrayList metaData) - { - super(0,-1); + CommandlineParser parser = new CommandlineParser("fexe") { - this.metaData = metaData; - } - - protected int peek(long caret) { + public void parseCores (CoreExePair[] corePairs) { + for (int i = 0; i < corePairs.length; i++) { + File coreFile = corePairs[i].coreFile; + File exeFile = corePairs[i].exeFile; + Proc proc; + + if (exeFile == null) + proc = Util.getProcFromCoreFile(coreFile); + else + proc = Util.getProcFromCoreFile(coreFile, exeFile); + printMaps(proc.getMaps()); + } + + System.exit(0); + } - Iterator i = metaData.iterator(); - MemoryMap line = null; - long offset = -1; - byte[] buffer = new byte[1]; + public void parsePids (ProcId[] pids) { + for (int i= 0; i< pids.length; i++) { + ProcId id = pids[i]; + Proc proc = Util.getProcFromPid(id); + printMaps(proc.getMaps()); + } + System.exit(0); + } - while (i.hasNext()) + private void printMaps(MemoryMap[] maps) { - line = ((MemoryMap)i.next()); - if ((caret >= line.addressLow) && (caret<= line.addressHigh)) - { - offset = line.offset + (caret - line.addressLow); - break; - } + for(int i=0; i || fmaps []"); + parser.parse(args); + + //If we got here, we didn't find a pid. + System.err.println("Error: No PID or COREFILE."); + parser.printHelp(); + System.exit(1); + } } diff --git a/frysk-core/frysk/bindir/fstack.xml b/frysk-core/frysk/bindir/fmaps.xml similarity index 82% copy from frysk-core/frysk/bindir/fstack.xml copy to frysk-core/frysk/bindir/fmaps.xml index e4eb9f5..ec08dad 100644 --- a/frysk-core/frysk/bindir/fstack.xml +++ b/frysk-core/frysk/bindir/fmaps.xml @@ -4,7 +4,7 @@ This file is part of the program FRYSK. - Copyright 2006, Red Hat Inc. + Copyright 2007, Red Hat Inc. FRYSK is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,50 +48,47 @@ - + - fstack - September 20 2006 + fmaps + December 10 2007 - fstack + fmaps 1 - fstack - Runs the frysk stack trace utility + fmaps + Prints out a process or a corefile's maps. - fstack - + fmaps + - - pids + + pids corefile - DESCRIPTION - fstack Runs the frysk stack tracing utility. + fmaps Executes the frysk map dump utility. - fstack is a small utility that uses the frysk engine to display a process stack in a similar manner to pstack. + fmaps is a utility that prints out a process or a corefile's maps. - + Enable logging to the console and at the specified @@ -103,7 +100,7 @@ Specify the file logging level. The log level can be: [ OFF | SEVERE | WARNING | INFO | CONFIG | FINE | FINER | FINEST]. - + @@ -129,7 +126,7 @@ EXAMPLE - fstack pid [...] + fcore pid [...] - + fauxv @@ -61,13 +61,13 @@ - fmaps + fauxv Prints out a process or a corefile's auxv data. - fmaps + fauxv @@ -83,9 +83,9 @@ DESCRIPTION - fmaps Executes the frysk axuv dump utility. + fauxv Executes the frysk axuv dump utility. - fmaps is a utility that prints out a process or a corefile's auxv data. + fauxv is a utility that prints out a process or a corefile's auxv data. diff --git a/frysk-core/frysk/bindir/fmaps.xml b/frysk-core/frysk/bindir/fmaps.xml index ec08dad..e18cf06 100644 --- a/frysk-core/frysk/bindir/fmaps.xml +++ b/frysk-core/frysk/bindir/fmaps.xml @@ -126,7 +126,7 @@ EXAMPLE - fcore pid [...] + fmaps pid [...]

     

    diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 8eda912..b891438 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -91,9 +91,17 @@ sudo yum install -y \ yelp libtool make +
    + +In addition, you may need to force a re-install of java-1.5.0-gcj. +See Fedora +Bug 377341 for details. + +
    + For additional updates, check -the Fedora -8, tracker bug. +the Fedora 8, +tracker bug.
    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 13 19:17:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 13 Dec 2007 19:17:00 -0000 Subject: [SCM] master: Add FAQ section on eclipse. Message-ID: <20071213191712.17895.qmail@sourceware.org> The branch, master has been updated via 15c6dcf70b5bcf0930c261e8d187e608d28303cf (commit) via 8902c6c6ec72c00e6dca8abd04d48d54a85284c3 (commit) from c7bcf13c081afe97cfcfa4d54fb950978580a123 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 15c6dcf70b5bcf0930c261e8d187e608d28303cf Author: Andrew Cagney Date: Thu Dec 13 14:16:02 2007 -0500 Add FAQ section on eclipse. commit 8902c6c6ec72c00e6dca8abd04d48d54a85284c3 Author: Andrew Cagney Date: Thu Dec 13 14:03:36 2007 -0500 Add section on eclipse. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 39 ++++++++++++++++++++++++++++----------- 1 files changed, 28 insertions(+), 11 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index b891438..5c619d4 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -53,8 +53,9 @@

    -Build or Test Question?
    -Git questions
    +Build and Test FAQ
    +Eclipse FAQ
    +GIT FAQ

    Fedora
    Ubuntu
    @@ -257,15 +258,6 @@ answers

  • Add, rename, or delete the file.
  • Run ./bootstrap.sh
  • -
    How do I build under eclipse?
      -
    • Go to Window->Preferences...->General->Workspace->Linked Resources. -
    • Create a new linked resource called "build" and link it to a directory -where you want to build frysk. -
    • Select Project->Build Project or Project->Clean to rebuild the project. -
    • If you already have a build in that directory you can refresh your -project and the jars will be found. -
    -
    How do I add a Java program that should be installed into bin/?
    • in the frysk/pkgbindir/ directory, create .java and .xml files named to @@ -358,6 +350,31 @@ suppression will take place.
    +

    Eclipse Questions, with Answers

    + +
    How to I edit files using eclipse?
    + +
    +
      +
    • Check eclipse-jdt is installed +
    • Select: File -> New -> Project; to bring up the New Project window +
    • Select: Java + Java Project +
    • Edit: Create project from existing source; entering the root of a fresh GIT tree +
    • Click finish +
    +
    + +
    What should my eclipse format options be set to?
    +
    +
      +
    • Select: Window -> Preferences ... +
    • Select: Java + Code Style + Formater +
    • Change: Active Profile; to Java Conventions +
    • Apply +
    • + +
    +

    GIT Questions, with Answers

    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 13 19:19:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 13 Dec 2007 19:19:00 -0000 Subject: [SCM] master: Add missing
    round list. Message-ID: <20071213191910.18418.qmail@sourceware.org> The branch, master has been updated via 4efeffcfb597768d5805de8a5b7093451c2fc392 (commit) from 15c6dcf70b5bcf0930c261e8d187e608d28303cf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4efeffcfb597768d5805de8a5b7093451c2fc392 Author: Andrew Cagney Date: Thu Dec 13 14:19:15 2007 -0500 Add missing
    round list. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 5c619d4..994ba4d 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -352,6 +352,8 @@ suppression will take place.

    Eclipse Questions, with Answers

    +
    +
    How to I edit files using eclipse?
    @@ -375,6 +377,8 @@ suppression will take place.
    +
    +

    GIT Questions, with Answers

    hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Thu Dec 13 20:18:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Thu, 13 Dec 2007 20:18:00 -0000 Subject: [SCM] master: Merge branch 'master' of ssh://sources.redhat.com/git/frysk Message-ID: <20071213201849.18544.qmail@sourceware.org> The branch, master has been updated via b75c309191bc0edf60db7b51ddf9c056f720fc86 (commit) via aca79501ae7e79668cf06fdc3eeab7482d2cf60e (commit) from 4efeffcfb597768d5805de8a5b7093451c2fc392 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b75c309191bc0edf60db7b51ddf9c056f720fc86 Merge: aca79501ae7e79668cf06fdc3eeab7482d2cf60e 4efeffcfb597768d5805de8a5b7093451c2fc392 Author: Rick Moseley Date: Thu Dec 13 14:18:30 2007 -0600 Merge branch 'master' of ssh://sources.redhat.com/git/frysk commit aca79501ae7e79668cf06fdc3eeab7482d2cf60e Author: Rick Moseley Date: Thu Dec 13 14:17:56 2007 -0600 Remove part of TestLoadCommand that is no longer valid. * TestLoadCommand.java: Remove part of TestLoadCommand that is no longer valid. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/TestLoadCommand.java | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index eca9cb0..2e671e9 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,7 @@ +2007-12-13 Rick Moseley + + * TestLoadCommand.java: Remove part of test no longer valid. + 2007-12-13 Phil Muldoon * AuxvCommand.java (interpret): Check for null auxv data. diff --git a/frysk-core/frysk/hpd/TestLoadCommand.java b/frysk-core/frysk/hpd/TestLoadCommand.java index cc709b6..8830150 100644 --- a/frysk-core/frysk/hpd/TestLoadCommand.java +++ b/frysk-core/frysk/hpd/TestLoadCommand.java @@ -99,8 +99,6 @@ public class TestLoadCommand extends TestLib { e.send("run\n"); e.expect(5, "Attached to process*"); e.expect(5, "Attached to process*"); - e.send("run\n"); - e.expect(5, "Error: missing program"); e.close(); } } hooks/post-receive -- frysk system monitor/debugger From jflavio@sourceware.org Fri Dec 14 13:55:00 2007 From: jflavio@sourceware.org (jflavio@sourceware.org) Date: Fri, 14 Dec 2007 13:55:00 -0000 Subject: [SCM] master: Fixing the Libunwind registers mapping for PowerPC32/64. Message-ID: <20071214135532.14119.qmail@sourceware.org> The branch, master has been updated via 59372184fa6dc225a01068158bd3cc02ee22cca9 (commit) from b75c309191bc0edf60db7b51ddf9c056f720fc86 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 59372184fa6dc225a01068158bd3cc02ee22cca9 Author: Jose Flavio Aguilar Paulino Date: Fri Dec 14 11:55:29 2007 -0200 Fixing the Libunwind registers mapping for PowerPC32/64. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/stack/ChangeLog | 5 + .../frysk/stack/LibunwindRegisterMapFactory.java | 75 +++++++++++- frysk-sys/lib/unwind/ChangeLog | 9 ++ frysk-sys/lib/unwind/GenRegEnum.awk | 134 ++++++++++++++++++++ frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum | 10 +-- frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum | 8 +- 6 files changed, 223 insertions(+), 18 deletions(-) create mode 100644 frysk-sys/lib/unwind/GenRegEnum.awk First 500 lines of diff: diff --git a/frysk-core/frysk/stack/ChangeLog b/frysk-core/frysk/stack/ChangeLog index 83886b7..639321e 100644 --- a/frysk-core/frysk/stack/ChangeLog +++ b/frysk-core/frysk/stack/ChangeLog @@ -1,3 +1,8 @@ +2007-12-14 Jose Flavio Aguilar Paulino + + * LibunwindRegisterMapFactory.java: Add PPC32/64 LR, NIP and Floating + Pointer Registers. + 2007-12-11 Andrew Cagney * TestRegs.java (testFloatRegisters()): Delete. diff --git a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java index 0ba51b4..72c34f6 100644 --- a/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java +++ b/frysk-core/frysk/stack/LibunwindRegisterMapFactory.java @@ -125,7 +125,6 @@ public class LibunwindRegisterMapFactory { .add(X8664Registers.R15, UnwindRegistersX8664.R15) .add(X8664Registers.RIP, UnwindRegistersX8664.RIP) ; - private static final RegisterMap PPC64 = new RegisterMap("PPC64 libunwind") .add(PPC64Registers.GPR0, UnwindRegistersPPC64.R0) @@ -159,7 +158,43 @@ public class LibunwindRegisterMapFactory { .add(PPC64Registers.GPR28, UnwindRegistersPPC64.R28) .add(PPC64Registers.GPR29, UnwindRegistersPPC64.R29) .add(PPC64Registers.GPR30, UnwindRegistersPPC64.R30) - .add(PPC64Registers.GPR29, UnwindRegistersPPC64.R31) + .add(PPC64Registers.GPR31, UnwindRegistersPPC64.R31) + //Special Registers + .add(PPC64Registers.LR , UnwindRegistersPPC64.LR ) + .add(PPC64Registers.NIP , UnwindRegistersPPC64.NIP) + //Floating Point Registers + .add(PPC64Registers.FPR0, UnwindRegistersPPC64.F0) + .add(PPC64Registers.FPR1, UnwindRegistersPPC64.F1) + .add(PPC64Registers.FPR2, UnwindRegistersPPC64.F2) + .add(PPC64Registers.FPR3, UnwindRegistersPPC64.F3) + .add(PPC64Registers.FPR4, UnwindRegistersPPC64.F4) + .add(PPC64Registers.FPR5, UnwindRegistersPPC64.F5) + .add(PPC64Registers.FPR6, UnwindRegistersPPC64.F6) + .add(PPC64Registers.FPR7, UnwindRegistersPPC64.F7) + .add(PPC64Registers.FPR8, UnwindRegistersPPC64.F8) + .add(PPC64Registers.FPR9, UnwindRegistersPPC64.F9) + .add(PPC64Registers.FPR10, UnwindRegistersPPC64.F10) + .add(PPC64Registers.FPR11, UnwindRegistersPPC64.F11) + .add(PPC64Registers.FPR12, UnwindRegistersPPC64.F12) + .add(PPC64Registers.FPR13, UnwindRegistersPPC64.F13) + .add(PPC64Registers.FPR14, UnwindRegistersPPC64.F14) + .add(PPC64Registers.FPR15, UnwindRegistersPPC64.F15) + .add(PPC64Registers.FPR16, UnwindRegistersPPC64.F16) + .add(PPC64Registers.FPR17, UnwindRegistersPPC64.F17) + .add(PPC64Registers.FPR18, UnwindRegistersPPC64.F18) + .add(PPC64Registers.FPR19, UnwindRegistersPPC64.F19) + .add(PPC64Registers.FPR20, UnwindRegistersPPC64.F20) + .add(PPC64Registers.FPR21, UnwindRegistersPPC64.F21) + .add(PPC64Registers.FPR22, UnwindRegistersPPC64.F22) + .add(PPC64Registers.FPR23, UnwindRegistersPPC64.F23) + .add(PPC64Registers.FPR24, UnwindRegistersPPC64.F24) + .add(PPC64Registers.FPR25, UnwindRegistersPPC64.F25) + .add(PPC64Registers.FPR26, UnwindRegistersPPC64.F26) + .add(PPC64Registers.FPR27, UnwindRegistersPPC64.F27) + .add(PPC64Registers.FPR28, UnwindRegistersPPC64.F28) + .add(PPC64Registers.FPR29, UnwindRegistersPPC64.F29) + .add(PPC64Registers.FPR30, UnwindRegistersPPC64.F30) + .add(PPC64Registers.FPR31, UnwindRegistersPPC64.F31) ; private static final RegisterMap PPC32 @@ -195,7 +230,41 @@ public class LibunwindRegisterMapFactory { .add(PPC32Registers.GPR28, UnwindRegistersPPC32.R28) .add(PPC32Registers.GPR29, UnwindRegistersPPC32.R29) .add(PPC32Registers.GPR30, UnwindRegistersPPC32.R30) - .add(PPC32Registers.GPR29, UnwindRegistersPPC32.R31) + .add(PPC32Registers.GPR31, UnwindRegistersPPC32.R31) + .add(PPC32Registers.LR , UnwindRegistersPPC32.LR ) + //Floating Point Registers + .add(PPC32Registers.FPR0, UnwindRegistersPPC32.F0) + .add(PPC32Registers.FPR1, UnwindRegistersPPC32.F1) + .add(PPC32Registers.FPR2, UnwindRegistersPPC32.F2) + .add(PPC32Registers.FPR3, UnwindRegistersPPC32.F3) + .add(PPC32Registers.FPR4, UnwindRegistersPPC32.F4) + .add(PPC32Registers.FPR5, UnwindRegistersPPC32.F5) + .add(PPC32Registers.FPR6, UnwindRegistersPPC32.F6) + .add(PPC32Registers.FPR7, UnwindRegistersPPC32.F7) + .add(PPC32Registers.FPR8, UnwindRegistersPPC32.F8) + .add(PPC32Registers.FPR9, UnwindRegistersPPC32.F9) + .add(PPC32Registers.FPR10, UnwindRegistersPPC32.F10) + .add(PPC32Registers.FPR11, UnwindRegistersPPC32.F11) + .add(PPC32Registers.FPR12, UnwindRegistersPPC32.F12) + .add(PPC32Registers.FPR13, UnwindRegistersPPC32.F13) + .add(PPC32Registers.FPR14, UnwindRegistersPPC32.F14) + .add(PPC32Registers.FPR15, UnwindRegistersPPC32.F15) + .add(PPC32Registers.FPR16, UnwindRegistersPPC32.F16) + .add(PPC32Registers.FPR17, UnwindRegistersPPC32.F17) + .add(PPC32Registers.FPR18, UnwindRegistersPPC32.F18) + .add(PPC32Registers.FPR19, UnwindRegistersPPC32.F19) + .add(PPC32Registers.FPR20, UnwindRegistersPPC32.F20) + .add(PPC32Registers.FPR21, UnwindRegistersPPC32.F21) + .add(PPC32Registers.FPR22, UnwindRegistersPPC32.F22) + .add(PPC32Registers.FPR23, UnwindRegistersPPC32.F23) + .add(PPC32Registers.FPR24, UnwindRegistersPPC32.F24) + .add(PPC32Registers.FPR25, UnwindRegistersPPC32.F25) + .add(PPC32Registers.FPR26, UnwindRegistersPPC32.F26) + .add(PPC32Registers.FPR27, UnwindRegistersPPC32.F27) + .add(PPC32Registers.FPR28, UnwindRegistersPPC32.F28) + .add(PPC32Registers.FPR29, UnwindRegistersPPC32.F29) + .add(PPC32Registers.FPR30, UnwindRegistersPPC32.F30) + .add(PPC32Registers.FPR31, UnwindRegistersPPC32.F31) ; private static final ISAMap isaToMap diff --git a/frysk-sys/lib/unwind/ChangeLog b/frysk-sys/lib/unwind/ChangeLog index bf3bbed..f93b188 100644 --- a/frysk-sys/lib/unwind/ChangeLog +++ b/frysk-sys/lib/unwind/ChangeLog @@ -1,3 +1,12 @@ +2007-12-14 Jose Flavio Aguilar Paulino + + * GenRegEnum.awk: Add new Awk script to generate the registers + enum to be used for all archs. + + * UnwindRegistersPPC32.shenum: Using the GenRegEnum.awk script. + + * UnwindRegistersPPC64.shenum: Same as above. + 2007-12-11 Andrew Cagney * cni/UnwindH.hxx (getRegister): Delete stray printf. diff --git a/frysk-sys/lib/unwind/GenRegEnum.awk b/frysk-sys/lib/unwind/GenRegEnum.awk new file mode 100644 index 0000000..fa6fcb6 --- /dev/null +++ b/frysk-sys/lib/unwind/GenRegEnum.awk @@ -0,0 +1,134 @@ +# This file is part of the program FRYSK. +# +# Copyright (C) 2006-2007 IBM +# +# Contributed by +# Jose Flavio Aguilar Paulino +# +# FRYSK is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# FRYSK is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with FRYSK; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +# +# In addition, as a special exception, Red Hat, Inc. gives You the +# additional right to link the code of FRYSK with code not covered +# under the GNU General Public License ("Non-GPL Code") and to +# distribute linked combinations including the two, subject to the +# limitations in this paragraph. Non-GPL Code permitted under this +# exception must only link to the code of FRYSK through those well +# defined interfaces identified in the file named EXCEPTION found in +# the source code files (the "Approved Interfaces"). The files of +# Non-GPL Code may instantiate templates or use macros or inline +# functions from the Approved Interfaces without causing the +# resulting work to be covered by the GNU General Public +# License. Only Red Hat, Inc. may make changes or additions to the +# list of Approved Interfaces. You must obey the GNU General Public +# License in all respects for all of the FRYSK code and other code +# used in conjunction with FRYSK except the Non-GPL Code covered by +# this exception. If you modify this file, you may extend this +# exception to your version of the file, but you are not obligated to +# do so. If you do not wish to provide this exception without +# modification, you must delete this exception statement from your +# version and license this file solely under the GPL without +# exception. + +BEGIN { + if ( ARGC != 3 ) { + print "This script ('gen_reg_list.awk') requires 2 command line args, not " (ARGC-1); + print "The first the arch prefix, ex: PPC64 or X86;"; + print "The second the registers unwind prefix, ex: UNW."; + print "To be used to compose the registers DEFINE such as: PPC32_UNW_XXXXX"; + exit 1; + } + arch_prefix = ARGV[1]; + unwind_reg_prefix = ARGV[2]; + #cleaning the argv (to avoid it to be read as files by awk) + ARGV[1] = ""; + ARGV[2] = ""; + reg_prefix = unwind_reg_prefix "_" arch_prefix "_"; + reg_num = 0; + error_parsing = 0; + all_reg_num_list = ""; +} + +#Main program block +#for each line input +{ + #Only lines started with UNW_PPC64 will be processed + line_begin_regexp = "^[ \\t]*" reg_prefix; + if($0 ~ line_begin_regexp) { + + valid_line = 0; + second_field_start = ""; + + if(NF > 1) { + second_field_start = substr($2, 1); + if(second_field_start == "=") { + if($3 != "") { + reg_equals_start = substr($3, 4); + if(reg_equals_start != "UNW_") { + valid_line = 1; + gsub(",","",$3); + reg_num = $3; + } + else { + #for this kind of line: + #UNW_TDEP_LAST_REG = UNW_PPC64_NIP, + #thats not a real valid line for creating a Java Reg + valid_line = 0; + } + } + else { + error_parsing = 1; + } + } + else + if( (second_field_start == "//") || + (second_field_start == "/*") ) { + valid_line = 1; + } + else { + error_parsing = 1; + } + } + else { + valid_line = 1; + } + + if(error_parsing == 0) { + if(valid_line == 1) { + + #Check if the current register number + #has been assigned to other registers + regnum_exp = "reg" reg_num; + if(all_reg_num_list ~ regnum_exp) { + print "ERROR, THERE ARE TWO REGISTERS WITH THE SAME NUMBER: " reg_num " (" $1 ")"; + error_parsing = 1; + } + else { + gsub(",","",$1) + gsub(reg_prefix, "", $1) + printf "%s %s\n", $1, reg_num; + #Put the printed REG number in a string (a list) + all_reg_num_list = all_reg_num_list " reg" reg_num; + reg_num++; + } + } + } + } #UNW_PPC64 lines + } + + END { + if(error_parsing == 1) { + print "ERROR, COULD NOT CONVERT libunwind HEADER to java\n"; + exit 1; + } + } diff --git a/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum b/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum index 2f9997b..785bd65 100644 --- a/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum +++ b/frysk-sys/lib/unwind/UnwindRegistersPPC32.shenum @@ -41,11 +41,5 @@ # version and license this file solely under the GPL without # exception. -# Generate a mkenum.sh table for the UNW_PPC32 encodings we are interested in. -cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc32.h | awk ' - /UNW_PPC32/ { - gsub(",","",$1) - gsub("UNW_PPC32_", "", $1) - printf "%s\n", $1 - }' | awk '{printf "%s %s\n", $1, NR -1 } -' 2>&1 +# Generate a mkenum.sh table for the UNW_PPC64 encodings we are interested in. +cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc32.h | awk -f $(dirname $0)/../../../frysk-sys/lib/unwind/GenRegEnum.awk PPC32 UNW 2>&1 diff --git a/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum b/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum index 51c515f..b370bb7 100644 --- a/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum +++ b/frysk-sys/lib/unwind/UnwindRegistersPPC64.shenum @@ -42,10 +42,4 @@ # exception. # Generate a mkenum.sh table for the UNW_PPC64 encodings we are interested in. -cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc64.h | awk ' - /UNW_PPC64/ { - gsub(",","",$1) - gsub("UNW_PPC64_", "", $1) - printf "%s\n", $1 - }' | awk '{printf "%s %s\n", $1, NR -1 } -' 2>&1 +cat $(dirname $0)/../../../frysk-imports/libunwind/include/libunwind-ppc64.h | awk -f $(dirname $0)/../../../frysk-sys/lib/unwind/GenRegEnum.awk PPC64 UNW 2>&1 hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 16:31:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 16:31:00 -0000 Subject: [SCM] master: Generate a build/eclipse project directory; cite in build notes. Message-ID: <20071214163151.16936.qmail@sourceware.org> The branch, master has been updated via dec0936bd54221500923d04bd25ea6520ec5917e (commit) via 1eaea074ac2ced0735b91d8ef6f488c64c7555f1 (commit) from 59372184fa6dc225a01068158bd3cc02ee22cca9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit dec0936bd54221500923d04bd25ea6520ec5917e Author: Andrew Cagney Date: Fri Dec 14 11:31:26 2007 -0500 Generate a build/eclipse project directory; cite in build notes. 2007-12-14 Andrew Cagney * Makefile.am (eclipse/.project): New. * Makefile.am (eclipse/.classpath): New. * .classpath.in: New. * .project.in: New. commit 1eaea074ac2ced0735b91d8ef6f488c64c7555f1 Author: Andrew Cagney Date: Fri Dec 14 09:51:57 2007 -0500 Include Makefile.rules into top-level Makefile.am. 2007-12-14 Andrew Cagney * configure.ac: m4_include common/frysk-common.ac. (AM_PROG_GCJ): Delete call. * Makefile.am: Include common/Makefile.rules. (empty): Delete. (space): Delete. (ACLOCAL_AMFLAGS): Delete. ----------------------------------------------------------------------- Summary of changes: .classpath.in | 1 + .gitignore | 2 ++ .project.in | 1 + frysk-top/.classpath.in | 29 +++++++++++++++++++++++++++++ frysk-top/.project.in | 40 ++++++++++++++++++++++++++++++++++++++++ frysk-top/ChangeLog | 14 ++++++++++++++ frysk-top/Makefile.am | 21 ++++++++++++++------- frysk-top/configure.ac | 4 ++-- htdocs/build/index.html | 17 +++++++++++------ 9 files changed, 114 insertions(+), 15 deletions(-) create mode 120000 .classpath.in create mode 120000 .project.in create mode 100644 frysk-top/.classpath.in create mode 100644 frysk-top/.project.in First 500 lines of diff: diff --git a/.classpath.in b/.classpath.in new file mode 120000 index 0000000..dbf4167 --- /dev/null +++ b/.classpath.in @@ -0,0 +1 @@ +frysk-top/.classpath.in \ No newline at end of file diff --git a/.gitignore b/.gitignore index db54151..34c4dc1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,6 @@ install-sh missing compile depcomp +config.guess +config.sub *~ diff --git a/.project.in b/.project.in new file mode 120000 index 0000000..55d6e30 --- /dev/null +++ b/.project.in @@ -0,0 +1 @@ +frysk-top/.project.in \ No newline at end of file diff --git a/frysk-top/.classpath.in b/frysk-top/.classpath.in new file mode 100644 index 0000000..c88e218 --- /dev/null +++ b/frysk-top/.classpath.in @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/frysk-top/.project.in b/frysk-top/.project.in new file mode 100644 index 0000000..c5eb182 --- /dev/null +++ b/frysk-top/.project.in @@ -0,0 +1,40 @@ + + + my project + + + + + + org.python.pydev.PyDevBuilder + + + + + + org.eclipse.jdt.core.javanature + org.python.pydev.pythonNature + + + + frysk-sys + 2 + @abs_srcdir@/frysk-sys + + + frysk-core + 2 + @abs_srcdir@/frysk-core + + + frysk-gtk + 2 + @abs_srcdir@/frysk-gtk + + + frysk-gui + 2 + @abs_srcdir@/frysk-gui + + + diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index e7e213d..aabcdac 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,3 +1,17 @@ +2007-12-14 Andrew Cagney + + * Makefile.am (eclipse/.project): New. + * Makefile.am (eclipse/.classpath): New. + * .classpath.in: New. + * .project.in: New. + + * configure.ac: m4_include common/frysk-common.ac. + (AM_PROG_GCJ): Delete call. + * Makefile.am: Include common/Makefile.rules. + (empty): Delete. + (space): Delete. + (ACLOCAL_AMFLAGS): Delete. + 2007-07-17 Andrew Cagney Move CNI code from frysk-imports/ to frysk-sys/ diff --git a/frysk-top/Makefile.am b/frysk-top/Makefile.am index f910fe5..62ffe86 100644 --- a/frysk-top/Makefile.am +++ b/frysk-top/Makefile.am @@ -37,7 +37,9 @@ # version and license this file solely under the GPL without # exception. -CLEANFILES = + +include common/Makefile.rules + SUBDIRS = \ frysk-imports \ @@ -46,12 +48,6 @@ SUBDIRS = \ frysk-gtk \ frysk-gui -empty= -space=$(empty) $(empty) - -# Find local macros. -ACLOCAL_AMFLAGS = -I common/m4 - # Note the dir/. is needed, causes the file copy to put the contents # into the top level directory. @@ -172,3 +168,14 @@ $(DOXYFILE): Doxyfile.in < $< > $@.tmp mv $@.tmp $@ CLEANFILES += doxygen + +BUILT_SOURCES += .project +eclipse/.project: .project.in + mkdir -p `dirname $@` + $(SUBST) + chmod u+w $@ +BUILT_SOURCES += .classpath +eclipse/.classpath: .classpath.in + mkdir -p `dirname $@` + $(SUBST) + chmod u+w $@ diff --git a/frysk-top/configure.ac b/frysk-top/configure.ac index 5f693c3..6e1d234 100644 --- a/frysk-top/configure.ac +++ b/frysk-top/configure.ac @@ -1,6 +1,6 @@ # This file is part of the program FRYSK. # -# Copyright 2005, Red Hat Inc. +# Copyright 2005, 2007, Red Hat Inc. # # FRYSK is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -41,11 +41,11 @@ AC_PREREQ(2.59) sinclude(common/version.ac) AC_INIT(frysk,defn([FRYSK_VERSION])) +m4_include([common/frysk-common.ac]) AM_INIT_AUTOMAKE([subdir-objects foreign no-installinfo no-exeext no-dist]) AC_CONFIG_FILES([Makefile]) AC_CONFIG_SUBDIRS([frysk-imports frysk-sys frysk-core frysk-gtk frysk-gui]) -AM_PROG_GCJ # Need to call PKG_CHECK_MODULES to get PKG_CONFIG set; used by javadoc. PKG_CHECK_MODULES(FRYSK_GNOME, [gtk+-2.0 >= 2.7.0 gtk2-java >= 2.7.0 diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 994ba4d..138094a 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -354,26 +354,31 @@ suppression will take place.
    -
    How to I edit files using eclipse?
    +
    How do I "import" frysk into eclipse?
    +First you will need to check out and build frysk from the command +line. This will create a build/eclipse directory containing the +project file. With the finished build.
    • Check eclipse-jdt is installed -
    • Select: File -> New -> Project; to bring up the New Project window -
    • Select: Java + Java Project -
    • Edit: Create project from existing source; entering the root of a fresh GIT tree -
    • Click finish +
    • Start eclipse +
    • Select: File -> Import ...; to bring up the Import window +
    • Select: General + Existing Project Into Workspace; and click next +
    • Fill in: Select root directory; with the path to the build/eclipse directory. +
    • Click: Finish
    What should my eclipse format options be set to?
    +To set the format options globally to "Java" use:
    • Select: Window -> Preferences ...
    • Select: Java + Code Style + Formater
    • Change: Active Profile; to Java Conventions
    • Apply -
    • +
    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 17:06:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 17:06:00 -0000 Subject: [SCM] master: Add emph to the build/eclipse path. Message-ID: <20071214170651.1687.qmail@sourceware.org> The branch, master has been updated via f18739e983ce23918c7b9293b42ec59cd19aa5c6 (commit) via 89798992a6ea43977ccef4d9717c75a222816f66 (commit) from dec0936bd54221500923d04bd25ea6520ec5917e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f18739e983ce23918c7b9293b42ec59cd19aa5c6 Author: Andrew Cagney Date: Fri Dec 14 12:06:30 2007 -0500 Add emph to the build/eclipse path. commit 89798992a6ea43977ccef4d9717c75a222816f66 Author: Andrew Cagney Date: Fri Dec 14 11:49:02 2007 -0500 Add frysk-import's .jar files. frysk-top/ChangeLog 2007-12-14 Andrew Cagney * .classpath.in: Add frysk-import's junit.jar, jline.jar, getopt.jar, jdom.jar, antlr.jar and cdtparser.jar. ----------------------------------------------------------------------- Summary of changes: frysk-top/.classpath.in | 18 ++++++++++++++++-- frysk-top/ChangeLog | 3 +++ htdocs/build/index.html | 8 ++++---- 3 files changed, 23 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/frysk-top/.classpath.in b/frysk-top/.classpath.in index c88e218..1539220 100644 --- a/frysk-top/.classpath.in +++ b/frysk-top/.classpath.in @@ -8,6 +8,7 @@ exclude="configure.in"/> + + + + + + + + + - - + diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index aabcdac..77836a6 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,5 +1,8 @@ 2007-12-14 Andrew Cagney + * .classpath.in: Add frysk-import's junit.jar, jline.jar, + getopt.jar, jdom.jar, antlr.jar and cdtparser.jar. + * Makefile.am (eclipse/.project): New. * Makefile.am (eclipse/.classpath): New. * .classpath.in: New. diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 138094a..ef91b2f 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -358,11 +358,11 @@ suppression will take place.
    First you will need to check out and build frysk from the command -line. This will create a build/eclipse directory containing the -project file. With the finished build. +line; creates the directory build/eclipse which +contains pre-configured eclipse .project +and .classpath files.
    Once the build has finished, from +eclipse:
      -
    • Check eclipse-jdt is installed -
    • Start eclipse
    • Select: File -> Import ...; to bring up the Import window
    • Select: General + Existing Project Into Workspace; and click next
    • Fill in: Select root directory; with the path to the build/eclipse directory. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 17:10:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 17:10:00 -0000 Subject: [SCM] master: Fix typo; mention build-from-eclipse isn't yet done. Message-ID: <20071214171000.11600.qmail@sourceware.org> The branch, master has been updated via cbc4543f8c848f5bcc642f513fa185df153a532a (commit) from f18739e983ce23918c7b9293b42ec59cd19aa5c6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cbc4543f8c848f5bcc642f513fa185df153a532a Author: Andrew Cagney Date: Fri Dec 14 12:09:52 2007 -0500 Fix typo; mention build-from-eclipse isn't yet done. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index ef91b2f..64233a4 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -354,14 +354,14 @@ suppression will take place.
    -
    How do I "import" frysk into eclipse?
    +
    How do I "import" frysk into eclipse?
    -First you will need to check out and build frysk from the command -line; creates the directory build/eclipse which -contains pre-configured eclipse .project -and .classpath files.
    Once the build has finished, from -eclipse: +First you will need to check out and build frysk from the +command line; this will create the +directory build/eclipse which contains +pre-configured eclipse .project and .classpath +files.
    Once the build has finished, from eclipse:
    • Select: File -> Import ...; to bring up the Import window
    • Select: General + Existing Project Into Workspace; and click next @@ -382,6 +382,12 @@ To set the format options globally to "Java" use:
    +
    How do I build frysk from eclipse?
    + +
    +So far everyone has stuck with the command line. +
    +

    GIT Questions, with Answers

    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 17:42:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 17:42:00 -0000 Subject: [SCM] master: Fix typos in instruction and makefile. Message-ID: <20071214174233.27015.qmail@sourceware.org> The branch, master has been updated via 9c76e9dfce159f2acf341174bf88f23ce9bcbdf3 (commit) from cbc4543f8c848f5bcc642f513fa185df153a532a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9c76e9dfce159f2acf341174bf88f23ce9bcbdf3 Author: Andrew Cagney Date: Fri Dec 14 12:42:16 2007 -0500 Fix typos in instruction and makefile. 2007-12-14 Andrew Cagney * Makefile.am (BUILT_SOURCES): Fix typo; eclipse/.project and eclipse/.classpath, instead of .project and .classpath. ----------------------------------------------------------------------- Summary of changes: frysk-top/ChangeLog | 3 +++ frysk-top/Makefile.am | 4 ++-- htdocs/build/index.html | 20 +++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) First 500 lines of diff: diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index 77836a6..f464a72 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,5 +1,8 @@ 2007-12-14 Andrew Cagney + * Makefile.am (BUILT_SOURCES): Fix typo; eclipse/.project and + eclipse/.classpath, instead of .project and .classpath. + * .classpath.in: Add frysk-import's junit.jar, jline.jar, getopt.jar, jdom.jar, antlr.jar and cdtparser.jar. diff --git a/frysk-top/Makefile.am b/frysk-top/Makefile.am index 62ffe86..2ad105c 100644 --- a/frysk-top/Makefile.am +++ b/frysk-top/Makefile.am @@ -169,12 +169,12 @@ $(DOXYFILE): Doxyfile.in mv $@.tmp $@ CLEANFILES += doxygen -BUILT_SOURCES += .project +BUILT_SOURCES += eclipse/.project eclipse/.project: .project.in mkdir -p `dirname $@` $(SUBST) chmod u+w $@ -BUILT_SOURCES += .classpath +BUILT_SOURCES += eclipse/.classpath eclipse/.classpath: .classpath.in mkdir -p `dirname $@` $(SUBST) diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 64233a4..19cc82f 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -372,18 +372,28 @@ files.
    Once the build has finished, from eclipse:
    What should my eclipse format options be set to?
    -To set the format options globally to "Java" use: +frysk pretty much follows the standard Java Conventions; to +set this locally:
      -
    • Select: Window -> Preferences ... +
    • Select: Window -> Preferences; to bring up the Preferences window
    • Select: Java + Code Style + Formater -
    • Change: Active Profile; to Java Conventions -
    • Apply +
    • Set Active Profile to Java Conventions
    +
    +
    What should the eclipse compiler be set to?
    +
    +fryskUses Java 1.4.2; to select that compiler; to set this +globally: +
      +
    • Select: Window -> Preferences; to bring up the Preferences window +
    • Select: Java + Compiler +
    • Set the Compiler Compliance Level to 1.4 +
    • Check that the Default Compliance Settings are used. +
    How do I build frysk from eclipse?
    -
    So far everyone has stuck with the command line.
    hooks/post-receive -- frysk system monitor/debugger From swagiaal@sourceware.org Fri Dec 14 17:57:00 2007 From: swagiaal@sourceware.org (swagiaal@sourceware.org) Date: Fri, 14 Dec 2007 17:57:00 -0000 Subject: [SCM] master: frysk-core/frysk/value/ChangeLog Message-ID: <20071214175743.31843.qmail@sourceware.org> The branch, master has been updated via b9cdfd91cf50ad2e4e0f585e24584bac0605a9b4 (commit) via e789830b8711e9c391c1b3b5ecb4aa6f7e7cdb5e (commit) via 42cbfde0d852d40ce22ac9aa8dda154c5a35d0fa (commit) via 5e768759849ae8019633b39cf20ff28a61c55865 (commit) via 7a68bcfd27178606d8b6d87c3157db9923afed29 (commit) via dbdf67198aca66cdd1f84ad68def57fe6ad0d425 (commit) from 9c76e9dfce159f2acf341174bf88f23ce9bcbdf3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b9cdfd91cf50ad2e4e0f585e24584bac0605a9b4 Author: Sami Wagiaalla Date: Fri Dec 14 12:47:14 2007 -0500 frysk-core/frysk/value/ChangeLog +2007-12-14 Sami Wagiaalla + + * Variable.java (Variable): Handles DwAttributeNotFoundException. + frysk-sys/lib/dwfl/ChangeLog +2007-12-14 Sami Wagiaalla + + * DwarfDie.java (isDefinitionOnly): New function. + (getDeclFile): handles DwAttributeNotFoundException. + (getDeclLine): Ditto. + * cni/DwarfDie.cxx (DwarfDie::get_decl_file): Ditto. + commit e789830b8711e9c391c1b3b5ecb4aa6f7e7cdb5e Author: Sami Wagiaalla Date: Fri Dec 14 10:58:27 2007 -0500 swagiaal: Repaced LineColpair with SourceLocation frysk-core/frysk/debuginfo/ChangeLog +2007-12-13 Sami Wagiaalla + + * TypeEntry.java: Use SourceLocation instead of LineColPair. + * TestObjectDeclarationSearchEngine.java: Ditto. + frysk-core/frysk/expr/ChangeLog +2007-12-13 Sami Wagiaalla + + * TestbedSymTab.java (scratchSourceLocation): use SourceLocation. + frysk-core/frysk/scopes/ChangeLog +2007-12-13 Sami Wagiaalla + + * LineColPair.java: Deleted + frysk-core/frysk/value/ChangeLog +2007-12-13 Sami Wagiaalla + + * ObjectDeclaration.java: Use SourceLocation instead of LineColPair + * EnumType.java (Member.getSourceLocation): Ditto. + * CompositeType.java: Ditto. + * Variable.java: Ditto. + * TestComposite.java: Ditto.. + commit 42cbfde0d852d40ce22ac9aa8dda154c5a35d0fa Author: Sami Wagiaalla Date: Thu Dec 13 17:28:57 2007 -0500 swagiaal: Moved DOM knowledge from SourceLocation to LineXXX frysk-core/frysk/debuginfo/ChangeLog +2007-12-13 Sami Wagiaalla + + * DebugInfoFrame.java (getLineXXX): New function. + frysk-core/frysk/rt/ChangeLog +2007-12-13 Sami Wagiaalla + + * LineXXX.java: New. + frysk-core/frysk/scopes/ChangeLog +2007-12-13 Sami Wagiaalla + + * SourceLocation.java: Removed DOM and proc knowledge. + frysk-gui/frysk/gui/srcwin/ChangeLog +2007-12-13 Sami Wagiaalla + + Created LineXXX to contain dom related information instead of + SourceLocation. + * InlineBuffer.java: Updated. + * CurrentStackView.java: Updated. + * SourceView.java: Updated. commit 5e768759849ae8019633b39cf20ff28a61c55865 Author: Sami Wagiaalla Date: Thu Dec 13 12:08:41 2007 -0500 swagiaal: Moved frysk.rt.Line to frysk.scopes.SourceLocation. frysk-core/frysk/debuginfo/ChangeLog +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * TestDebugInfoStackTrace.java: Updated. + * DebugInfoFrame.java: Updated. + frysk-core/frysk/dom/ChangeLog +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * DOMFactory.java: Updated. + frysk-core/frysk/hpd/ChangeLog +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * StepNextiCommand.java: + * StepNextCommand.java: Updated. + * StepInstructionCommand.java: Updated. + * StepFinishCommand.java: Updated. + * StepCommand.java: Updated. + * ListCommand.java: Updated. + frysk-core/frysk/scopes/ChangeLog +2007-12-13 Sami Wagiaalla + + * SourceLocation.java: Moved frysk.rt.Line to here. + frysk-core/frysk/stepping/ChangeLog +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * TestSteppingEngine.java: Updated. + * TestStepping.java: Updated. + +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * SourceView.java: Updated. + * SourceWindow.java: Updated. + * SourceBuffer.java: Updated. + * InlineBuffer.java: Updated. + * CurrentStackView.java: Updated. + commit 7a68bcfd27178606d8b6d87c3157db9923afed29 Author: Sami Wagiaalla Date: Thu Dec 13 11:55:46 2007 -0500 swagiaal: Changed DwarfDie.getDeclFile() now returns File. frysk-core/frysk/hpd/ChangeLog +2007-12-13 Sami Wagiaalla + + DwarfDie.getDeclFile() now returns File. + * ListCommand.java (interpret): Updated + frysk-sys/lib/dwfl/ChangeLog +2007-12-13 Sami Wagiaalla + + * DwarfDie.java (getDeclFile): Now returns File. + commit dbdf67198aca66cdd1f84ad68def57fe6ad0d425 Author: Sami Wagiaalla Date: Thu Dec 13 11:49:10 2007 -0500 swagiaal: Changed DwarfDiegetDeclLine() to return int. frysk-sys/lib/dwfl/ChangeLog +2007-12-13 Sami Wagiaalla + + * DwarfDie.java (getDeclLine): Now returns int instead of long. + * cni/DwarfDie.cxx (DwarfDie::get_decl_line): returns int + instead of long. + ----------------------------------------------------------------------- Summary of changes: .project | 86 +++++++++++++++++++- frysk-core/frysk/debuginfo/ChangeLog | 15 ++++ frysk-core/frysk/debuginfo/DebugInfoFrame.java | 31 +++++-- .../frysk/debuginfo/TestDebugInfoStackTrace.java | 16 ++-- .../TestObjectDeclarationSearchEngine.java | 2 +- frysk-core/frysk/debuginfo/TypeEntry.java | 30 ++++---- frysk-core/frysk/dom/ChangeLog | 5 + frysk-core/frysk/dom/DOMFactory.java | 5 +- frysk-core/frysk/dom/DOMImage.java | 4 +- frysk-core/frysk/expr/ChangeLog | 4 + frysk-core/frysk/expr/TestbedSymTab.java | 25 +++--- frysk-core/frysk/hpd/ChangeLog | 15 ++++ frysk-core/frysk/hpd/ListCommand.java | 10 ++- frysk-core/frysk/hpd/StepCommand.java | 4 +- frysk-core/frysk/hpd/StepFinishCommand.java | 4 +- frysk-core/frysk/hpd/StepInstructionCommand.java | 4 +- frysk-core/frysk/hpd/StepNextCommand.java | 4 +- frysk-core/frysk/hpd/StepNextiCommand.java | 4 +- frysk-core/frysk/rt/ChangeLog | 4 + frysk-core/frysk/rt/{Line.java => LineXXX.java} | 48 +++--------- frysk-core/frysk/scopes/ChangeLog | 12 +++ .../{LineColPair.java => SourceLocation.java} | 41 +++++++--- frysk-core/frysk/stepping/ChangeLog | 6 ++ frysk-core/frysk/stepping/TestStepping.java | 44 +++++----- frysk-core/frysk/stepping/TestSteppingEngine.java | 23 +++--- frysk-core/frysk/value/ChangeLog | 12 +++ frysk-core/frysk/value/CompositeType.java | 43 +++++----- frysk-core/frysk/value/EnumType.java | 6 +- frysk-core/frysk/value/ObjectDeclaration.java | 4 +- frysk-core/frysk/value/TestComposite.java | 78 +++++++++--------- frysk-core/frysk/value/Variable.java | 18 +++-- frysk-gui/frysk/gui/srcwin/ChangeLog | 17 ++++ frysk-gui/frysk/gui/srcwin/CurrentStackView.java | 15 ++-- frysk-gui/frysk/gui/srcwin/InlineBuffer.java | 16 ++-- frysk-gui/frysk/gui/srcwin/SourceBuffer.java | 75 +++++++++-------- frysk-gui/frysk/gui/srcwin/SourceView.java | 8 +- frysk-gui/frysk/gui/srcwin/SourceWindow.java | 35 ++++---- frysk-sys/lib/dwfl/ChangeLog | 17 ++++ frysk-sys/lib/dwfl/DwarfDie.java | 36 +++++++- frysk-sys/lib/dwfl/cni/DwarfDie.cxx | 4 +- 40 files changed, 536 insertions(+), 294 deletions(-) mode change 120000 => 100644 .project rename frysk-core/frysk/rt/{Line.java => LineXXX.java} (80%) rename frysk-core/frysk/scopes/{LineColPair.java => SourceLocation.java} (78%) First 500 lines of diff: diff --git a/.project b/.project deleted file mode 120000 index d59caed..9c5213b --- a/.project +++ /dev/null @@ -1 +0,0 @@ -frysk-top/.project \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index d59caed..9c5213b --- /dev/null +++ b/.project @@ -0,0 +1,85 @@ + + + frysk.patches + + + + + + org.python.pydev.PyDevBuilder + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Create Bin dir.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Autogen.sh.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Make.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Make Check.launch + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + clean, + + + LaunchConfigHandle + <project>/.externalToolBuilders/Cleaner.launch + + + + + + org.eclipse.jdt.core.javanature + org.python.pydev.pythonNature + + + + build + 2 + build + + + diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index aef00ea..c38d9f8 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,18 @@ +2007-12-13 Sami Wagiaalla + + * TypeEntry.java: Use SourceLocation instead of LineColPair. + * TestObjectDeclarationSearchEngine.java: Ditto. + +2007-12-13 Sami Wagiaalla + + * DebugInfoFrame.java (getLineXXX): New function. + +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * TestDebugInfoStackTrace.java: Updated. + * DebugInfoFrame.java: Updated. + 2007-12-11 Andrew Cagney * DebugInfoFrame.java (getLine()): Replace getLines(). diff --git a/frysk-core/frysk/debuginfo/DebugInfoFrame.java b/frysk-core/frysk/debuginfo/DebugInfoFrame.java index 4355846..8f2229e 100644 --- a/frysk-core/frysk/debuginfo/DebugInfoFrame.java +++ b/frysk-core/frysk/debuginfo/DebugInfoFrame.java @@ -48,7 +48,8 @@ import lib.dwfl.Dwfl; import lib.dwfl.DwflDieBias; import lib.dwfl.DwflLine; import frysk.dwfl.DwflCache; -import frysk.rt.Line; +import frysk.rt.LineXXX; +import frysk.scopes.SourceLocation; import frysk.scopes.Scope; import frysk.scopes.ScopeFactory; import frysk.scopes.Subprogram; @@ -164,7 +165,7 @@ public class DebugInfoFrame extends FrameDecorator { * lack of line-number information can be determined with the * test: <>.getLine() == Line.NULL. */ - public Line getLine() { + public SourceLocation getLine() { if (this.line == null) { Dwfl dwfl = DwflCache.getDwfl(this.getTask()); // The innermost frame and frames which were @@ -182,18 +183,30 @@ public class DebugInfoFrame extends FrameDecorator { File parent = new File(dwflLine.getCompilationDir()); f = new File(parent, dwflLine.getSourceFile()); } - this.line = new Line(f, dwflLine.getLineNum(), - dwflLine.getColumn(), - this.getTask().getProc()); + this.line = new SourceLocation(f, dwflLine.getLineNum(), + dwflLine.getColumn()); } // If the fetch failed, mark it as unknown. if (this.line == null) - this.line = Line.UNKNOWN; + this.line = SourceLocation.UNKNOWN; } return this.line; } - private Line line; + private SourceLocation line; + /** + * XXX: This function should not be used DOM information (LineXXX) + * should be moved out of DebugInfoFrame. + * @return + */ + public LineXXX getLineXXX(){ + if(this.lineXXX == null){ + this.lineXXX = new LineXXX(this.getLine(), this.getTask().getProc()); + } + return lineXXX; + } + LineXXX lineXXX; + public void toPrint(PrintWriter writer, boolean printParameters, boolean fullpath){ Subprogram subprogram = this.getSubprogram(); @@ -214,12 +227,12 @@ public class DebugInfoFrame extends FrameDecorator { writer.print(") "); if (fullpath) { - Line line = this.getLine(); + SourceLocation line = this.getLine(); writer.print(line.getFile().getPath()); writer.print("#"); writer.print(line.getLine()); } else { - Line line = this.getLine(); + SourceLocation line = this.getLine(); writer.print(".../"+line.getFile().getName()); writer.print("#"); writer.print(line.getLine()); diff --git a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java index 38ec790..2854d88 100644 --- a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java +++ b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java @@ -49,7 +49,7 @@ import frysk.event.Event; import frysk.proc.Manager; import frysk.proc.Proc; import frysk.proc.Task; -import frysk.rt.Line; +import frysk.scopes.SourceLocation; import frysk.stack.Frame; import frysk.stack.StackFactory; import frysk.stepping.SteppingEngine; @@ -146,7 +146,7 @@ public class TestDebugInfoStackTrace private void firstTestBacktraceAssertions () { DebugInfoFrame frame = DebugInfoStackFactory.createDebugInfoStackTrace(myTask); - Line line; + SourceLocation line; Symbol symbol; assertNotNull(frame); @@ -328,13 +328,13 @@ public class TestDebugInfoStackTrace DebugInfoFrame frame = DebugInfoStackFactory.createDebugInfoStackTrace(myTask); - if (frame.getLine() == Line.UNKNOWN) { + if (frame.getLine() == SourceLocation.UNKNOWN) { this.lineMap.put(myTask, new Integer(0)); steppingEngine.stepLine(myTask.getProc().getTasks()); return; } - Line line = frame.getLine(); + SourceLocation line = frame.getLine(); this.lineMap.put(myTask, new Integer(line.getLine())); steppingEngine.stepLine(myTask.getProc().getTasks()); } @@ -503,13 +503,13 @@ public class TestDebugInfoStackTrace public void pushPopAssertions () { DebugInfoFrame sFrame = DebugInfoStackFactory.createDebugInfoStackTrace(myTask); - Line line = null; + SourceLocation line = null; if (this.testState == PUSH || this.testState == POP) { int lineNum; - if (sFrame.getLine() == Line.UNKNOWN) + if (sFrame.getLine() == SourceLocation.UNKNOWN) { lineNum = 0; } @@ -652,7 +652,7 @@ public class TestDebugInfoStackTrace { frameTracker[task_count][i][0] = "" + frame.toString(); - if (frame.getLine() != Line.UNKNOWN) + if (frame.getLine() != SourceLocation.UNKNOWN) frameTracker[task_count][i][1] = frame.getLine().getFile().getAbsolutePath(); else frameTracker[task_count][i][1] = ""; @@ -664,7 +664,7 @@ public class TestDebugInfoStackTrace else frameTracker[task_count][i][3] = "" + frame.getInner().toString(); - if (frame.getLine() != Line.UNKNOWN) + if (frame.getLine() != SourceLocation.UNKNOWN) frameTracker[task_count][i][4] = "" + frame.getLine().getLine(); else frameTracker[task_count][i][4] = "" + 0; diff --git a/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java b/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java index aec571f..11ca3ff 100644 --- a/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java +++ b/frysk-core/frysk/debuginfo/TestObjectDeclarationSearchEngine.java @@ -170,7 +170,7 @@ public class TestObjectDeclarationSearchEngine extends TestLib{ assertNotNull("Variable found", objectDeclaration); assertEquals("Correct name", variableName, objectDeclaration.getName() ); - assertEquals("Found the correct variable on the correct line ", variableLine, objectDeclaration.getLineCol().getLine()); + assertEquals("Found the correct variable on the correct line ", variableLine, objectDeclaration.getSourceLocation().getLine()); //Negative test: try { diff --git a/frysk-core/frysk/debuginfo/TypeEntry.java b/frysk-core/frysk/debuginfo/TypeEntry.java index 8d8391a..9d9ed3b 100644 --- a/frysk-core/frysk/debuginfo/TypeEntry.java +++ b/frysk-core/frysk/debuginfo/TypeEntry.java @@ -40,7 +40,7 @@ package frysk.debuginfo; import frysk.isa.ISA; -import frysk.scopes.LineColPair; +import frysk.scopes.SourceLocation; import frysk.value.Access; import frysk.value.ArrayType; import frysk.value.CharType; @@ -155,11 +155,11 @@ public class TypeEntry } - LineColPair lineColPair; + SourceLocation sourceLocation; try{ - lineColPair = new LineColPair(member.getDeclLine(), member.getDeclColumn()); + sourceLocation = new SourceLocation(member.getDeclFile(), member.getDeclLine(), member.getDeclColumn()); }catch(DwAttributeNotFoundException e){ - lineColPair = new LineColPair(-1,-1); + sourceLocation = SourceLocation.UNKNOWN; } Access access = null; @@ -172,9 +172,9 @@ public class TypeEntry if (member.getTag() == DwTag.SUBPROGRAM) { Value v = getSubprogramValue(member); if(hasArtifitialParameter(member)){ - classType.addMember(member.getName(), lineColPair, v.getType(), offset, access); + classType.addMember(member.getName(), sourceLocation, v.getType(), offset, access); }else{ - classType.addStaticMember(locationExpression, member.getName(), lineColPair, v.getType(), offset, access); + classType.addStaticMember(locationExpression, member.getName(), sourceLocation, v.getType(), offset, access); } continue; } @@ -192,18 +192,18 @@ public class TypeEntry int bitOffset = member .getAttrConstant(DwAt.BIT_OFFSET); if(staticMember){ - classType.addStaticBitFieldMember(locationExpression, member.getName(), lineColPair, memberType, offset, access, + classType.addStaticBitFieldMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access, bitOffset, bitSize); }else{ - classType.addBitFieldMember(member.getName(), lineColPair, memberType, offset, access, + classType.addBitFieldMember(member.getName(), sourceLocation, memberType, offset, access, bitOffset, bitSize); } } else{ if(staticMember){ - classType.addStaticMember(locationExpression, member.getName(), lineColPair, memberType, offset, access); + classType.addStaticMember(locationExpression, member.getName(), sourceLocation, memberType, offset, access); }else{ - classType.addMember(member.getName(), lineColPair, memberType, offset, access); + classType.addMember(member.getName(), sourceLocation, memberType, offset, access); } } @@ -211,10 +211,10 @@ public class TypeEntry } else{ if(staticMember){ - classType.addStaticMember(locationExpression, member.getName(), lineColPair, new UnknownType(member + classType.addStaticMember(locationExpression, member.getName(), sourceLocation, new UnknownType(member .getName()), offset, access); }else{ - classType.addMember(member.getName(), lineColPair, new UnknownType(member + classType.addMember(member.getName(), sourceLocation, new UnknownType(member .getName()), offset, access); } } @@ -263,11 +263,11 @@ public class TypeEntry offset = 0; // union } - LineColPair lineColPair; + SourceLocation lineColPair; try{ - lineColPair = new LineColPair(member.getDeclLine(), member.getDeclColumn()); + lineColPair = new SourceLocation(member.getDeclFile(),member.getDeclLine(), member.getDeclColumn()); }catch(DwAttributeNotFoundException e){ - lineColPair = new LineColPair(-1,-1); + lineColPair = SourceLocation.UNKNOWN; } Access access = null; diff --git a/frysk-core/frysk/dom/ChangeLog b/frysk-core/frysk/dom/ChangeLog index 8665866..bebfb75 100644 --- a/frysk-core/frysk/dom/ChangeLog +++ b/frysk-core/frysk/dom/ChangeLog @@ -1,3 +1,8 @@ +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * DOMFactory.java: Updated. + 2007-12-11 Andrew Cagney * DOMFactory.java: Update, DebugInfoFrame.getLines() replaced by diff --git a/frysk-core/frysk/dom/DOMFactory.java b/frysk-core/frysk/dom/DOMFactory.java index 88222af..28a8bfc 100644 --- a/frysk-core/frysk/dom/DOMFactory.java +++ b/frysk-core/frysk/dom/DOMFactory.java @@ -42,7 +42,8 @@ package frysk.dom; import java.io.File; import java.io.IOException; import java.util.HashMap; -import frysk.rt.Line; + +import frysk.scopes.SourceLocation; import frysk.debuginfo.DebugInfoFrame; import frysk.proc.Proc; @@ -57,7 +58,7 @@ public class DOMFactory { DOMFrysk dom = null; - if (frame.getLine() == Line.UNKNOWN) + if (frame.getLine() == SourceLocation.UNKNOWN) return null; File file = frame.getLine().getFile(); diff --git a/frysk-core/frysk/dom/DOMImage.java b/frysk-core/frysk/dom/DOMImage.java index 9dd8dea..41e2837 100644 --- a/frysk-core/frysk/dom/DOMImage.java +++ b/frysk-core/frysk/dom/DOMImage.java @@ -49,7 +49,7 @@ import java.util.Iterator; import frysk.dom.cparser.CDTParser; import frysk.proc.Proc; -import frysk.rt.Line; +import frysk.scopes.SourceLocation; import org.jdom.Element; @@ -121,7 +121,7 @@ public class DOMImage * */ - public DOMSource addSource (Proc proc, Line line, DOMFrysk dom) throws IOException + public DOMSource addSource (Proc proc, SourceLocation line, DOMFrysk dom) throws IOException { // Get the list of include file paths associated with this image ArrayList arrayincpaths = DOMCommon.getIncludePaths(proc.getExe()); diff --git a/frysk-core/frysk/expr/ChangeLog b/frysk-core/frysk/expr/ChangeLog index 01f7557..dd7057d 100644 --- a/frysk-core/frysk/expr/ChangeLog +++ b/frysk-core/frysk/expr/ChangeLog @@ -1,3 +1,7 @@ +2007-12-13 Sami Wagiaalla + + * TestbedSymTab.java (scratchSourceLocation): use SourceLocation. + 2007-12-11 Andrew Cagney * TestArithmetics.java (checkErrorExpr(String,String)): New. diff --git a/frysk-core/frysk/expr/TestbedSymTab.java b/frysk-core/frysk/expr/TestbedSymTab.java index 7a96973..4391ac4 100644 --- a/frysk-core/frysk/expr/TestbedSymTab.java +++ b/frysk-core/frysk/expr/TestbedSymTab.java @@ -39,31 +39,32 @@ package frysk.expr; -import java.util.Iterator; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; + +import java.util.HashMap; +import java.util.Iterator; import java.util.List; import frysk.Config; -import frysk.scopes.LineColPair; +import frysk.scopes.SourceLocation; +import frysk.value.ClassType; import frysk.value.ObjectDeclaration; +import frysk.value.ScratchLocation; +import frysk.value.StandardTypes; import frysk.value.Type; import frysk.value.Value; import frysk.value.Variable; -import java.util.HashMap; -import frysk.value.StandardTypes; -import frysk.value.ClassType; -import frysk.value.ScratchLocation; class TestbedSymTab implements ExprSymTab { - private final LineColPair scratchLineColPair = new LineColPair(0,0); + private final SourceLocation scratchSourceLocation = SourceLocation.UNKNOWN; private Type classType = new ClassType(null, 12) - .addMember("alpha", scratchLineColPair, StandardTypes.INT32B_T, 0, null) - .addMember("beta", scratchLineColPair, StandardTypes.INT32B_T, 4, null) - .addMember("gamma", scratchLineColPair, StandardTypes.INT16B_T, 8, null) - .addBitFieldMember("iota", scratchLineColPair, StandardTypes.INT32B_T, 8, null, 16, 8) // 0x0000ff00 - .addBitFieldMember("epsilon", scratchLineColPair, StandardTypes.INT32B_T, 8, null, 24, 8); // 0x000000ff + .addMember("alpha", scratchSourceLocation, StandardTypes.INT32B_T, 0, null) + .addMember("beta", scratchSourceLocation, StandardTypes.INT32B_T, 4, null) + .addMember("gamma", scratchSourceLocation, StandardTypes.INT16B_T, 8, null) + .addBitFieldMember("iota", scratchSourceLocation, StandardTypes.INT32B_T, 8, null, 16, 8) // 0x0000ff00 + .addBitFieldMember("epsilon", scratchSourceLocation, StandardTypes.INT32B_T, 8, null, 24, 8); // 0x000000ff private byte[] buf = { 0x01, 0x02, 0x03, 0x04, // alpha 0x05, 0x06, 0x07, 0x08, // beta diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 2e671e9..cae4d71 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,18 @@ +2007-12-13 Sami Wagiaalla + + Moved frysk.rt.Line to frysk.scopes.SourceLocation. + * StepNextiCommand.java: hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 21:57:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 21:57:00 -0000 Subject: [SCM] master: Add list of suggested eclipse packages. Message-ID: <20071214215743.4133.qmail@sourceware.org> The branch, master has been updated via 25028d0a807d9509b96525f34fb00bf1bf44c79c (commit) from b9cdfd91cf50ad2e4e0f585e24584bac0605a9b4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 25028d0a807d9509b96525f34fb00bf1bf44c79c Author: Andrew Cagney Date: Fri Dec 14 16:57:04 2007 -0500 Add list of suggested eclipse packages. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index 19cc82f..e12cf7b 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -393,6 +393,16 @@ globally: +
    What eclipse packages are recommended?
    +
    Check for at least the following (on Fedora 8): +
    +sudo yum install eclipse eclipse-changelog \
    +    eclipse-cdt eclipse-jdt \
    +    java-1.4.2-gcj-compat-src 
    +
    + +
    +
    How do I build frysk from eclipse?
    So far everyone has stuck with the command line. hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 14 23:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 14 Dec 2007 23:54:00 -0000 Subject: [SCM] master: Really commit Makefile.am changes for eclipse config. Message-ID: <20071214235354.3966.qmail@sourceware.org> The branch, master has been updated via 9bbfe5c000a1fc3116d8eb919d1ebd061ebbf1f4 (commit) via 04240fe3c4209e4a51323622509ba5c0f60d9839 (commit) from 25028d0a807d9509b96525f34fb00bf1bf44c79c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9bbfe5c000a1fc3116d8eb919d1ebd061ebbf1f4 Author: Andrew Cagney Date: Fri Dec 14 18:53:07 2007 -0500 Really commit Makefile.am changes for eclipse config. commit 04240fe3c4209e4a51323622509ba5c0f60d9839 Author: Andrew Cagney Date: Fri Dec 14 18:34:13 2007 -0500 Add an explicit make rule. frysk-top/ChangeLog 2007-12-14 Andrew Cagney * org.eclipse.jdt.ui.prefs.in: New. * org.eclipse.jdt.core.prefs.in: New. * make-all.launch.in: New. * project.in: Rename .project.in. * classpath.in: Rename .classpath.in. * Makefile.am (eclipse): New phony target. (ECLIPSE_CONFIG): Define. (BUILT_SOURCES): Add $(ECLIPSE_CONFIG). (eclipse/.%, eclipse/.externalToolBuilders/%.launch) (eclipse/.settings/%.prefs): New targets. ----------------------------------------------------------------------- Summary of changes: .classpath.in | 1 - .project.in | 1 - frysk-top/ChangeLog | 11 + frysk-top/Makefile.am | 21 +- frysk-top/{.classpath.in => classpath.in} | 0 frysk-top/make-all.launch.in | 11 + ...dt.core.prefs => org.eclipse.jdt.core.prefs.in} | 468 ++++++++++---------- frysk-top/org.eclipse.jdt.ui.prefs.in | 4 + frysk-top/{.project.in => project.in} | 7 +- 9 files changed, 285 insertions(+), 239 deletions(-) delete mode 120000 .classpath.in delete mode 120000 .project.in rename frysk-top/{.classpath.in => classpath.in} (100%) create mode 100644 frysk-top/make-all.launch.in copy frysk-top/{.settings/org.eclipse.jdt.core.prefs => org.eclipse.jdt.core.prefs.in} (95%) create mode 100644 frysk-top/org.eclipse.jdt.ui.prefs.in rename frysk-top/{.project.in => project.in} (77%) First 500 lines of diff: diff --git a/.classpath.in b/.classpath.in deleted file mode 120000 index dbf4167..0000000 --- a/.classpath.in +++ /dev/null @@ -1 +0,0 @@ -frysk-top/.classpath.in \ No newline at end of file diff --git a/.project.in b/.project.in deleted file mode 120000 index 55d6e30..0000000 --- a/.project.in +++ /dev/null @@ -1 +0,0 @@ -frysk-top/.project.in \ No newline at end of file diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index f464a72..c54f24f 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,5 +1,16 @@ 2007-12-14 Andrew Cagney + * org.eclipse.jdt.ui.prefs.in: New. + * org.eclipse.jdt.core.prefs.in: New. + * make-all.launch.in: New. + * project.in: Rename .project.in. + * classpath.in: Rename .classpath.in. + * Makefile.am (eclipse): New phony target. + (ECLIPSE_CONFIG): Define. + (BUILT_SOURCES): Add $(ECLIPSE_CONFIG). + (eclipse/.%, eclipse/.externalToolBuilders/%.launch) + (eclipse/.settings/%.prefs): New targets. + * Makefile.am (BUILT_SOURCES): Fix typo; eclipse/.project and eclipse/.classpath, instead of .project and .classpath. diff --git a/frysk-top/Makefile.am b/frysk-top/Makefile.am index 2ad105c..0ee89d9 100644 --- a/frysk-top/Makefile.am +++ b/frysk-top/Makefile.am @@ -169,13 +169,26 @@ $(DOXYFILE): Doxyfile.in mv $@.tmp $@ CLEANFILES += doxygen -BUILT_SOURCES += eclipse/.project -eclipse/.project: .project.in +# Create an eclipse directory that matches the build tree. + +.PHONY: eclipse +eclipse: $(ECLIPSE_CONFIG) +BUILT_SOURCES += $(ECLIPSE_CONFIG) +ECLIPSE_CONFIG = +ECLIPSE_CONFIG += eclipse/.project +ECLIPSE_CONFIG += eclipse/.classpath +eclipse/.%: frysk-top/%.in + mkdir -p `dirname $@` + $(SUBST) + chmod u+w $@ +ECLIPSE_CONFIG += eclipse/.externalToolBuilders/make-all.launch +eclipse/.externalToolBuilders/%.launch: frysk-top/%.launch.in mkdir -p `dirname $@` $(SUBST) chmod u+w $@ -BUILT_SOURCES += eclipse/.classpath -eclipse/.classpath: .classpath.in +ECLIPSE_CONFIG += eclipse/.settings/org.eclipse.jdt.core.prefs +ECLIPSE_CONFIG += eclipse/.settings/org.eclipse.jdt.ui.prefs +eclipse/.settings/%.prefs: frysk-top/%.prefs.in mkdir -p `dirname $@` $(SUBST) chmod u+w $@ diff --git a/frysk-top/.classpath.in b/frysk-top/classpath.in similarity index 100% rename from frysk-top/.classpath.in rename to frysk-top/classpath.in diff --git a/frysk-top/make-all.launch.in b/frysk-top/make-all.launch.in new file mode 100644 index 0000000..85b3360 --- /dev/null +++ b/frysk-top/make-all.launch.in @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frysk-top/.settings/org.eclipse.jdt.core.prefs b/frysk-top/org.eclipse.jdt.core.prefs.in similarity index 95% copy from frysk-top/.settings/org.eclipse.jdt.core.prefs copy to frysk-top/org.eclipse.jdt.core.prefs.in index 3568b4c..3301607 100644 --- a/frysk-top/.settings/org.eclipse.jdt.core.prefs +++ b/frysk-top/org.eclipse.jdt.core.prefs.in @@ -1,258 +1,262 @@ -#Thu Jun 21 14:46:16 GMT-04:00 2007 -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +#Fri Dec 14 12:32:09 EST 2007 +eclipse.preferences.version=1 +instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 org.eclipse.jdt.core.compiler.compliance=1.4 -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning +org.eclipse.jdt.core.compiler.source=1.3 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=true +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=true +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2 +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.lineSplit=80 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.comment.format_comments=true -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.blank_lines_before_field=1 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Dec 15 01:08:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 15 Dec 2007 01:08:00 -0000 Subject: [SCM] master: expunit.EofException -> EndOfFileException; expand exception messages. Message-ID: <20071215010828.5115.qmail@sourceware.org> The branch, master has been updated via 523f56213ae2f667cce2af311f7a837c2e22188b (commit) from 9bbfe5c000a1fc3116d8eb919d1ebd061ebbf1f4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 523f56213ae2f667cce2af311f7a837c2e22188b Author: Andrew Cagney Date: Fri Dec 14 20:07:35 2007 -0500 expunit.EofException -> EndOfFileException; expand exception messages. frysk-core/frysk/hpd/ChangeLog 2007-12-14 cagney * HpdTestbed.java: Update; EofException renamed to EndOfFileException. * TestPreprocessor.java: Ditto. frysk-sys/frysk/expunit/ChangeLog 2007-12-14 cagney * EndOfFileException.java: Rename EofException.java. (EndOfFileException(Match[], String)): Replace EndOfFileException(). * TimeoutException.java (TimeoutException(long, Match[], String)): Replace TimeoutException(long). * Expect.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 5 ++ frysk-core/frysk/hpd/HpdTestbed.java | 8 ++-- frysk-core/frysk/hpd/TestPreprocessor.java | 4 +- frysk-sys/frysk/expunit/ChangeLog | 8 +++ ...ationException.java => EndOfFileException.java} | 31 +++++++---- frysk-sys/frysk/expunit/EofException.java | 54 -------------------- frysk-sys/frysk/expunit/Expect.java | 9 ++-- frysk-sys/frysk/expunit/TimeoutException.java | 22 +++++++- 8 files changed, 63 insertions(+), 78 deletions(-) copy frysk-sys/frysk/expunit/{TerminationException.java => EndOfFileException.java} (79%) delete mode 100644 frysk-sys/frysk/expunit/EofException.java First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index cae4d71..c8afbd5 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,8 @@ +2007-12-14 cagney + + * HpdTestbed.java: Update; EofException renamed to EndOfFileException. + * TestPreprocessor.java: Ditto. + 2007-12-13 Sami Wagiaalla Moved frysk.rt.Line to frysk.scopes.SourceLocation. diff --git a/frysk-core/frysk/hpd/HpdTestbed.java b/frysk-core/frysk/hpd/HpdTestbed.java index 9914ee5..2cec313 100644 --- a/frysk-core/frysk/hpd/HpdTestbed.java +++ b/frysk-core/frysk/hpd/HpdTestbed.java @@ -45,7 +45,7 @@ import frysk.testbed.CoreFileAtSignal; import frysk.expunit.Expect; import frysk.expunit.Match; import frysk.expunit.Regex; -import frysk.expunit.EofException; +import frysk.expunit.EndOfFileException; import frysk.expunit.TimeoutException; import java.io.File; import frysk.testbed.TearDownExpect; @@ -105,7 +105,7 @@ public class HpdTestbed } } }); - } catch (EofException e) { + } catch (EndOfFileException e) { TestCase.fail(why + " got: "); } catch (TimeoutException t) { TestCase.fail(why + " got: "); @@ -119,7 +119,7 @@ public class HpdTestbed public HpdTestbed expectPrompt() { try { expect(prompt); - } catch (EofException e) { + } catch (EndOfFileException e) { TestCase.fail("expecting: <" + prompt + "> got: EOF"); } catch (TimeoutException t) { TestCase.fail("expecting: <" + prompt + "> got: TIMEOUT"); @@ -197,7 +197,7 @@ public class HpdTestbed } } }); - } catch (EofException e) { + } catch (EndOfFileException e) { TestCase.fail("Expecting got: "); } catch (TimeoutException t) { TestCase.fail("Expecting got: "); diff --git a/frysk-core/frysk/hpd/TestPreprocessor.java b/frysk-core/frysk/hpd/TestPreprocessor.java index 84e4ffd..000d643 100644 --- a/frysk-core/frysk/hpd/TestPreprocessor.java +++ b/frysk-core/frysk/hpd/TestPreprocessor.java @@ -40,7 +40,7 @@ package frysk.hpd; import frysk.expunit.Regex; -import frysk.expunit.EofException; +import frysk.expunit.EndOfFileException; /** * Test the pre-processor which unpacks stuff like @@ -68,7 +68,7 @@ public class TestPreprocessor extends TestLib { fail("Unexpected input: <<" + group() + ">>"); } }); - } catch (EofException e) { + } catch (EndOfFileException e) { eof = true; } assertTrue("eof", eof); diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog index 16d4b15..1173518 100644 --- a/frysk-sys/frysk/expunit/ChangeLog +++ b/frysk-sys/frysk/expunit/ChangeLog @@ -1,3 +1,11 @@ +2007-12-14 cagney + + * EndOfFileException.java: Rename EofException.java. + (EndOfFileException(Match[], String)): Replace EndOfFileException(). + * TimeoutException.java (TimeoutException(long, Match[], String)): Replace TimeoutException(long). + * Expect.java: Update. + + 2007-12-04 Andrew Cagney Merged frysk.sys.Sig into frysk.sys.Signal. diff --git a/frysk-sys/frysk/expunit/TerminationException.java b/frysk-sys/frysk/expunit/EndOfFileException.java similarity index 79% copy from frysk-sys/frysk/expunit/TerminationException.java copy to frysk-sys/frysk/expunit/EndOfFileException.java index 7c69c9f..e815132 100644 --- a/frysk-sys/frysk/expunit/TerminationException.java +++ b/frysk-sys/frysk/expunit/EndOfFileException.java @@ -43,19 +43,26 @@ package frysk.expunit; * Thrown an an end-of-file is encountered and nothing else matches. */ -public class TerminationException - extends RuntimeException -{ +public class EndOfFileException extends RuntimeException { static final long serialVersionUID = 1; - static private String expecting (int expectedStatus) - { - if (expectedStatus >= 0) - return " (expecting exit with status " + expectedStatus + ")"; - else - return " (expecting kill with signal " + expectedStatus + ")"; + + private static String message(Match[] matches, String output) { + StringBuffer msg = new StringBuffer(); + msg.append("End-of-file"); + if (matches != null) { + msg.append("; expecting: "); + for (int i = 0; i < matches.length; i++) { + msg.append(" <<"); + msg.append(matches.toString()); + msg.append(">>"); + } + } + msg.append("; buffer <<"); + msg.append(output); + msg.append(">>"); + return msg.toString(); } - TerminationException (int expectedStatus, String s) - { - super (s + expecting (expectedStatus)); + EndOfFileException(Match[] matches, String output) { + super(message(matches, output)); } } diff --git a/frysk-sys/frysk/expunit/EofException.java b/frysk-sys/frysk/expunit/EofException.java deleted file mode 100644 index 19ec3fd..0000000 --- a/frysk-sys/frysk/expunit/EofException.java +++ /dev/null @@ -1,54 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.expunit; - -/** - * Thrown an an end-of-file is encountered and nothing else matches. - */ - -public class EofException - extends RuntimeException -{ - static final long serialVersionUID = 1; - EofException () - { - super ("End-of-file encountered"); - } -} diff --git a/frysk-sys/frysk/expunit/Expect.java b/frysk-sys/frysk/expunit/Expect.java index 83eecd0..c39918f 100644 --- a/frysk-sys/frysk/expunit/Expect.java +++ b/frysk-sys/frysk/expunit/Expect.java @@ -232,12 +232,13 @@ public class Expect } if (eof) { logger.log (Level.FINE, "{0} match EOF\n", this); - throw new EofException (); + throw new EndOfFileException(matches, output); } long timeRemaining = endTime - System.currentTimeMillis (); if (timeRemaining <= 0) { logger.log (Level.FINE, "{0} match TIMEOUT\n", this); - throw new TimeoutException (timeoutMilliseconds / 1000); + throw new TimeoutException(timeoutMilliseconds / 1000, + matches, output); } logger.log (Level.FINE, @@ -351,7 +352,7 @@ public class Expect try { expect (); } - catch (EofException e) { + catch (EndOfFileException e) { // Just what the doctor ordered. } } @@ -366,7 +367,7 @@ public class Expect try { expect (); } - catch (EofException e) { + catch (EndOfFileException e) { // This is blocking; which probably isn't good. pid.blockingWait (new WaitObserver (status)); } diff --git a/frysk-sys/frysk/expunit/TimeoutException.java b/frysk-sys/frysk/expunit/TimeoutException.java index c916760..4f64398 100644 --- a/frysk-sys/frysk/expunit/TimeoutException.java +++ b/frysk-sys/frysk/expunit/TimeoutException.java @@ -48,8 +48,26 @@ public class TimeoutException extends RuntimeException { static final long serialVersionUID = 1; - TimeoutException (long millisecondTimeout) + private static String message(long millisecondTimeout, Match[] matches, String output) { + StringBuffer msg = new StringBuffer(); + msg.append("Timeout of " + millisecondTimeout + " expired"); + if (matches != null) { + msg.append("; expecting: "); + for (int i = 0; i < matches.length; i++) { + msg.append(" <<"); + msg.append(matches.toString()); + msg.append(">>"); + } + } + msg.append("; buffer <<"); + msg.append(output); + msg.append(">>"); + return msg.toString(); + } + + TimeoutException (long millisecondTimeout, Match[] matches, String output) { - super ("Timeout of " + millisecondTimeout + " expired"); + super (message(millisecondTimeout, matches, output)); + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Dec 15 03:46:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 15 Dec 2007 03:46:00 -0000 Subject: [SCM] master: Enable builds after "clean". Message-ID: <20071215034629.17812.qmail@sourceware.org> The branch, master has been updated via d2a0a36ecfd0058513e5a8a6d0d86572abbfa5ba (commit) from 523f56213ae2f667cce2af311f7a837c2e22188b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d2a0a36ecfd0058513e5a8a6d0d86572abbfa5ba Author: Andrew Cagney Date: Fri Dec 14 22:45:58 2007 -0500 Enable builds after "clean". frysk-top/ChangeLog 2007-12-14 Andrew Cagney * make-all.launch.in: Add "full" to org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS. ----------------------------------------------------------------------- Summary of changes: frysk-top/ChangeLog | 3 +++ frysk-top/make-all.launch.in | 2 +- 2 files changed, 4 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index c54f24f..80c716b 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,5 +1,8 @@ 2007-12-14 Andrew Cagney + * make-all.launch.in: Add "full" to + org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS. + * org.eclipse.jdt.ui.prefs.in: New. * org.eclipse.jdt.core.prefs.in: New. * make-all.launch.in: New. diff --git a/frysk-top/make-all.launch.in b/frysk-top/make-all.launch.in index 85b3360..afdbc9a 100644 --- a/frysk-top/make-all.launch.in +++ b/frysk-top/make-all.launch.in @@ -4,7 +4,7 @@ - + hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 17 17:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 17 Dec 2007 17:25:00 -0000 Subject: [SCM] master: Refactor EndOfFileException and TimeoutException into MatchException. Message-ID: <20071217172529.20069.qmail@sourceware.org> The branch, master has been updated via b1956ae0e033bbecd1d58cdf732e806968e82e81 (commit) from d2a0a36ecfd0058513e5a8a6d0d86572abbfa5ba (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit b1956ae0e033bbecd1d58cdf732e806968e82e81 Author: Andrew Cagney Date: Mon Dec 17 12:24:52 2007 -0500 Refactor EndOfFileException and TimeoutException into MatchException. 2007-12-17 cagney * MatchException.java: New. * EndOfFileException.java: Extend MatchException. (message()): Delete. * TimeoutException.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/expunit/ChangeLog | 7 +++++ frysk-sys/frysk/expunit/EndOfFileException.java | 20 +------------- frysk-sys/frysk/expunit/MatchException.java | 30 +++++++++++++++++++++++ frysk-sys/frysk/expunit/TimeoutException.java | 26 ++----------------- 4 files changed, 42 insertions(+), 41 deletions(-) create mode 100644 frysk-sys/frysk/expunit/MatchException.java First 500 lines of diff: diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog index 1173518..25f737d 100644 --- a/frysk-sys/frysk/expunit/ChangeLog +++ b/frysk-sys/frysk/expunit/ChangeLog @@ -1,3 +1,10 @@ +2007-12-17 cagney + + * MatchException.java: New. + * EndOfFileException.java: Extend MatchException. + (message()): Delete. + * TimeoutException.java: Ditto. + 2007-12-14 cagney * EndOfFileException.java: Rename EofException.java. diff --git a/frysk-sys/frysk/expunit/EndOfFileException.java b/frysk-sys/frysk/expunit/EndOfFileException.java index e815132..48051c5 100644 --- a/frysk-sys/frysk/expunit/EndOfFileException.java +++ b/frysk-sys/frysk/expunit/EndOfFileException.java @@ -43,26 +43,10 @@ package frysk.expunit; * Thrown an an end-of-file is encountered and nothing else matches. */ -public class EndOfFileException extends RuntimeException { +public class EndOfFileException extends MatchException { static final long serialVersionUID = 1; - private static String message(Match[] matches, String output) { - StringBuffer msg = new StringBuffer(); - msg.append("End-of-file"); - if (matches != null) { - msg.append("; expecting: "); - for (int i = 0; i < matches.length; i++) { - msg.append(" <<"); - msg.append(matches.toString()); - msg.append(">>"); - } - } - msg.append("; buffer <<"); - msg.append(output); - msg.append(">>"); - return msg.toString(); - } EndOfFileException(Match[] matches, String output) { - super(message(matches, output)); + super("end-of-file", matches, output); } } diff --git a/frysk-sys/frysk/expunit/MatchException.java b/frysk-sys/frysk/expunit/MatchException.java new file mode 100644 index 0000000..e59bedf --- /dev/null +++ b/frysk-sys/frysk/expunit/MatchException.java @@ -0,0 +1,30 @@ +package frysk.expunit; + +class MatchException extends RuntimeException { + static final long serialVersionUID = 1; + private final String error; + private final Match[] matches; + private final String output; + MatchException(String error, Match[] matches, String output) { + super(error); + this.error = error; + this.matches = matches; + this.output = output; + } + public String getMessage() { + StringBuffer msg = new StringBuffer(); + msg.append(error); + if (matches != null) { + msg.append("; expecting: "); + for (int i = 0; i < matches.length; i++) { + msg.append(" <<"); + msg.append(matches.toString()); + msg.append(">>"); + } + } + msg.append("; buffer <<"); + msg.append(output); + msg.append(">>"); + return msg.toString(); + } +} \ No newline at end of file diff --git a/frysk-sys/frysk/expunit/TimeoutException.java b/frysk-sys/frysk/expunit/TimeoutException.java index 4f64398..d050720 100644 --- a/frysk-sys/frysk/expunit/TimeoutException.java +++ b/frysk-sys/frysk/expunit/TimeoutException.java @@ -44,30 +44,10 @@ package frysk.expunit; * pattern. */ -public class TimeoutException - extends RuntimeException -{ +public class TimeoutException extends MatchException { static final long serialVersionUID = 1; - private static String message(long millisecondTimeout, Match[] matches, String output) { - StringBuffer msg = new StringBuffer(); - msg.append("Timeout of " + millisecondTimeout + " expired"); - if (matches != null) { - msg.append("; expecting: "); - for (int i = 0; i < matches.length; i++) { - msg.append(" <<"); - msg.append(matches.toString()); - msg.append(">>"); - } - } - msg.append("; buffer <<"); - msg.append(output); - msg.append(">>"); - return msg.toString(); - } - TimeoutException (long millisecondTimeout, Match[] matches, String output) - { - super (message(millisecondTimeout, matches, output)); - + TimeoutException(long millisecondTimeout, Match[] matches, String output) { + super("timeout of " + millisecondTimeout + "expired", matches, output); } } hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Mon Dec 17 18:22:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Mon, 17 Dec 2007 18:22:00 -0000 Subject: [SCM] master: Fix some expect manual timeout cases. Message-ID: <20071217182236.20660.qmail@sourceware.org> The branch, master has been updated via aaef9996c9d45d73d88b04ddd1334b53970d7e7a (commit) from b1956ae0e033bbecd1d58cdf732e806968e82e81 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit aaef9996c9d45d73d88b04ddd1334b53970d7e7a Author: Phil Muldoon Date: Mon Dec 17 18:22:27 2007 +0000 Fix some expect manual timeout cases. 2007-12-17 Phil Muldoon * TestAuxvCommand.java (testAuxVCoreCommand): Remove expect timeout override. * TestCoreCommand.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 8 +++++++- frysk-core/frysk/hpd/TestAuxvCommand.java | 2 +- frysk-core/frysk/hpd/TestCoreCommand.java | 12 ++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index c8afbd5..082baca 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,4 +1,10 @@ -2007-12-14 cagney +2007-12-17 Phil Muldoon + + * TestAuxvCommand.java (testAuxVCoreCommand): Remove expect + timeout override. + * TestCoreCommand.java: Ditto. + +2007-12-14 Andrew Cagney * HpdTestbed.java: Update; EofException renamed to EndOfFileException. * TestPreprocessor.java: Ditto. diff --git a/frysk-core/frysk/hpd/TestAuxvCommand.java b/frysk-core/frysk/hpd/TestAuxvCommand.java index a0f9c59..3b566b7 100644 --- a/frysk-core/frysk/hpd/TestAuxvCommand.java +++ b/frysk-core/frysk/hpd/TestAuxvCommand.java @@ -74,7 +74,7 @@ public class TestAuxvCommand extends TestLib { e = new HpdTestbed(); e.send("core " + core.getPath() + " -noexe\n"); - e.expect(5, "Attached to core file.*"); + e.expect("Attached to core file.*"); e.send("auxv\n"); Iterator i = buildAuxv.auxvData.iterator(); while (i.hasNext()) diff --git a/frysk-core/frysk/hpd/TestCoreCommand.java b/frysk-core/frysk/hpd/TestCoreCommand.java index 834ce6c..e193acd 100644 --- a/frysk-core/frysk/hpd/TestCoreCommand.java +++ b/frysk-core/frysk/hpd/TestCoreCommand.java @@ -52,7 +52,7 @@ public class TestCoreCommand extends TestLib { e = new HpdTestbed(); e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + " -noexe\n"); - e.expect(5, "Attached to core file.*"); + e.expect("Attached to core file.*"); e.close(); } @@ -60,7 +60,7 @@ public class TestCoreCommand extends TestLib { e = new HpdTestbed(); e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + "\n"); - e.expect(5, "Error:*"); + e.expect("Error:*"); e.close(); } @@ -68,7 +68,7 @@ public class TestCoreCommand extends TestLib { e = new HpdTestbed(); e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + "foo\n"); - e.expect(5, "Error:*"); + e.expect("Error:*"); e.close(); } @@ -80,7 +80,7 @@ public class TestCoreCommand extends TestLib { e = new HpdTestbed(); e.send("core " + core.getPath() + " " + SlaveOffspring.getExecutable().getPath() + "\n"); - e.expect(5, "Attached to core file.*"); + e.expect("Attached to core file.*"); e.close(); core.delete(); } @@ -93,9 +93,9 @@ public class TestCoreCommand extends TestLib { e = new HpdTestbed(); e.send("core " + core.getPath() + " " + SlaveOffspring.getExecutable().getPath() + "\n"); - e.expect(5, "Attached to core file.*"); + e.expect("Attached to core file.*"); e.send("run\n"); - e.expect(5, "Attached to process*"); + e.expect("Attached to process*"); e.close(); core.delete(); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 17 18:30:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 17 Dec 2007 18:30:00 -0000 Subject: [SCM] master: Fix typo; matches[i].toString(); not matches.toString(). Message-ID: <20071217183005.24959.qmail@sourceware.org> The branch, master has been updated via 32ee0c47a82aabc7959c2806dd18364dc1d25e95 (commit) via 4a091e682a087058345852bfbe0aec5760efb189 (commit) from aaef9996c9d45d73d88b04ddd1334b53970d7e7a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 32ee0c47a82aabc7959c2806dd18364dc1d25e95 Author: Andrew Cagney Date: Mon Dec 17 13:29:20 2007 -0500 Fix typo; matches[i].toString(); not matches.toString(). 2007-12-17 cagney * MatchException.java (getMessage()): Fix typo; print match element. commit 4a091e682a087058345852bfbe0aec5760efb189 Author: Andrew Cagney Date: Mon Dec 17 13:24:59 2007 -0500 Note the need to configure the changelog plug-in. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/expunit/ChangeLog | 2 ++ frysk-sys/frysk/expunit/MatchException.java | 2 +- htdocs/build/index.html | 6 +++--- 3 files changed, 6 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog index 25f737d..6041ae4 100644 --- a/frysk-sys/frysk/expunit/ChangeLog +++ b/frysk-sys/frysk/expunit/ChangeLog @@ -1,5 +1,7 @@ 2007-12-17 cagney + * MatchException.java (getMessage()): Fix typo; print match element. + * MatchException.java: New. * EndOfFileException.java: Extend MatchException. (message()): Delete. diff --git a/frysk-sys/frysk/expunit/MatchException.java b/frysk-sys/frysk/expunit/MatchException.java index e59bedf..51fee8b 100644 --- a/frysk-sys/frysk/expunit/MatchException.java +++ b/frysk-sys/frysk/expunit/MatchException.java @@ -18,7 +18,7 @@ class MatchException extends RuntimeException { msg.append("; expecting: "); for (int i = 0; i < matches.length; i++) { msg.append(" <<"); - msg.append(matches.toString()); + msg.append(matches[i].toString()); msg.append(">>"); } } diff --git a/htdocs/build/index.html b/htdocs/build/index.html index e12cf7b..e0041f8 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -355,7 +355,6 @@ suppression will take place.
    How do I "import" frysk into eclipse?
    -
    First you will need to check out and build frysk from the command line; this will create the @@ -400,12 +399,13 @@ sudo yum install eclipse eclipse-changelog \ eclipse-cdt eclipse-jdt \ java-1.4.2-gcj-compat-src - +and don't forget to configure the Eclipse ChangeLog Plug-in; +see: Window -> preferences; ChangeLog; and set your e-mail address.
    How do I build frysk from eclipse?
    -So far everyone has stuck with the command line. +Use CNTRL-B.
    hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Mon Dec 17 20:02:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Mon, 17 Dec 2007 20:02:00 -0000 Subject: [SCM] master: Use frysk.rsl in frysk.expunit; add -trace option. Message-ID: <20071217200224.16771.qmail@sourceware.org> The branch, master has been updated via cf9bc42a978d8ee5984df226a9d741236af14a8a (commit) from 32ee0c47a82aabc7959c2806dd18364dc1d25e95 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cf9bc42a978d8ee5984df226a9d741236af14a8a Author: Andrew Cagney Date: Mon Dec 17 15:01:38 2007 -0500 Use frysk.rsl in frysk.expunit; add -trace option. frysk-sys/frysk/ChangeLog 2007-12-17 cagney * EventLogger.java (addConsoleOptions(Parser)): Add LogOption. frysk-sys/frysk/expunit/ChangeLog 2007-12-17 cagney * Expect.java: Use frysk.rsl.Log. frysk-sys/frysk/rsl/ChangeLog 2007-12-17 cagney * Log.java (log(...)): Rename message(...). (log(Object,String)): New. (log(Object,String,Object,String,Object)): New. (log(Object,String,long,String,Object[])): New. (log(Object,String,Object,String,Object,String,String[])): New. * TestLog.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/ChangeLog | 4 + frysk-sys/frysk/EventLogger.java | 2 + frysk-sys/frysk/expunit/ChangeLog | 2 + frysk-sys/frysk/expunit/Expect.java | 116 ++++++++++++++--------------------- frysk-sys/frysk/rsl/ChangeLog | 9 +++ frysk-sys/frysk/rsl/Log.java | 64 ++++++++++++++++---- frysk-sys/frysk/rsl/TestLog.java | 4 +- 7 files changed, 118 insertions(+), 83 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/ChangeLog b/frysk-sys/frysk/ChangeLog index f2541c0..2e094d8 100644 --- a/frysk-sys/frysk/ChangeLog +++ b/frysk-sys/frysk/ChangeLog @@ -1,3 +1,7 @@ +2007-12-17 cagney + + * EventLogger.java (addConsoleOptions(Parser)): Add LogOption. + 2007-10-30 Andrew Cagney * cni/Config.cxx-in: Rename cni/Config.cxxin. diff --git a/frysk-sys/frysk/EventLogger.java b/frysk-sys/frysk/EventLogger.java index 132cbeb..16e34f6 100644 --- a/frysk-sys/frysk/EventLogger.java +++ b/frysk-sys/frysk/EventLogger.java @@ -56,6 +56,7 @@ import java.io.FileInputStream; import java.util.logging.Formatter; import java.util.logging.FileHandler; import java.util.logging.SimpleFormatter; +import frysk.rsl.LogOption; /** * The event logger for internal state. @@ -231,5 +232,6 @@ public class EventLogger verbose = true; } }); + parser.add(new LogOption("trace")); } } diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog index 6041ae4..da96d7d 100644 --- a/frysk-sys/frysk/expunit/ChangeLog +++ b/frysk-sys/frysk/expunit/ChangeLog @@ -1,5 +1,7 @@ 2007-12-17 cagney + * Expect.java: Use frysk.rsl.Log. + * MatchException.java (getMessage()): Fix typo; print match element. * MatchException.java: New. diff --git a/frysk-sys/frysk/expunit/Expect.java b/frysk-sys/frysk/expunit/Expect.java index c39918f..eeed7ec 100644 --- a/frysk-sys/frysk/expunit/Expect.java +++ b/frysk-sys/frysk/expunit/Expect.java @@ -43,10 +43,9 @@ import frysk.sys.Errno; import frysk.sys.ProcessIdentifier; import frysk.sys.PseudoTerminal; import frysk.sys.Signal; -import java.util.logging.Level; -import java.util.logging.Logger; +import frysk.rsl.Log; +import frysk.rsl.Level; import java.io.File; -import java.util.Arrays; /** * Simple expect like framework, that works within JUnit. @@ -59,7 +58,8 @@ import java.util.Arrays; public class Expect { - static protected Logger logger = Logger.getLogger("frysk"); + static protected Log fine = Log.get(Expect.class, Level.FINE); + static private Log finest = Log.get(Expect.class, Level.FINEST); private final PseudoTerminal child = new PseudoTerminal (); private ProcessIdentifier pid = null; @@ -68,23 +68,16 @@ public class Expect * Create an expect instance running the specified program args[0] * and args. */ - public Expect (String[] args) - { - pid = child.addChild (args); - logger.log (Level.FINE, "{0} new {1} pid {2} args {3}\n", - new Object[] { - this, - child, - pid, - Arrays.asList(args) - }); + public Expect(String[] args) { + pid = child.addChild(args); + fine.log(this, "new", child, "pid", pid, "args", args); } /** * Create an expect instance running PROGRAM with no arguments. - * - * Turns out that doing this is common and it saves the hassle of - * creating an argument list. + * + * Turns out that doing this is common and it saves the hassle of creating + * an argument list. */ public Expect(File program) { this(new String[] { program.getAbsolutePath() }); @@ -107,18 +100,16 @@ public class Expect * XXX: This drains all outstanding WAITPID events, and SIGCHLD * events. */ - public void close () - { + public void close() { if (pid != null) { - logger.log (Level.FINE, "{0} close\n", this); - child.close (); + fine.log(this, "close"); + child.close(); try { - pid.kill (); - } - catch (Errno e) { + pid.kill(); + } catch (Errno e) { // Toss it, as cleanup. } - pid.blockingDrain (); + pid.blockingDrain(); } pid = null; Signal.CHLD.drain(); @@ -187,80 +178,68 @@ public class Expect /** * Send "string" to the child process. */ - public void send (String string) - { - logger.log (Level.FINE, - "{0} send <<{1}>>\n", - new Object[] { this, string }); - byte[] bytes = string.getBytes (); - child.write (bytes, 0, bytes.length); + public void send(String string) { + fine.log(this, "send", (Object)string); + byte[] bytes = string.getBytes(); + child.write(bytes, 0, bytes.length); } /** * Expect one of the specified patterns; throw TimeoutException if - * timeoutSecond expires; throw EofException if end-of-file is - * encountered. - * - * This is package visible so that TestExpect can use it, but no - * one else. + * timeoutSecond expires; throw EofException if end-of-file is encountered. + * + * This is package visible so that TestExpect can use it, but no one else. */ - void expectMilliseconds (long timeoutMilliseconds, Match[] matches) - { - final long endTime = (System.currentTimeMillis () - + timeoutMilliseconds); + void expectMilliseconds(long timeoutMilliseconds, Match[] matches) { + final long endTime = (System.currentTimeMillis() + timeoutMilliseconds); + fine.log(this, "expect timeout", timeoutMilliseconds, "match", matches); while (true) { if (matches != null) { for (int i = 0; i < matches.length; i++) { Match p = matches[i]; if (p != null) { - logger.log (Level.FINE, - "{0} find <<{1}>> in <<{2}>>?\n", - new Object[] { this, p, output }); - if (p.find (output)) { - logger.log (Level.FINE, - "{0} match <<{1}>>\n", - new Object[] { this, p.group () }); - p.execute (); + finest.log(this, "find", (Object) p, "in", + (Object) output); + if (p.find(output)) { + fine.log(this, "match", (Object) p.group()); + p.execute(); // Remove everying up to and including what // matched. - if (p.end () >= 0) - output = output.substring (p.end ()); + if (p.end() >= 0) + output = output.substring(p.end()); return; } } } } if (eof) { - logger.log (Level.FINE, "{0} match EOF\n", this); + fine.log(this, "match EOF"); throw new EndOfFileException(matches, output); } - long timeRemaining = endTime - System.currentTimeMillis (); + long timeRemaining = endTime - System.currentTimeMillis(); if (timeRemaining <= 0) { - logger.log (Level.FINE, "{0} match TIMEOUT\n", this); - throw new TimeoutException(timeoutMilliseconds / 1000, - matches, output); + fine.log(this, "match TIMEOUT"); + throw new TimeoutException(timeoutMilliseconds / 1000, matches, + output); } - logger.log (Level.FINE, - "{0} poll for {1,number,integer} milliseconds\n", - new Object[] { this, new Long (timeRemaining) }); - if (child.ready (timeRemaining)) { + finest.log(this, "poll for [milliseconds]", timeRemaining); + if (child.ready(timeRemaining)) { byte[] bytes = new byte[100]; - int nr = child.read (bytes, 0, bytes.length); + int nr = child.read(bytes, 0, bytes.length); switch (nr) { case -1: - logger.log (Level.FINE, "{0} poll -> EOF\n", this); + finest.log(this, "poll -> EOF"); eof = true; break; case 0: - logger.log (Level.FINE, "{0} poll -> no data!\n", this); + finest.log(this, "poll -> no data!"); break; default: - String read = new String (bytes, 0, nr); + String read = new String(bytes, 0, nr); output = output + read; - logger.log (Level.FINE, - "{0} poll -> <<{1}>> giving <<{2}>>\n", - new Object[] { this, read, output }); + finest.log(this, "poll -> ", (Object) read, "giving", + (Object) output); break; } } @@ -269,8 +248,7 @@ public class Expect /** * Expect one of the specified patterns; throw TimeoutException if - * timeoutSecond expires; throw EofException if end-of-file is - * encountered. + * timeoutSecond expires; throw EofException if end-of-file is encountered. */ public void expect (long timeoutSeconds, Match[] matches) { diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog index 68c7dae..201f560 100644 --- a/frysk-sys/frysk/rsl/ChangeLog +++ b/frysk-sys/frysk/rsl/ChangeLog @@ -1,3 +1,12 @@ +2007-12-17 cagney + + * Log.java (log(...)): Rename message(...). + (log(Object,String)): New. + (log(Object,String,Object,String,Object)): New. + (log(Object,String,long,String,Object[])): New. + (log(Object,String,Object,String,Object,String,String[])): New. + * TestLog.java: Update. + 2007-12-10 Andrew Cagney * Tree.java (Tree(String,String,Level)): Added Level parameter. diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java index 15b33e6..9336d90 100644 --- a/frysk-sys/frysk/rsl/Log.java +++ b/frysk-sys/frysk/rsl/Log.java @@ -275,16 +275,23 @@ public final class Log { } // Add at will and on demand. - public void message(String p1) { + public void log(String p1) { if (!logging) return; prefix(); print(p1); postfix(); } + + public void log(Object self, String p1) { + if (!logging) + return; + print(p1); + postfix(); + } // Add at will and on demand. - public void message(Object self, String p1, int p2) { + public void log(Object self, String p1, int p2) { if (!logging) return; prefix(self); @@ -294,7 +301,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, long p2) { + public void log(Object self, String p1, long p2) { if (!logging) return; prefix(self); @@ -304,7 +311,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, String p2) { + public void log(Object self, String p1, String p2) { if (!logging) return; prefix(self); @@ -314,7 +321,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, Object p2) { + public void log(Object self, String p1, Object p2) { if (!logging) return; prefix(self); @@ -324,7 +331,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, int[] p2) { + public void log(Object self, String p1, int[] p2) { if (!logging) return; prefix(self); @@ -334,7 +341,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, long[] p2) { + public void log(Object self, String p1, long[] p2) { if (!logging) return; prefix(self); @@ -344,7 +351,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, String[] p2) { + public void log(Object self, String p1, String[] p2) { if (!logging) return; prefix(self); @@ -354,7 +361,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, Object[] p2) { + public void log(Object self, String p1, Object[] p2) { if (!logging) return; prefix(self); @@ -364,7 +371,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, Throwable p2) { + public void log(Object self, String p1, Throwable p2) { if (!logging) return; prefix(self); @@ -374,7 +381,7 @@ public final class Log { } // Add at will and on demand. - public void message(Object self, String p1, Throwable[] p2) { + public void log(Object self, String p1, Throwable[] p2) { if (!logging) return; prefix(self); @@ -383,5 +390,38 @@ public final class Log { postfix(); } - + public void log(Object self, String p1, long p2, String p3, Object[] p4) { + if (!logging) + return; + prefix(self); + print(p1); + print(p2); + print(p3); + print(p4); + postfix(); + } + public void log(Object self, String p1, Object p2, String p3, Object p4) { + if (!logging) + return; + prefix(self); + print(p1); + print(p2); + print(p3); + print(p4); + postfix(); + } + + public void log(Object self, String p1, Object p2, String p3, Object p4, + String p5, String[] p6) { + if (!logging) + return; + prefix(self); + print(p1); + print(p2); + print(p3); + print(p4); + print(p5); + print(p6); + postfix(); + } } diff --git a/frysk-sys/frysk/rsl/TestLog.java b/frysk-sys/frysk/rsl/TestLog.java index 8ae76ac..971a255 100644 --- a/frysk-sys/frysk/rsl/TestLog.java +++ b/frysk-sys/frysk/rsl/TestLog.java @@ -51,11 +51,11 @@ public class TestLog extends TestCase { private Tree root; public void setUp() { - log.message("setUp"); + log.log("setUp"); root = new Tree(); } public void tearDown() { - log.message("tearDown"); + log.log("tearDown"); root = null; } private Tree get(String path) { hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Mon Dec 17 21:14:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Mon, 17 Dec 2007 21:14:00 -0000 Subject: [SCM] master: Add start command to the fhpd framework. Message-ID: <20071217211409.9829.qmail@sourceware.org> The branch, master has been updated via 189dc28164b2bf1b7fb43dd43c3de8cae0fcb493 (commit) from cf9bc42a978d8ee5984df226a9d741236af14a8a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 189dc28164b2bf1b7fb43dd43c3de8cae0fcb493 Author: Rick Moseley Date: Mon Dec 17 15:13:47 2007 -0600 Add start command to the fhpd framework. * StartCommand.java: New. * TestStartCommand.java: New. * HpdTestbed.java (start): New method to support start command. * TopLevel.Command.java: Added start command. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 8 +++ frysk-core/frysk/hpd/HpdTestbed.java | 48 ++++++++++++++++++-- .../hpd/{RunCommand.java => StartCommand.java} | 46 +++++++++++-------- ...CommandException.java => TestStartCommand.java} | 20 +++++---- frysk-core/frysk/hpd/TopLevelCommand.java | 1 + 5 files changed, 91 insertions(+), 32 deletions(-) copy frysk-core/frysk/hpd/{RunCommand.java => StartCommand.java} (86%) copy frysk-core/frysk/hpd/{InvalidCommandException.java => TestStartCommand.java} (90%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 082baca..313cc11 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,11 @@ +2007-12-17 Rick Moseley + + * StartCommand.java: New. + * TestStartCommand.java: New. + * HpdTestbed.java (start): New method to support start + command. + * TopLevel.Command.java: Added start command. + 2007-12-17 Phil Muldoon * TestAuxvCommand.java (testAuxVCoreCommand): Remove expect diff --git a/frysk-core/frysk/hpd/HpdTestbed.java b/frysk-core/frysk/hpd/HpdTestbed.java index 2cec313..6d7298b 100644 --- a/frysk-core/frysk/hpd/HpdTestbed.java +++ b/frysk-core/frysk/hpd/HpdTestbed.java @@ -82,7 +82,7 @@ public class HpdTestbed /** * Create an FHPD process, with PARAM, managed by expect; wait for - * the STARTUP message followed immediatly by the prompt. + * the STARTUP message followed immediately by the prompt. */ public HpdTestbed(String param, String startup) { this(new String[] { @@ -128,7 +128,7 @@ public class HpdTestbed } /** - * Expect OUTPUT immediatly followed by the prompt. + * Expect OUTPUT immediately followed by the prompt. */ public HpdTestbed expectPrompt(String output) { return expectPrompt("expecting: <" + output + ">", output); @@ -137,7 +137,7 @@ public class HpdTestbed /** * Send COMMAND ("\n" will be appended); expect OUTPUT along with * the prompt (OUTPUT must match everything up to the prompt - * including newlines); if other ooutput, or a timeout, fail. + * including newlines); if other output, or a timeout, fail. */ public HpdTestbed sendCommandExpectPrompt(final String command, final String output) { @@ -210,7 +210,47 @@ public class HpdTestbed } /** - * Start HPD attatched to PROGRAM that is crashing (due to a + * Start the specified program from under HPD. + */ + static HpdTestbed start(String program, String args) { + HpdTestbed h = new HpdTestbed(); + File exe = Config.getPkgLibFile(program); + h.send("start "); + h.send(exe.getAbsolutePath()); + if (args != null) { + h.send(" "); + h.send(args); + } + h.send("\n"); + try { + h.expect(new Match[] { + new Regex("Attached to process ([0-9]+)\r\n" + + h.prompt) { + public void execute() { + int pid = Integer.parseInt(group(1)); + TearDownProcess.add(pid); + } + }, + new Regex(".*\r\n" + h.prompt) { + public void execute() { + TestCase.fail("Expecting got: <" + + group() + ">"); + } + } + }); + } catch (EndOfFileException e) { + TestCase.fail("Expecting got: "); + } catch (TimeoutException t) { + TestCase.fail("Expecting got: "); + } + return h; + } + + static HpdTestbed start(String program) { + return start(program, null); + } + /** + * Start HPD attached to PROGRAM that is crashing (due to a * signal). * * XXX: The current implementation runs the program until it diff --git a/frysk-core/frysk/hpd/RunCommand.java b/frysk-core/frysk/hpd/StartCommand.java similarity index 86% copy from frysk-core/frysk/hpd/RunCommand.java copy to frysk-core/frysk/hpd/StartCommand.java index ee78d69..baf58a1 100644 --- a/frysk-core/frysk/hpd/RunCommand.java +++ b/frysk-core/frysk/hpd/StartCommand.java @@ -53,19 +53,19 @@ import java.util.List; import java.util.Map; import java.util.Set; -class RunCommand extends ParameterizedCommand { - // Used to synchronize with updateAttached method - RunCommand() { - super("run program and immediately attach", - "run ", - "The run command alllows the debuger to run a(any) program(s)" - + " that has(have) been previously loaded via a load command" - + " if no parameters are given. To run an executable, just" - + " give the run command the path to the executable as a" - + " parameter. In either case the debugger attaches immediately" - + " to the process."); +class StartCommand extends ParameterizedCommand { + + StartCommand() { + super("start a process, run until the first executable instruction", + "start ", + "The start command alllows the debuger to run a(any) program(s)" + + " that has(have) either been previously loaded via a load command" + + " if no parameters are given. To run an executable, just" + + " give the start command the path to the executable as a" + + " parameter. In either case the debugger attaches immediately" + + " to the process and runs to the first executable instruction."); } - + private static class Runner implements TaskObserver.Attached { private final CLI cli; private CountDownLatch latch; @@ -121,20 +121,28 @@ class RunCommand extends ParameterizedCommand { public void deletedFrom(Object observable) { } - } - + public void interpret(CLI cli, Input cmd, Object options) { /* If the run command is given no args, check to see if any procs were loaded with the load command or loaded when fhpd was started or loaded with the core command*/ - if (cmd.size() < 1) { - if (cli.coreProcs.isEmpty() && cli.loadedProcs.isEmpty()) - throw new InvalidCommandException("missing program"); + Iterator foo = cli.targetset.getTasks(); + if (cmd.size() < 1 && foo.hasNext()) { + if (cli.coreProcs.isEmpty() && cli.loadedProcs.isEmpty()) { + cli.execCommand("kill"); + cli.execCommand("start"); + return; + } + } else if (cmd.size() < 1 && !foo.hasNext()) { + cli.addMessage("No procs in targetset to run", + Message.TYPE_NORMAL); + return; } // If a parameter was given the run command, go ahead and run it if (cmd.size() >= 1) { + run(cli, cmd); return; } @@ -194,7 +202,7 @@ class RunCommand extends ParameterizedCommand { synchronized (cli) { cli.taskID = taskid.intValue(); } - cli.execCommand("run " + proc.getExe()); + cli.execCommand("start " + proc.getExe()); synchronized (cli) { cli.taskID = -1; } @@ -205,4 +213,4 @@ class RunCommand extends ParameterizedCommand { return CompletionFactory.completeFileName(cli, input, cursor, completions); } -} +} \ No newline at end of file diff --git a/frysk-core/frysk/hpd/InvalidCommandException.java b/frysk-core/frysk/hpd/TestStartCommand.java similarity index 90% copy from frysk-core/frysk/hpd/InvalidCommandException.java copy to frysk-core/frysk/hpd/TestStartCommand.java index 8fcd5c5..cb51c72 100644 --- a/frysk-core/frysk/hpd/InvalidCommandException.java +++ b/frysk-core/frysk/hpd/TestStartCommand.java @@ -10,11 +10,11 @@ // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with FRYSK; if not, write to the Free Software Foundation, // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// +// // In addition, as a special exception, Red Hat, Inc. gives You the // additional right to link the code of FRYSK with code not covered // under the GNU General Public License ("Non-GPL Code") and to @@ -40,11 +40,13 @@ package frysk.hpd; /** - * The command was invalid. - */ -public class InvalidCommandException extends RuntimeException { - static final long serialVersionUID = 1; - InvalidCommandException(String message) { - super(message); +* This class tests the "start" command. +*/ + +public class TestStartCommand extends TestLib { + public void testStartCommand() { + e = HpdTestbed.start("funit-threads-looper"); + e.sendCommandExpectPrompt("where", "[0.0].*"); + e.close(); } -} +} \ No newline at end of file diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index c6bf666..f85e691 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -109,6 +109,7 @@ public class TopLevelCommand extends MultiLevelCommand { add(new StackCommands.Frame(), "frame"); add(new StackCommands.Up(), "u|p"); add(new StackCommands.Where(), "w|here"); + add(new StartCommand(), "start"); add(new StepCommand(), "s|tep"); add(new StepFinishCommand(), "finish"); add(new StepInstructionCommand(), "stepi"); hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Mon Dec 17 22:54:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Mon, 17 Dec 2007 22:54:00 -0000 Subject: [SCM] master: TestLoadCommand - Change e.send() to e.sendCommandExpectPrompt(). Message-ID: <20071217225450.13527.qmail@sourceware.org> The branch, master has been updated via 80acbe9e545220f3e18c856f9fec5610ea11a047 (commit) from 189dc28164b2bf1b7fb43dd43c3de8cae0fcb493 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 80acbe9e545220f3e18c856f9fec5610ea11a047 Author: Rick Moseley Date: Mon Dec 17 16:54:35 2007 -0600 TestLoadCommand - Change e.send() to e.sendCommandExpectPrompt(). TestLoadCommand.java: Change e.send() > e.sendCommandExpectPrompt(). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 1 + frysk-core/frysk/hpd/TestLoadCommand.java | 43 +++++++++------------------- 2 files changed, 15 insertions(+), 29 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 313cc11..364c95e 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -5,6 +5,7 @@ * HpdTestbed.java (start): New method to support start command. * TopLevel.Command.java: Added start command. + * TestLoadCommand.java: Change e.send() > e.sendCommandExpectPrompt(). 2007-12-17 Phil Muldoon diff --git a/frysk-core/frysk/hpd/TestLoadCommand.java b/frysk-core/frysk/hpd/TestLoadCommand.java index 8830150..fa061a6 100644 --- a/frysk-core/frysk/hpd/TestLoadCommand.java +++ b/frysk-core/frysk/hpd/TestLoadCommand.java @@ -65,40 +65,25 @@ public class TestLoadCommand extends TestLib { public void testLoadRun() { e = new HpdTestbed(); - e.send("load " + Config.getPkgLibFile("funit-hello").getPath() - + "\n"); - e.expect(5, "Loaded executable file.*" + prompt); - e.send("focus\n"); - e.expect(5, "Target set*"); - e.expect(5, "[0.0]*0*0*"); - e.send("load " + Config.getPkgLibFile("funit-hello").getPath() - + "\n"); - e.expect(5, "Loaded executable file.*" + prompt); - e.send("focus\n"); - e.expect(5, "Target set*"); - e.expect(5, "[0.0]*0*0*"); - e.expect(5, "[1.0]*0*0*" + prompt); - e.send("run\n"); - e.expect(5, "Attached to process*"); - e.expect(5, "Attached to process*"); - e.send("focus\n"); - e.expect(5, "Target set*"); - e.expect(5, "[0.0]*"); - e.expect(5, "[1.0]*" + prompt); + e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("focus", "Target set.*[0.0]*0*0*"); + e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("focus", "Target set.*[0.0]*0*0.*[1.0]*0*0.*"); + e.sendCommandExpectPrompt("run", "Attached to process.*Attached to process.*"); + e.sendCommandExpectPrompt("focus", "Target set.*[0.0].*[1.0].*"); + //e.sendCommandExpectPrompt("quit", "Quitting.*"); e.close(); } public void testLoadRunRun() { e = new HpdTestbed(); - e.send("load " + Config.getPkgLibFile("funit-hello").getPath() - + "\n"); - e.expect(5, "Loaded executable file.*" + prompt); - e.send("load " + Config.getPkgLibFile("funit-hello").getPath() - + "\n"); - e.expect(5, "Loaded executable file.*" + prompt); - e.send("run\n"); - e.expect(5, "Attached to process*"); - e.expect(5, "Attached to process*"); + e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("run", "Attached to process.*Attached to process.*"); e.close(); } } hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Tue Dec 18 00:23:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 18 Dec 2007 00:23:00 -0000 Subject: [SCM] master: TestPeekCommand - Change e.send to e.sendCommandExpectPrompt. Message-ID: <20071218002342.28000.qmail@sourceware.org> The branch, master has been updated via 4c7086268ca8b5e712032270403e990d949b161d (commit) from 80acbe9e545220f3e18c856f9fec5610ea11a047 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4c7086268ca8b5e712032270403e990d949b161d Author: Rick Moseley Date: Mon Dec 17 18:23:30 2007 -0600 TestPeekCommand - Change e.send to e.sendCommandExpectPrompt. * TestPeekCommand - Change e.send to e.sendCommandExpectPrompt. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 1 + frysk-core/frysk/hpd/TestPeekCommand.java | 40 +++++++++++++--------------- 2 files changed, 20 insertions(+), 21 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 364c95e..877c1fc 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -6,6 +6,7 @@ command. * TopLevel.Command.java: Added start command. * TestLoadCommand.java: Change e.send() > e.sendCommandExpectPrompt(). + * TestPeekCommand.java: Ditto. 2007-12-17 Phil Muldoon diff --git a/frysk-core/frysk/hpd/TestPeekCommand.java b/frysk-core/frysk/hpd/TestPeekCommand.java index 2173ee4..bef3637 100644 --- a/frysk-core/frysk/hpd/TestPeekCommand.java +++ b/frysk-core/frysk/hpd/TestPeekCommand.java @@ -48,42 +48,40 @@ import frysk.Config; public class TestPeekCommand extends TestLib { public void testPeekCommand() { e = new HpdTestbed(); - e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); - e.expect(5,"Loaded executable file.*"); - e.send("peek 0x08048000L\n"); - e.expect(5, "The value at 08048000 = 127.*"); + e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("peek 0x08048000L", + "The value at 08048000 = 127.*"); e.close(); } public void testPeekCommandError() { e = new HpdTestbed(); - e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); - e.expect(5, "Loaded executable file.*"); - e.send("peek 08048000\n"); - e.expect(5, "Cannot find memory in exe file.*"); + e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("peek 08048000", + "Cannot find memory in exe file.*"); e.close(); } public void testTwoLoadedPeekCommand() { e = new HpdTestbed(); - e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); - e.expect(5, "Loaded executable file*"); - e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); - e.expect(5, "Loaded executable file*"); - e.send("peek 0x08048000L\n"); - e.expect(5, "\\[0\\.0\\]"); - e.expect(5, "The value at 08048000 = 127*"); - e.expect(5, "\\[1\\.0\\]"); - e.expect(5, "The value at 08048000 = 127*"); + e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("peek 0x08048000L", "\\[0\\.0\\].*" + + "The value at 08048000 = 127.*\\[1\\.0\\].*" + + "The value at 08048000 = 127.*"); e.close(); } public void testPeekCommandNoParameter() { e = new HpdTestbed(); - e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "\n"); - e.expect(5, "Loaded executable file*"); - e.send("peek\n"); - e.expect(5, "Error: Not enough parameters. Please specify an addess to peek at*"); + e.sendCommandExpectPrompt("load " + Config.getPkgDataFile("test-exe-x86").getPath(), + "Loaded executable file.*"); + e.sendCommandExpectPrompt("peek", "Error: Not enough parameters.*" + + "Please specify an addess to peek at.*"); e.close(); } } hooks/post-receive -- frysk system monitor/debugger From rmoseley@sourceware.org Tue Dec 18 16:41:00 2007 From: rmoseley@sourceware.org (rmoseley@sourceware.org) Date: Tue, 18 Dec 2007 16:41:00 -0000 Subject: [SCM] master: TestLoadCommand - Fix regex symbols. Message-ID: <20071218164143.1382.qmail@sourceware.org> The branch, master has been updated via 136df9efaf15a78aaa2ccb91cec7480017574611 (commit) from 4c7086268ca8b5e712032270403e990d949b161d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 136df9efaf15a78aaa2ccb91cec7480017574611 Author: Rick Moseley Date: Tue Dec 18 10:40:32 2007 -0600 TestLoadCommand - Fix regex symbols. * TestLoadCommand.java - Fix regex symbols. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/TestLoadCommand.java | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 877c1fc..789cd32 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,7 @@ +2007-12-18 Rick Moseley + + * TestLoadCommand.java: Fix regex symbols. + 2007-12-17 Rick Moseley * StartCommand.java: New. diff --git a/frysk-core/frysk/hpd/TestLoadCommand.java b/frysk-core/frysk/hpd/TestLoadCommand.java index fa061a6..fdb12e9 100644 --- a/frysk-core/frysk/hpd/TestLoadCommand.java +++ b/frysk-core/frysk/hpd/TestLoadCommand.java @@ -60,6 +60,8 @@ public class TestLoadCommand extends TestLib { e.send("load " + Config.getPkgDataFile("test-exe-x86").getPath() + "foo\n"); e.expect(5, "File does not exist or is not readable*"); + e.send("quit\n"); + e.expect("Quitting..."); e.close(); } @@ -67,13 +69,16 @@ public class TestLoadCommand extends TestLib { e = new HpdTestbed(); e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), "Loaded executable file.*"); - e.sendCommandExpectPrompt("focus", "Target set.*[0.0]*0*0*"); + //e.sendCommandExpectPrompt("focus", "Target set*pid*id*\r\n\\[0\\.0\\]*0*0.*"); + e.sendCommandExpectPrompt("focus", "Target set.*\\[0\\.0\\]\t\t0\t0.*"); e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), "Loaded executable file.*"); - e.sendCommandExpectPrompt("focus", "Target set.*[0.0]*0*0.*[1.0]*0*0.*"); + e.sendCommandExpectPrompt("focus", "Target set.*\\[0\\.0\\]\t\t0\t0.*"+ + "\\[1\\.0\\]\t\t0*\\t0.*"); e.sendCommandExpectPrompt("run", "Attached to process.*Attached to process.*"); - e.sendCommandExpectPrompt("focus", "Target set.*[0.0].*[1.0].*"); - //e.sendCommandExpectPrompt("quit", "Quitting.*"); + e.sendCommandExpectPrompt("focus", "Target set.*\\[0\\.0\\].*\\[1\\.0].*"); + e.send("quit\n"); + e.expect("Quitting..."); e.close(); } @@ -84,6 +89,8 @@ public class TestLoadCommand extends TestLib { e.sendCommandExpectPrompt("load " + Config.getPkgLibFile("funit-hello").getPath(), "Loaded executable file.*"); e.sendCommandExpectPrompt("run", "Attached to process.*Attached to process.*"); + e.send("quit\n"); + e.expect("Quitting..."); e.close(); } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Tue Dec 18 17:00:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Tue, 18 Dec 2007 17:00:00 -0000 Subject: [SCM] master: Simplify log interface; escape cntrl chars; update expunit. Message-ID: <20071218170010.13473.qmail@sourceware.org> The branch, master has been updated via c0ff11aa28f8188570d8b4654c2b9c61f9c9be8d (commit) from 136df9efaf15a78aaa2ccb91cec7480017574611 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c0ff11aa28f8188570d8b4654c2b9c61f9c9be8d Author: Andrew Cagney Date: Tue Dec 18 11:59:24 2007 -0500 Simplify log interface; escape cntrl chars; update expunit. frysk-sys/frysk/expunit/ChangeLog 2007-12-18 cagney * TestEquals.java (testToString()): New. * Equals.java (toString()): Return an escaped string. * TestRegex.java (testToString()): New. * Regex.java (toString()): Return an escaped string. * Match.java (escape(String)): New. * Expect.java (expectMilliseconds(long,Match[]): Use Log.log(Object,String,Object,String,int). frysk-sys/frysk/rsl/ChangeLog 2007-12-18 cagney * Log.java (suffix()): Rename prefix. (print(Object)): Inspect the object's type. (print(Throwable[])): Delete. (print(Throwable)): Delete. (dump(Throwable)): New. (dump(Object)): New. (dump(Object,int)): New. (print(Object[])): Delete. (print(String[])): Delete. (log(Object,String,Throwable)): Delete. (log(Object,String,Throwable[])): Delete. (log(Object,String,Object[])): Delete. (log(Object,String,long,String,Object[])): Delete. (log(Object,String,Object,String,int)): New. (log(Object,String,Object,String,Object,String,Object[])): Delete. (log(Object,String,Object,String,Object,String,Object)): New. (log(Object,String,String[])): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-sys/frysk/expunit/ChangeLog | 9 ++ frysk-sys/frysk/expunit/Equals.java | 2 +- frysk-sys/frysk/expunit/Expect.java | 9 +- frysk-sys/frysk/expunit/Match.java | 11 ++ frysk-sys/frysk/expunit/Regex.java | 8 +- frysk-sys/frysk/expunit/TestEquals.java | 5 + frysk-sys/frysk/expunit/TestRegex.java | 5 + frysk-sys/frysk/rsl/ChangeLog | 20 ++++ frysk-sys/frysk/rsl/Log.java | 188 +++++++++++++------------------ 9 files changed, 139 insertions(+), 118 deletions(-) First 500 lines of diff: diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog index da96d7d..2a1f8be 100644 --- a/frysk-sys/frysk/expunit/ChangeLog +++ b/frysk-sys/frysk/expunit/ChangeLog @@ -1,3 +1,12 @@ +2007-12-18 cagney + + * TestEquals.java (testToString()): New. + * Equals.java (toString()): Return an escaped string. + * TestRegex.java (testToString()): New. + * Regex.java (toString()): Return an escaped string. + * Match.java (escape(String)): New. + * Expect.java (expectMilliseconds(long,Match[]): Use Log.log(Object,String,Object,String,int). + 2007-12-17 cagney * Expect.java: Use frysk.rsl.Log. diff --git a/frysk-sys/frysk/expunit/Equals.java b/frysk-sys/frysk/expunit/Equals.java index f59bd31..d90c49b 100644 --- a/frysk-sys/frysk/expunit/Equals.java +++ b/frysk-sys/frysk/expunit/Equals.java @@ -56,7 +56,7 @@ public class Equals */ public String toString () { - return s; + return escape(s); } protected int groupCount () { diff --git a/frysk-sys/frysk/expunit/Expect.java b/frysk-sys/frysk/expunit/Expect.java index eeed7ec..4195d48 100644 --- a/frysk-sys/frysk/expunit/Expect.java +++ b/frysk-sys/frysk/expunit/Expect.java @@ -192,18 +192,17 @@ public class Expect */ void expectMilliseconds(long timeoutMilliseconds, Match[] matches) { final long endTime = (System.currentTimeMillis() + timeoutMilliseconds); - fine.log(this, "expect timeout", timeoutMilliseconds, "match", matches); + fine.log(this, "expect", matches, "timeout [milliseconds]", (int)timeoutMilliseconds); while (true) { if (matches != null) { for (int i = 0; i < matches.length; i++) { Match p = matches[i]; if (p != null) { - finest.log(this, "find", (Object) p, "in", - (Object) output); + finest.log(this, "find", p, "in", (Object) output); if (p.find(output)) { - fine.log(this, "match", (Object) p.group()); + fine.log(this, "match", (Object) p.group(), "with", p); p.execute(); - // Remove everying up to and including what + // Remove everything up to and including what // matched. if (p.end() >= 0) output = output.substring(p.end()); diff --git a/frysk-sys/frysk/expunit/Match.java b/frysk-sys/frysk/expunit/Match.java index c0eef04..8e24262 100644 --- a/frysk-sys/frysk/expunit/Match.java +++ b/frysk-sys/frysk/expunit/Match.java @@ -46,6 +46,17 @@ package frysk.expunit; public abstract class Match { /** + * Escape any characters in S so it looks something like a quoted-string seen in java. + * @param s the unescaped string + * @return the escaped string + */ + public static String escape(String s) { + return s.replaceAll("\r", "\\\\r") + .replaceAll("\n", "\\\\n") + .replaceAll("\t", "\\\\t") + .replaceAll("\f", "\\\\f"); + } + /** * Find the pattern in the output, normally this is an unanchored * match. */ diff --git a/frysk-sys/frysk/expunit/Regex.java b/frysk-sys/frysk/expunit/Regex.java index 084b28d..197a05e 100644 --- a/frysk-sys/frysk/expunit/Regex.java +++ b/frysk-sys/frysk/expunit/Regex.java @@ -57,13 +57,11 @@ public class Regex /** * String representing this object - the patter it matches. */ - public String toString () - { - return pattern.pattern (); + public String toString() { + return escape(pattern.pattern()); } /** - * Find the pattern in the output, normally this is an unanchored - * match. + * Find the pattern in the output, normally this is an unanchored match. */ private Matcher matcher; boolean find (String output) diff --git a/frysk-sys/frysk/expunit/TestEquals.java b/frysk-sys/frysk/expunit/TestEquals.java index e63350d..74780b1 100644 --- a/frysk-sys/frysk/expunit/TestEquals.java +++ b/frysk-sys/frysk/expunit/TestEquals.java @@ -98,4 +98,9 @@ public class TestEquals } }); } + + public void testToString() { + Match m = new Equals("\r\n\t\f\"\'"); + assertEquals("toString", "\\r\\n\\t\\f\"\'", m.toString()); + } } diff --git a/frysk-sys/frysk/expunit/TestRegex.java b/frysk-sys/frysk/expunit/TestRegex.java index 65e600d..ba277bf 100644 --- a/frysk-sys/frysk/expunit/TestRegex.java +++ b/frysk-sys/frysk/expunit/TestRegex.java @@ -111,4 +111,9 @@ public class TestRegex } }); } + + public void testToString() { + Match m = new Regex("\r\n\t\f\"\'"); + assertEquals("toString", "\\r\\n\\t\\f\"\'", m.toString()); + } } diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog index 201f560..55f7ec3 100644 --- a/frysk-sys/frysk/rsl/ChangeLog +++ b/frysk-sys/frysk/rsl/ChangeLog @@ -1,3 +1,23 @@ +2007-12-18 cagney + + * Log.java (suffix()): Rename prefix. + (print(Object)): Inspect the object's type. + (print(Throwable[])): Delete. + (print(Throwable)): Delete. + (dump(Throwable)): New. + (dump(Object)): New. + (dump(Object,int)): New. + (print(Object[])): Delete. + (print(String[])): Delete. + (log(Object,String,Throwable)): Delete. + (log(Object,String,Throwable[])): Delete. + (log(Object,String,Object[])): Delete. + (log(Object,String,long,String,Object[])): Delete. + (log(Object,String,Object,String,int)): New. + (log(Object,String,Object,String,Object,String,Object[])): Delete. + (log(Object,String,Object,String,Object,String,Object)): New. + (log(Object,String,String[])): Delete. + 2007-12-17 cagney * Log.java (log(...)): Rename message(...). diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java index 9336d90..b8d87f3 100644 --- a/frysk-sys/frysk/rsl/Log.java +++ b/frysk-sys/frysk/rsl/Log.java @@ -42,6 +42,7 @@ package frysk.rsl; import java.io.PrintStream; import java.util.List; import java.text.MessageFormat; +import java.lang.reflect.Array; /** * Generate log information when enabled. @@ -155,11 +156,69 @@ public final class Log { out.print("]:"); } - private void postfix() { + private void suffix() { out.println(); out.flush(); } - + + /** + * Throwables get their message printed; along with any root + * causes. + */ + private void dump(Throwable t) { + out.print("<>"); + } + private void dump(String s) { + out.print("\""); + out.print(s + .replaceAll("\"", "\\\\\"") + .replaceAll("\'", "\\\\\'") + .replaceAll("\r", "\\\\r") + .replaceAll("\n", "\\\\n") + .replaceAll("\t", "\\\\t") + .replaceAll("\f", "\\\\f")); + out.print("\""); + } + /** + * Dump the array object's i'th element + * @param o the array object + * @param i the array index + */ + private void dump(Object o, int i) { + // for moment assume the array contains Objects; dump recursively. + dump(Array.get(o, i)); + } + /** + * Dump an arbitrary object. + * @param o the object to dump + */ + private void dump(Object o) { + if (o.getClass().isArray()) { + out.print("["); + for (int i = 0; i < Array.getLength(o); i++) { + if (i > 0) + out.print(","); + dump(o, i); + } + out.print("]"); + } else if (o instanceof Throwable) + dump((Throwable) o); + else if (o instanceof String) + dump((String)o); + else { + out.print("<<"); + out.print(o.toString()); + out.print(">>"); + } + } + /** * Integers are printed in decimal. */ @@ -200,57 +259,12 @@ public final class Log { out.print(" "); out.print(s); } - private void print(String[] a) { - out.print(" ["); - for (int i = 0; i < a.length; i++) { - if (i > 0) - out.print(","); - out.print(a[i]); - } - out.print("]"); - } /** - * Objects are wrapped in "[" and "]". + * Use poorly implemented reflection to dump Objectss. */ private void print(Object o) { - out.print(" <<"); - out.print(o.toString()); - out.print(">>"); - } - private void print(Object[] a) { - out.print(" ["); - for (int i = 0; i < a.length; i++) { - if (i > 0) - out.print(","); - out.print("<<"); - out.print(a[i].toString()); - out.print(">>"); - } - out.print("]"); - } - /** - * Throwables get their message printed; along with any root - * causes. - */ - private void print(Throwable t) { - out.print(" exception"); - Throwable cause = t; - do { - out.print(":"); - out.print(t.getMessage()); - cause = cause.getCause(); - } while (cause != null); - } - private void print(Throwable[] t) { - out.print(" exception"); - for (int i = 0; i < t.length; i++) { - Throwable cause = t[i]; - do { - out.print(":"); - out.print(cause.getMessage()); - cause = cause.getCause(); - } while (cause != null); - } + out.print(" "); + dump(o); } /** @@ -261,7 +275,7 @@ public final class Log { return; prefix(); print(MessageFormat.format(msg, o)); - postfix(); + suffix(); } /** * For compatibility with existing loggers. @@ -271,7 +285,7 @@ public final class Log { return; prefix(); print(MessageFormat.format(msg, new Object[] { o })); - postfix(); + suffix(); } // Add at will and on demand. @@ -280,14 +294,14 @@ public final class Log { return; prefix(); print(p1); - postfix(); + suffix(); } public void log(Object self, String p1) { if (!logging) return; print(p1); - postfix(); + suffix(); } // Add at will and on demand. @@ -297,7 +311,7 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); + suffix(); } // Add at will and on demand. @@ -307,7 +321,7 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); + suffix(); } // Add at will and on demand. @@ -317,7 +331,7 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); + suffix(); } // Add at will and on demand. @@ -327,7 +341,7 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); + suffix(); } // Add at will and on demand. @@ -337,7 +351,7 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); + suffix(); } // Add at will and on demand. @@ -347,50 +361,10 @@ public final class Log { prefix(self); print(p1); print(p2); - postfix(); - } - - // Add at will and on demand. - public void log(Object self, String p1, String[] p2) { - if (!logging) - return; - prefix(self); - print(p1); - print(p2); - postfix(); - } - - // Add at will and on demand. - public void log(Object self, String p1, Object[] p2) { - if (!logging) - return; - prefix(self); - print(p1); - print(p2); - postfix(); - } - - // Add at will and on demand. - public void log(Object self, String p1, Throwable p2) { - if (!logging) - return; - prefix(self); - print(p1); - print(p2); - postfix(); + suffix(); } - // Add at will and on demand. - public void log(Object self, String p1, Throwable[] p2) { - if (!logging) - return; - prefix(self); - print(p1); - print(p2); - postfix(); - } - - public void log(Object self, String p1, long p2, String p3, Object[] p4) { + public void log(Object self, String p1, Object p2, String p3, Object p4) { if (!logging) return; prefix(self); @@ -398,9 +372,10 @@ public final class Log { print(p2); print(p3); print(p4); - postfix(); + suffix(); } - public void log(Object self, String p1, Object p2, String p3, Object p4) { + + public void log(Object self, String p1, Object p2, String p3, int p4) { if (!logging) return; prefix(self); @@ -408,11 +383,10 @@ public final class Log { print(p2); print(p3); print(p4); - postfix(); + suffix(); } - public void log(Object self, String p1, Object p2, String p3, Object p4, - String p5, String[] p6) { + public void log(Object self, String p1, Object p2, String p3, Object p4, String p5, Object p6) { if (!logging) return; prefix(self); @@ -422,6 +396,6 @@ public final class Log { print(p4); print(p5); print(p6); - postfix(); + suffix(); } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Dec 19 16:03:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 19 Dec 2007 16:03:00 -0000 Subject: [SCM] master: Add the eclipse java builder to the list of builders. Message-ID: <20071219160316.11686.qmail@sourceware.org> The branch, master has been updated via 181826ffb987ad378756c816b41d23a29fcb571b (commit) from c0ff11aa28f8188570d8b4654c2b9c61f9c9be8d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 181826ffb987ad378756c816b41d23a29fcb571b Author: Andrew Cagney Date: Wed Dec 19 11:02:46 2007 -0500 Add the eclipse java builder to the list of builders. frysk-top/ChangeLog 2007-12-19 Andrew Cagney * project.in: Add "javabuilder" to . ----------------------------------------------------------------------- Summary of changes: frysk-top/ChangeLog | 4 ++++ frysk-top/project.in | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index 80c716b..e0f43aa 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,3 +1,7 @@ +2007-12-19 Andrew Cagney + + * project.in: Add "javabuilder" to . + 2007-12-14 Andrew Cagney * make-all.launch.in: Add "full" to diff --git a/frysk-top/project.in b/frysk-top/project.in index e328a91..e8eb19a 100644 --- a/frysk-top/project.in +++ b/frysk-top/project.in @@ -5,7 +5,12 @@ - + + org.eclipse.jdt.core.javabuilder + + + + org.eclipse.ui.externaltools.ExternalToolBuilder incremental, hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Wed Dec 19 17:04:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Wed, 19 Dec 2007 17:04:00 -0000 Subject: [SCM] master: Fix eclipse build errors and warnings. Message-ID: <20071219170429.27975.qmail@sourceware.org> The branch, master has been updated via d252351b1f01500d9a9c2af70e7ff245d32b9b24 (commit) from 181826ffb987ad378756c816b41d23a29fcb571b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit d252351b1f01500d9a9c2af70e7ff245d32b9b24 Author: Andrew Cagney Date: Wed Dec 19 12:03:45 2007 -0500 Fix eclipse build errors and warnings. frysk-core/frysk/bindir/ChangeLog 2007-12-19 cagney * fhpd.java: Explicitly import frysk.sys.FileDescriptor. frysk-top/ChangeLog 2007-12-19 Andrew Cagney * classpath.in: Exclude duplicated ChangeLog only include .java sub-directories. Add ftk.jar. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 ++++ frysk-core/frysk/bindir/fhpd.java | 3 ++- frysk-top/ChangeLog | 3 +++ frysk-top/classpath.in | 17 +++++++++-------- 4 files changed, 18 insertions(+), 9 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index eb12a1d..2193b21 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-19 cagney + + * fhpd.java: Explicitly import frysk.sys.FileDescriptor. + 2007-12-12 Petr Machata * ftrace.java: Support -i for tracing inside dynamic linker. diff --git a/frysk-core/frysk/bindir/fhpd.java b/frysk-core/frysk/bindir/fhpd.java index 4012dd0..277e604 100644 --- a/frysk-core/frysk/bindir/fhpd.java +++ b/frysk-core/frysk/bindir/fhpd.java @@ -54,6 +54,7 @@ import frysk.util.CommandlineParser; import frysk.util.PtyTerminal; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; +import frysk.sys.FileDescriptor; public class fhpd { @@ -146,7 +147,7 @@ public class fhpd reader = new ConsoleReader(new FileInputStream(java.io.FileDescriptor.in), new PrintWriter(System.out), null, - new PtyTerminal(frysk.sys.FileDescriptor.in)); + new PtyTerminal(FileDescriptor.in)); } catch (IOException ioe) { System.out.println("ERROR: Could not create a command line"); diff --git a/frysk-top/ChangeLog b/frysk-top/ChangeLog index e0f43aa..216d1eb 100644 --- a/frysk-top/ChangeLog +++ b/frysk-top/ChangeLog @@ -1,5 +1,8 @@ 2007-12-19 Andrew Cagney + * classpath.in: Exclude duplicated ChangeLog only include .java + sub-directories. Add ftk.jar. + * project.in: Add "javabuilder" to . 2007-12-14 Andrew Cagney diff --git a/frysk-top/classpath.in b/frysk-top/classpath.in index 1539220..2a0a16f 100644 --- a/frysk-top/classpath.in +++ b/frysk-top/classpath.in @@ -1,18 +1,19 @@ - - - - + + + + + The branch, master has been updated via c660d1e1c83d3f354d39d95bb54a1e2dc79ed64f (commit) from d252351b1f01500d9a9c2af70e7ff245d32b9b24 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c660d1e1c83d3f354d39d95bb54a1e2dc79ed64f Author: Andrew Cagney Date: Wed Dec 19 18:53:22 2007 -0500 frysk-core/frysk/bank/ChangeLog 2007-12-19 Andrew Cagney * BankRegister.java: Move to here from frysk.proc. * BankRegisterMap.java: Ditto. * IndirectBankRegisterMap.java: Ditto. * PPCBankRegisters.java: Ditto. * RegisterBanks.java: Ditto. * X86BankRegisters.java: Ditto. frysk-core/frysk/proc/ChangeLog 2007-12-19 Andrew Cagney * BankRegister.java: Move to frysk.bank. * BankRegisterMap.java: Ditto. * IndirectBankRegisterMap.java: Ditto. * PPCBankRegisters.java: Ditto. * RegisterBanks.java: Ditto. * X86BankRegisters.java: Ditto. * LinuxPPC32On64.java: Update. * Task.java: Update. frysk-core/frysk/proc/dead/ChangeLog 2007-12-19 cagney Bank register code moved to frysk.bank. * LinuxExeTask.java: Update. * CorefileRegisterBank.java: Update. * LinuxExeTask.java: Update. frysk-core/frysk/proc/live/ChangeLog 2007-12-19 Andrew Cagney Bank register code moved to frysk.bank. * LinuxTask.java: Update. * PtraceRegisterBanksFactory.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/{proc => bank}/BankRegister.java | 2 +- .../frysk/{proc => bank}/BankRegisterMap.java | 4 ++-- frysk-core/frysk/bank/ChangeLog | 15 +++++++++++++++ .../{proc => bank}/IndirectBankRegisterMap.java | 2 +- .../frysk/{proc => bank}/PPCBankRegisters.java | 2 +- frysk-core/frysk/{proc => bank}/RegisterBanks.java | 10 +++++----- .../frysk/{proc => bank}/X86BankRegisters.java | 2 +- frysk-core/frysk/bank/package.html | 11 +++++++++++ frysk-core/frysk/proc/ChangeLog | 11 +++++++++++ frysk-core/frysk/proc/LinuxPPC32On64.java | 3 +++ frysk-core/frysk/proc/Task.java | 2 ++ frysk-core/frysk/proc/dead/ChangeLog | 7 +++++++ .../proc/dead/CorefileRegisterBanksFactory.java | 8 ++++---- frysk-core/frysk/proc/dead/LinuxExeTask.java | 2 +- frysk-core/frysk/proc/dead/LinuxTask.java | 2 +- frysk-core/frysk/proc/dummy/Task.java | 2 +- frysk-core/frysk/proc/live/ChangeLog | 6 ++++++ frysk-core/frysk/proc/live/LinuxTask.java | 2 +- .../proc/live/PtraceRegisterBanksFactory.java | 6 +++--- 19 files changed, 77 insertions(+), 22 deletions(-) rename frysk-core/frysk/{proc => bank}/BankRegister.java (99%) rename frysk-core/frysk/{proc => bank}/BankRegisterMap.java (98%) create mode 100644 frysk-core/frysk/bank/ChangeLog rename frysk-core/frysk/{proc => bank}/IndirectBankRegisterMap.java (99%) rename frysk-core/frysk/{proc => bank}/PPCBankRegisters.java (99%) rename frysk-core/frysk/{proc => bank}/RegisterBanks.java (94%) rename frysk-core/frysk/{proc => bank}/X86BankRegisters.java (99%) create mode 100644 frysk-core/frysk/bank/package.html First 500 lines of diff: diff --git a/frysk-core/frysk/proc/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java similarity index 99% rename from frysk-core/frysk/proc/BankRegister.java rename to frysk-core/frysk/bank/BankRegister.java index 41c8b30..7507a5c 100644 --- a/frysk-core/frysk/proc/BankRegister.java +++ b/frysk-core/frysk/bank/BankRegister.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import frysk.isa.Register; diff --git a/frysk-core/frysk/proc/BankRegisterMap.java b/frysk-core/frysk/bank/BankRegisterMap.java similarity index 98% rename from frysk-core/frysk/proc/BankRegisterMap.java rename to frysk-core/frysk/bank/BankRegisterMap.java index ba04b82..115ebf7 100644 --- a/frysk-core/frysk/proc/BankRegisterMap.java +++ b/frysk-core/frysk/bank/BankRegisterMap.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import frysk.isa.Register; import java.util.LinkedHashMap; @@ -77,7 +77,7 @@ public class BankRegisterMap { return (BankRegister)registerToBankRegister.get(r); } - BankRegister get(String s) { + public BankRegister get(String s) { return (BankRegister)nameToBankRegister.get(s); } } diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog new file mode 100644 index 0000000..80d5375 --- /dev/null +++ b/frysk-core/frysk/bank/ChangeLog @@ -0,0 +1,15 @@ +2007-12-19 Andrew Cagney + + * BankRegister.java: Move to here from frysk.proc. + * BankRegisterMap.java: Ditto. + * IndirectBankRegisterMap.java: Ditto. + * PPCBankRegisters.java: Ditto. + * RegisterBanks.java: Ditto. + * X86BankRegisters.java: Ditto. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/frysk-core/frysk/proc/IndirectBankRegisterMap.java b/frysk-core/frysk/bank/IndirectBankRegisterMap.java similarity index 99% rename from frysk-core/frysk/proc/IndirectBankRegisterMap.java rename to frysk-core/frysk/bank/IndirectBankRegisterMap.java index 1f8a683..af6bbaa 100644 --- a/frysk-core/frysk/proc/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/bank/IndirectBankRegisterMap.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import inua.eio.ByteOrder; import frysk.isa.Register; diff --git a/frysk-core/frysk/proc/PPCBankRegisters.java b/frysk-core/frysk/bank/PPCBankRegisters.java similarity index 99% rename from frysk-core/frysk/proc/PPCBankRegisters.java rename to frysk-core/frysk/bank/PPCBankRegisters.java index d3f7781..4218aa6 100644 --- a/frysk-core/frysk/proc/PPCBankRegisters.java +++ b/frysk-core/frysk/bank/PPCBankRegisters.java @@ -41,7 +41,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import inua.eio.ByteOrder; import frysk.isa.PPC32Registers; diff --git a/frysk-core/frysk/proc/RegisterBanks.java b/frysk-core/frysk/bank/RegisterBanks.java similarity index 94% rename from frysk-core/frysk/proc/RegisterBanks.java rename to frysk-core/frysk/bank/RegisterBanks.java index e9ad22b..98fa058 100644 --- a/frysk-core/frysk/proc/RegisterBanks.java +++ b/frysk-core/frysk/bank/RegisterBanks.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import inua.eio.ByteBuffer; import frysk.isa.Register; @@ -56,7 +56,7 @@ public class RegisterBanks { this.bankRegisters = bankRegisters; } - BankRegister getBankRegister(String name) { + public BankRegister getBankRegister(String name) { BankRegister bankRegister = bankRegisters.get(name); if (bankRegister != null) return bankRegister; @@ -71,7 +71,7 @@ public class RegisterBanks { return getBankRegister(register.getName()); } - long get(Register register) { + public long get(Register register) { BankRegister bankRegister = findBankRegister(register); ByteBuffer bank = banks[bankRegister.getBank()]; switch (bankRegister.getLength()) { @@ -85,7 +85,7 @@ public class RegisterBanks { } } - void set(Register register, long value) { + public void set(Register register, long value) { BankRegister bankRegister = findBankRegister(register); ByteBuffer bank = banks[bankRegister.getBank()]; switch (bankRegister.getLength()) { @@ -99,7 +99,7 @@ public class RegisterBanks { } } - void access(Register register, long offset, long size, + public void access(Register register, long offset, long size, byte[] bytes, int start, boolean write) { BankRegister bankRegister = findBankRegister(register); ByteBuffer bank = banks[bankRegister.getBank()]; diff --git a/frysk-core/frysk/proc/X86BankRegisters.java b/frysk-core/frysk/bank/X86BankRegisters.java similarity index 99% rename from frysk-core/frysk/proc/X86BankRegisters.java rename to frysk-core/frysk/bank/X86BankRegisters.java index d2cd468..e80bf7b 100644 --- a/frysk-core/frysk/proc/X86BankRegisters.java +++ b/frysk-core/frysk/bank/X86BankRegisters.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.bank; import inua.eio.ByteOrder; import frysk.isa.IA32Registers; diff --git a/frysk-core/frysk/bank/package.html b/frysk-core/frysk/bank/package.html new file mode 100644 index 0000000..7ad8e61 --- /dev/null +++ b/frysk-core/frysk/bank/package.html @@ -0,0 +1,11 @@ + + + +A bank or block of data broken into into named locations. For +instance the register bank returned by ptrace is broken down into +individual registers. + +

    Overview

    + + + diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 40504b1..fa31930 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,14 @@ +2007-12-19 Andrew Cagney + + * BankRegister.java: Move to frysk.bank. + * BankRegisterMap.java: Ditto. + * IndirectBankRegisterMap.java: Ditto. + * PPCBankRegisters.java: Ditto. + * RegisterBanks.java: Ditto. + * X86BankRegisters.java: Ditto. + * LinuxPPC32On64.java: Update. + * Task.java: Update. + 2007-12-13 Rick Moseley * Proc.java: Remove redundant call to performDetach(). diff --git a/frysk-core/frysk/proc/LinuxPPC32On64.java b/frysk-core/frysk/proc/LinuxPPC32On64.java index 7abd223..df7e592 100644 --- a/frysk-core/frysk/proc/LinuxPPC32On64.java +++ b/frysk-core/frysk/proc/LinuxPPC32On64.java @@ -39,6 +39,9 @@ package frysk.proc; +import frysk.bank.PPCBankRegisters; +import frysk.bank.BankRegister; + class LinuxPPC32On64 extends LinuxPPC32 { diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index bdf5274..d5d5cf5 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -53,6 +53,8 @@ import frysk.isa.Register; import frysk.isa.ISA; import java.math.BigInteger; import inua.eio.ByteOrder; +import frysk.bank.RegisterBanks; +import frysk.bank.BankRegister; public abstract class Task { diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index bf2c6bd..120ba4f 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,10 @@ +2007-12-19 cagney + + Bank register code moved to frysk.bank. + * LinuxExeTask.java: Update. + * CorefileRegisterBank.java: Update. + * LinuxExeTask.java: Update. + 2007-11-29 Andrew Cagney * TestCoreRegs.java (testFloatRegisters()) diff --git a/frysk-core/frysk/proc/dead/CorefileRegisterBanksFactory.java b/frysk-core/frysk/proc/dead/CorefileRegisterBanksFactory.java index 5c8678d..6b45981 100644 --- a/frysk-core/frysk/proc/dead/CorefileRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/dead/CorefileRegisterBanksFactory.java @@ -42,10 +42,10 @@ package frysk.proc.dead; import inua.eio.ByteBuffer; import frysk.isa.ISA; import frysk.isa.ISAMap; -import frysk.proc.RegisterBanks; -import frysk.proc.X86BankRegisters; -import frysk.proc.PPCBankRegisters; -import frysk.proc.BankRegisterMap; +import frysk.bank.RegisterBanks; +import frysk.bank.X86BankRegisters; +import frysk.bank.PPCBankRegisters; +import frysk.bank.BankRegisterMap; /** * The target has registers scattered across one or more register diff --git a/frysk-core/frysk/proc/dead/LinuxExeTask.java b/frysk-core/frysk/proc/dead/LinuxExeTask.java index 1302be5..9b3f6de 100644 --- a/frysk-core/frysk/proc/dead/LinuxExeTask.java +++ b/frysk-core/frysk/proc/dead/LinuxExeTask.java @@ -41,7 +41,7 @@ package frysk.proc.dead; import inua.eio.ArrayByteBuffer; import inua.eio.ByteBuffer; -import frysk.proc.RegisterBanks; +import frysk.bank.RegisterBanks; import frysk.proc.Isa; import frysk.proc.TaskId; import frysk.proc.TaskState; diff --git a/frysk-core/frysk/proc/dead/LinuxTask.java b/frysk-core/frysk/proc/dead/LinuxTask.java index 0c61fa9..a514cb3 100644 --- a/frysk-core/frysk/proc/dead/LinuxTask.java +++ b/frysk-core/frysk/proc/dead/LinuxTask.java @@ -48,7 +48,7 @@ import inua.eio.ByteOrder; import frysk.proc.TaskId; import frysk.proc.Isa; import frysk.isa.ISA; -import frysk.proc.RegisterBanks; +import frysk.bank.RegisterBanks; public class LinuxTask extends DeadTask { diff --git a/frysk-core/frysk/proc/dummy/Task.java b/frysk-core/frysk/proc/dummy/Task.java index d0d24af..5737179 100644 --- a/frysk-core/frysk/proc/dummy/Task.java +++ b/frysk-core/frysk/proc/dummy/Task.java @@ -43,7 +43,7 @@ import inua.eio.ByteBuffer; import frysk.proc.TaskObserver; import frysk.proc.Isa; import frysk.isa.ISA; -import frysk.proc.RegisterBanks; +import frysk.bank.RegisterBanks; public class Task extends frysk.proc.Task diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index f095694..a4abbc4 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,9 @@ +2007-12-19 Andrew Cagney + + Bank register code moved to frysk.bank. + * LinuxTask.java: Update. + * PtraceRegisterBanksFactory.java: Update. + 2007-12-05 Jose Flavio Aguilar Paulino * PtraceRegisterBanksFactory.java: Removing PowerPC useless diff --git a/frysk-core/frysk/proc/live/LinuxTask.java b/frysk-core/frysk/proc/live/LinuxTask.java index a2cae65..665b9ac 100644 --- a/frysk-core/frysk/proc/live/LinuxTask.java +++ b/frysk-core/frysk/proc/live/LinuxTask.java @@ -58,7 +58,7 @@ import frysk.sys.Signal; import frysk.isa.ISA; import frysk.isa.ElfMap; import java.io.File; -import frysk.proc.RegisterBanks; +import frysk.bank.RegisterBanks; /** * A Linux Task tracked using PTRACE. diff --git a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java index 4777a2d..a6ee34f 100644 --- a/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java +++ b/frysk-core/frysk/proc/live/PtraceRegisterBanksFactory.java @@ -45,9 +45,9 @@ import inua.eio.ByteOrder; import frysk.isa.ISA; import frysk.sys.Ptrace.RegisterSet; import frysk.sys.Ptrace.AddressSpace; -import frysk.proc.RegisterBanks; -import frysk.proc.X86BankRegisters; -import frysk.proc.PPCBankRegisters; +import frysk.bank.RegisterBanks; +import frysk.bank.X86BankRegisters; +import frysk.bank.PPCBankRegisters; import frysk.Config; /** hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 20 00:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 20 Dec 2007 00:56:00 -0000 Subject: [SCM] master: frysk-core/frysk/bank/ChangeLog Message-ID: <20071220005645.12506.qmail@sourceware.org> The branch, master has been updated via e590d60fba9c0de3ba354051c5b4b7b6cf41e198 (commit) from c660d1e1c83d3f354d39d95bb54a1e2dc79ed64f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e590d60fba9c0de3ba354051c5b4b7b6cf41e198 Author: Andrew Cagney Date: Wed Dec 19 19:47:07 2007 -0500 frysk-core/frysk/bank/ChangeLog 2007-12-19 Andrew Cagney * LinuxIA32RegisterBanks.java: New, from X86BankRegisters.java. * LinuxX8664RegisterBanks.java: New, from X86BankRegisters.java. * LinuxPPCRegisterBanks.java: New, from PPCBankRegisters.java. * RegisterBank.java: New. * RegisterEntry.java: New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/ChangeLog | 6 + frysk-core/frysk/bank/LinuxIA32RegisterBanks.java | 108 ++++++++++ frysk-core/frysk/bank/LinuxPPCRegisterBanks.java | 219 ++++++++++++++++++++ frysk-core/frysk/bank/LinuxX8664RegisterBanks.java | 123 +++++++++++ .../{isa/ISAMap.java => bank/RegisterBank.java} | 61 +++--- .../bank/{BankRegister.java => RegisterEntry.java} | 105 ++++++---- 6 files changed, 551 insertions(+), 71 deletions(-) create mode 100644 frysk-core/frysk/bank/LinuxIA32RegisterBanks.java create mode 100644 frysk-core/frysk/bank/LinuxPPCRegisterBanks.java create mode 100644 frysk-core/frysk/bank/LinuxX8664RegisterBanks.java copy frysk-core/frysk/{isa/ISAMap.java => bank/RegisterBank.java} (67%) copy frysk-core/frysk/bank/{BankRegister.java => RegisterEntry.java} (63%) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index 80d5375..f0f2407 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,11 @@ 2007-12-19 Andrew Cagney + * LinuxIA32RegisterBanks.java: New, from X86BankRegisters.java. + * LinuxX8664RegisterBanks.java: New, from X86BankRegisters.java. + * LinuxPPCRegisterBanks.java: New, from PPCBankRegisters.java. + * RegisterBank.java: New. + * RegisterEntry.java: New. + * BankRegister.java: Move to here from frysk.proc. * BankRegisterMap.java: Ditto. * IndirectBankRegisterMap.java: Ditto. diff --git a/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java b/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java new file mode 100644 index 0000000..4a3e1f4 --- /dev/null +++ b/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java @@ -0,0 +1,108 @@ +// This file is part of the program FRYSK. +// +// Copyright 2006, 2007, Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.bank; + +import frysk.isa.IA32Registers; +import frysk.isa.X87Registers; + +public class LinuxIA32RegisterBanks { + + public static final RegisterBank GENERAL_REGISTERS = new RegisterBank() + .add(new RegisterEntry(24, 4,IA32Registers.EAX)) + .add(new RegisterEntry(0, 4, IA32Registers.EBX)) + .add(new RegisterEntry(4, 4, IA32Registers.ECX)) + .add(new RegisterEntry(8, 4, IA32Registers.EDX)) + .add(new RegisterEntry(12, 4, IA32Registers.ESI)) + .add(new RegisterEntry(16, 4, IA32Registers.EDI)) + .add(new RegisterEntry(20, 4, IA32Registers.EBP)) + .add(new RegisterEntry(52, 4, IA32Registers.CS)) + .add(new RegisterEntry(28, 4, IA32Registers.DS)) + .add(new RegisterEntry(32, 4, IA32Registers.ES)) + .add(new RegisterEntry(36, 4, IA32Registers.FS)) + .add(new RegisterEntry(40, 4, IA32Registers.GS)) + .add(new RegisterEntry(64, 4, IA32Registers.SS)) + .add(new RegisterEntry(44, 4, IA32Registers.ORIG_EAX)) + .add(new RegisterEntry(48, 4, IA32Registers.EIP)) + .add(new RegisterEntry(56, 4, IA32Registers.EFLAGS)) + .add(new RegisterEntry(60, 4, IA32Registers.ESP)) + ; + + public static final RegisterBank FLOATING_POINT_REGISTERS = new RegisterBank() + //Get all FP registers from FXSAVE area. + .add(new RegisterEntry(0x00, 2, X87Registers.FCW)) + .add(new RegisterEntry(0x02, 2, X87Registers.FSW)) + .add(new RegisterEntry(0x04, 1, X87Registers.FTW)) + .add(new RegisterEntry(0x06, 2, X87Registers.FOP)) + .add(new RegisterEntry(0x08, 4, X87Registers.EIP)) + .add(new RegisterEntry(0x0c, 2, X87Registers.CS)) + .add(new RegisterEntry(0x10, 4, X87Registers.DP)) + .add(new RegisterEntry(0x14, 2, X87Registers.DS)) + .add(new RegisterEntry(0x18, 2, X87Registers.MXCSR)) + .add(new RegisterEntry(0x1c, 2, X87Registers.MXCSR_MASK)) + .add(new RegisterEntry(0x20, 10, X87Registers.ST0)) + .add(new RegisterEntry(0x30, 10, X87Registers.ST1)) + .add(new RegisterEntry(0x40, 10, X87Registers.ST2)) + .add(new RegisterEntry(0x50, 10, X87Registers.ST3)) + .add(new RegisterEntry(0x60, 10, X87Registers.ST4)) + .add(new RegisterEntry(0x70, 10, X87Registers.ST5)) + .add(new RegisterEntry(0x80, 10, X87Registers.ST6)) + .add(new RegisterEntry(0x90, 10, X87Registers.ST7)) + .add(new RegisterEntry(0xa0, 16, X87Registers.XMM0)) + .add(new RegisterEntry(0xb0, 16, X87Registers.XMM1)) + .add(new RegisterEntry(0xc0, 16, X87Registers.XMM2)) + .add(new RegisterEntry(0xd0, 16, X87Registers.XMM3)) + .add(new RegisterEntry(0xe0, 16, X87Registers.XMM4)) + .add(new RegisterEntry(0xf0, 16, X87Registers.XMM5)) + .add(new RegisterEntry(0x100, 16, X87Registers.XMM6)) + .add(new RegisterEntry(0x110, 16, X87Registers.XMM7)) + ; + + public static RegisterBank DEBUG_REGISTERS = new RegisterBank() + .add(new RegisterEntry(252, 4, IA32Registers.D0)) + .add(new RegisterEntry(256, 4, IA32Registers.D1)) + .add(new RegisterEntry(260, 4, IA32Registers.D2)) + .add(new RegisterEntry(264, 4, IA32Registers.D3)) + .add(new RegisterEntry(268, 4, IA32Registers.D4)) + .add(new RegisterEntry(272, 4, IA32Registers.D5)) + .add(new RegisterEntry(276, 4, IA32Registers.D6)) + .add(new RegisterEntry(280, 4, IA32Registers.D7)) + ; + +} diff --git a/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java b/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java new file mode 100644 index 0000000..1b98f18 --- /dev/null +++ b/frysk-core/frysk/bank/LinuxPPCRegisterBanks.java @@ -0,0 +1,219 @@ +// This file is part of the program FRYSK. +// +// Copyright 2006, 2007 IBM Corp. +// Copyright 2007 Red Hat Inc. +// +// Contributed by +// Jose Flavio Aguilar Paulino (joseflavio@gmail.com) +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.bank; + +import frysk.isa.PPC32Registers; +import frysk.isa.PPC64Registers; + +public class LinuxPPCRegisterBanks { + + public static final RegisterBank PPC32BE = new RegisterBank() + .add(new RegisterEntry(0, 4, PPC32Registers.GPR0)) + .add(new RegisterEntry(4, 4, PPC32Registers.GPR1)) + .add(new RegisterEntry(8, 4, PPC32Registers.GPR2)) + .add(new RegisterEntry(12, 4, PPC32Registers.GPR3)) + .add(new RegisterEntry(16, 4, PPC32Registers.GPR4)) + .add(new RegisterEntry(20, 4, PPC32Registers.GPR5)) + .add(new RegisterEntry(24, 4, PPC32Registers.GPR6)) + .add(new RegisterEntry(28, 4, PPC32Registers.GPR7)) + .add(new RegisterEntry(32, 4, PPC32Registers.GPR8)) + .add(new RegisterEntry(36, 4, PPC32Registers.GPR9)) + .add(new RegisterEntry(40, 4, PPC32Registers.GPR10)) + .add(new RegisterEntry(44, 4, PPC32Registers.GPR11)) + .add(new RegisterEntry(48, 4, PPC32Registers.GPR12)) + .add(new RegisterEntry(52, 4, PPC32Registers.GPR13)) + .add(new RegisterEntry(56, 4, PPC32Registers.GPR14)) + .add(new RegisterEntry(60, 4, PPC32Registers.GPR15)) + .add(new RegisterEntry(64, 4, PPC32Registers.GPR16)) + .add(new RegisterEntry(68, 4, PPC32Registers.GPR17)) + .add(new RegisterEntry(72, 4, PPC32Registers.GPR18)) + .add(new RegisterEntry(76, 4, PPC32Registers.GPR19)) + .add(new RegisterEntry(80, 4, PPC32Registers.GPR20)) + .add(new RegisterEntry(84, 4, PPC32Registers.GPR21)) + .add(new RegisterEntry(88, 4, PPC32Registers.GPR22)) + .add(new RegisterEntry(92, 4, PPC32Registers.GPR23)) + .add(new RegisterEntry(96, 4, PPC32Registers.GPR24)) + .add(new RegisterEntry(100, 4, PPC32Registers.GPR25)) + .add(new RegisterEntry(104, 4, PPC32Registers.GPR26)) + .add(new RegisterEntry(108, 4, PPC32Registers.GPR27)) + .add(new RegisterEntry(112, 4, PPC32Registers.GPR28)) + .add(new RegisterEntry(116, 4, PPC32Registers.GPR29)) + .add(new RegisterEntry(120, 4, PPC32Registers.GPR30)) + .add(new RegisterEntry(124, 4, PPC32Registers.GPR31)) + .add(new RegisterEntry(128, 4, PPC32Registers.NIP)) //Fixme: PC I belive + .add(new RegisterEntry(132, 4, PPC32Registers.MSR)) + .add(new RegisterEntry(136, 4, PPC32Registers.ORIGR3)) + .add(new RegisterEntry(140, 4, PPC32Registers.CTR)) + .add(new RegisterEntry(144, 4, PPC32Registers.LR)) + .add(new RegisterEntry(148, 4, PPC32Registers.XER)) + .add(new RegisterEntry(152, 4, PPC32Registers.CCR)) + .add(new RegisterEntry(156, 4, PPC32Registers.MQ)) + .add(new RegisterEntry(160, 4, PPC32Registers.TRAP)) + .add(new RegisterEntry(164, 4, PPC32Registers.DAR)) + .add(new RegisterEntry(168, 4, PPC32Registers.DSISR)) + .add(new RegisterEntry(172, 4, PPC32Registers.RESULT)) + .add(new RegisterEntry(192, 8, PPC32Registers.FPR0)) // 48*4 + .add(new RegisterEntry(200, 8, PPC32Registers.FPR1)) + .add(new RegisterEntry(208, 8, PPC32Registers.FPR2)) + .add(new RegisterEntry(216, 8, PPC32Registers.FPR3)) + .add(new RegisterEntry(224, 8, PPC32Registers.FPR4)) + .add(new RegisterEntry(232, 8, PPC32Registers.FPR5)) + .add(new RegisterEntry(240, 8, PPC32Registers.FPR6)) + .add(new RegisterEntry(248, 8, PPC32Registers.FPR7)) + .add(new RegisterEntry(256, 8, PPC32Registers.FPR8)) + .add(new RegisterEntry(264, 8, PPC32Registers.FPR9)) + .add(new RegisterEntry(272, 8, PPC32Registers.FPR10)) + .add(new RegisterEntry(280, 8, PPC32Registers.FPR11)) + .add(new RegisterEntry(288, 8, PPC32Registers.FPR12)) + .add(new RegisterEntry(296, 8, PPC32Registers.FPR13)) + .add(new RegisterEntry(304, 8, PPC32Registers.FPR14)) + .add(new RegisterEntry(312, 8, PPC32Registers.FPR15)) + .add(new RegisterEntry(320, 8, PPC32Registers.FPR16)) + .add(new RegisterEntry(328, 8, PPC32Registers.FPR17)) + .add(new RegisterEntry(336, 8, PPC32Registers.FPR18)) + .add(new RegisterEntry(344, 8, PPC32Registers.FPR19)) + .add(new RegisterEntry(352, 8, PPC32Registers.FPR20)) + .add(new RegisterEntry(360, 8, PPC32Registers.FPR21)) + .add(new RegisterEntry(368, 8, PPC32Registers.FPR22)) + .add(new RegisterEntry(376, 8, PPC32Registers.FPR23)) + .add(new RegisterEntry(384, 8, PPC32Registers.FPR24)) + .add(new RegisterEntry(392, 8, PPC32Registers.FPR25)) + .add(new RegisterEntry(400, 8, PPC32Registers.FPR26)) + .add(new RegisterEntry(408, 8, PPC32Registers.FPR27)) + .add(new RegisterEntry(416, 8, PPC32Registers.FPR28)) + .add(new RegisterEntry(424, 8, PPC32Registers.FPR29)) + .add(new RegisterEntry(432, 8, PPC32Registers.FPR30)) + .add(new RegisterEntry(440, 8, PPC32Registers.FPR31)) + //There is a pad of 4 bytes before the FPSCR reg + .add(new RegisterEntry(452, 4, PPC32Registers.FPSCR)) //(PT_FPR0 + 2*32 + 1) + ; + + public static final RegisterBank PPC64BE = new RegisterBank() + .add(new RegisterEntry(0, 8, PPC64Registers.GPR0)) + .add(new RegisterEntry(8, 8, PPC64Registers.GPR1)) + .add(new RegisterEntry(16, 8, PPC64Registers.GPR2)) + .add(new RegisterEntry(24, 8, PPC64Registers.GPR3)) + .add(new RegisterEntry(32, 8, PPC64Registers.GPR4)) + .add(new RegisterEntry(40, 8, PPC64Registers.GPR5)) + .add(new RegisterEntry(48, 8, PPC64Registers.GPR6)) + .add(new RegisterEntry(56, 8, PPC64Registers.GPR7)) + .add(new RegisterEntry(64, 8, PPC64Registers.GPR8)) + .add(new RegisterEntry(72, 8, PPC64Registers.GPR9)) + .add(new RegisterEntry(80, 8, PPC64Registers.GPR10)) + .add(new RegisterEntry(88, 8, PPC64Registers.GPR11)) + .add(new RegisterEntry(96, 8, PPC64Registers.GPR12)) + .add(new RegisterEntry(104, 8, PPC64Registers.GPR13)) + .add(new RegisterEntry(112, 8, PPC64Registers.GPR14)) + .add(new RegisterEntry(120, 8, PPC64Registers.GPR15)) + .add(new RegisterEntry(128, 8, PPC64Registers.GPR16)) + .add(new RegisterEntry(136, 8, PPC64Registers.GPR17)) + .add(new RegisterEntry(144, 8, PPC64Registers.GPR18)) + .add(new RegisterEntry(152, 8, PPC64Registers.GPR19)) + .add(new RegisterEntry(160, 8, PPC64Registers.GPR20)) + .add(new RegisterEntry(168, 8, PPC64Registers.GPR21)) + .add(new RegisterEntry(176, 8, PPC64Registers.GPR22)) + .add(new RegisterEntry(184, 8, PPC64Registers.GPR23)) + .add(new RegisterEntry(192, 8, PPC64Registers.GPR24)) + .add(new RegisterEntry(200, 8, PPC64Registers.GPR25)) + .add(new RegisterEntry(208, 8, PPC64Registers.GPR26)) + .add(new RegisterEntry(216, 8, PPC64Registers.GPR27)) + .add(new RegisterEntry(224, 8, PPC64Registers.GPR28)) + .add(new RegisterEntry(232, 8, PPC64Registers.GPR29)) + .add(new RegisterEntry(240, 8, PPC64Registers.GPR30)) + .add(new RegisterEntry(248, 8, PPC64Registers.GPR31)) + .add(new RegisterEntry(256, 8, PPC64Registers.NIP)) + .add(new RegisterEntry(264, 8, PPC64Registers.MSR)) //in gdb: .ps_offset = 264 + .add(new RegisterEntry(272, 8, PPC64Registers.ORIGR3)) + .add(new RegisterEntry(280, 8, PPC64Registers.CTR)) + .add(new RegisterEntry(288, 8, PPC64Registers.LR)) + .add(new RegisterEntry(296, 8, PPC64Registers.XER)) + .add(new RegisterEntry(304, 8, PPC64Registers.CCR)) + .add(new RegisterEntry(312, 8, PPC64Registers.SOFTE)) + .add(new RegisterEntry(320, 8, PPC64Registers.TRAP)) + .add(new RegisterEntry(328, 8, PPC64Registers.DAR)) + .add(new RegisterEntry(336, 8, PPC64Registers.DSISR)) + .add(new RegisterEntry(344, 8, PPC64Registers.RESULT)) + .add(new RegisterEntry(384, 8, PPC64Registers.FPR0)) //PT_FPR0 48 + .add(new RegisterEntry(392, 8, PPC64Registers.FPR1)) + .add(new RegisterEntry(400, 8, PPC64Registers.FPR2)) + .add(new RegisterEntry(408, 8, PPC64Registers.FPR3)) + .add(new RegisterEntry(416, 8, PPC64Registers.FPR4)) + .add(new RegisterEntry(424, 8, PPC64Registers.FPR5)) + .add(new RegisterEntry(432, 8, PPC64Registers.FPR6)) + .add(new RegisterEntry(440, 8, PPC64Registers.FPR7)) + .add(new RegisterEntry(448, 8, PPC64Registers.FPR8)) + .add(new RegisterEntry(456, 8, PPC64Registers.FPR9)) + .add(new RegisterEntry(464, 8, PPC64Registers.FPR10)) + .add(new RegisterEntry(472, 8, PPC64Registers.FPR11)) + .add(new RegisterEntry(480, 8, PPC64Registers.FPR12)) + .add(new RegisterEntry(488, 8, PPC64Registers.FPR13)) + .add(new RegisterEntry(496, 8, PPC64Registers.FPR14)) + .add(new RegisterEntry(504, 8, PPC64Registers.FPR15)) + .add(new RegisterEntry(512, 8, PPC64Registers.FPR16)) + .add(new RegisterEntry(520, 8, PPC64Registers.FPR17)) + .add(new RegisterEntry(528, 8, PPC64Registers.FPR18)) + .add(new RegisterEntry(536, 8, PPC64Registers.FPR19)) + .add(new RegisterEntry(544, 8, PPC64Registers.FPR20)) + .add(new RegisterEntry(552, 8, PPC64Registers.FPR21)) + .add(new RegisterEntry(560, 8, PPC64Registers.FPR22)) + .add(new RegisterEntry(568, 8, PPC64Registers.FPR23)) + .add(new RegisterEntry(576, 8, PPC64Registers.FPR24)) + .add(new RegisterEntry(584, 8, PPC64Registers.FPR25)) + .add(new RegisterEntry(592, 8, PPC64Registers.FPR26)) + .add(new RegisterEntry(600, 8, PPC64Registers.FPR27)) + .add(new RegisterEntry(608, 8, PPC64Registers.FPR28)) + .add(new RegisterEntry(616, 8, PPC64Registers.FPR29)) + .add(new RegisterEntry(624, 8, PPC64Registers.FPR30)) + .add(new RegisterEntry(632, 8, PPC64Registers.FPR31)) + .add(new RegisterEntry(640, 4, PPC64Registers.FPSCR)) + // Fixme: need to implement altivec registers + // Vector Registers are 128 bit wide + //.add(new BankRegister(0, 656, 16, PPC64Registers.VR0)) PT_VR0 82 + //... + //.add(new BankRegister(0, 1152, 16, PPC64Registers.V31)) PT_VR0 + 31*2), index 148 + //Need to put a 8 bytes pad here, because VSCR is 8 byte wide only + .add(new RegisterEntry(1176, 8, PPC64Registers.VSCR)) // PT_VSCR (PT_VR0 + 32*2 + 1), index 147 + .add(new RegisterEntry(1184, 8, PPC64Registers.VRSAVE)); // PT_VRSAVE (PT_VR0 + 33*2), index 148 + +} diff --git a/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java new file mode 100644 index 0000000..20758ae --- /dev/null +++ b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java @@ -0,0 +1,123 @@ +// This file is part of the program FRYSK. +// +// Copyright 2006, 2007, Red Hat Inc. +// +// FRYSK is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// FRYSK is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with FRYSK; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +// +// In addition, as a special exception, Red Hat, Inc. gives You the +// additional right to link the code of FRYSK with code not covered +// under the GNU General Public License ("Non-GPL Code") and to +// distribute linked combinations including the two, subject to the +// limitations in this paragraph. Non-GPL Code permitted under this +// exception must only link to the code of FRYSK through those well +// defined interfaces identified in the file named EXCEPTION found in +// the source code files (the "Approved Interfaces"). The files of +// Non-GPL Code may instantiate templates or use macros or inline +// functions from the Approved Interfaces without causing the +// resulting work to be covered by the GNU General Public +// License. Only Red Hat, Inc. may make changes or additions to the +// list of Approved Interfaces. You must obey the GNU General Public +// License in all respects for all of the FRYSK code and other code +// used in conjunction with FRYSK except the Non-GPL Code covered by +// this exception. If you modify this file, you may extend this +// exception to your version of the file, but you are not obligated to +// do so. If you do not wish to provide this exception without +// modification, you must delete this exception statement from your +// version and license this file solely under the GPL without +// exception. + +package frysk.bank; + +import frysk.isa.X8664Registers; +import frysk.isa.X87Registers; + +public class LinuxX8664RegisterBanks { + + public static final RegisterBank GENERAL_REGISTERS = new RegisterBank() + .add(new RegisterEntry(80, 8, X8664Registers.RAX)) + .add(new RegisterEntry(40, 8, X8664Registers.RBX)) + .add(new RegisterEntry(88, 8, X8664Registers.RCX)) + .add(new RegisterEntry(96, 8, X8664Registers.RDX)) + .add(new RegisterEntry(104, 8, X8664Registers.RSI)) + .add(new RegisterEntry(112, 8, X8664Registers.RDI)) + .add(new RegisterEntry(32, 8, X8664Registers.RBP)) + .add(new RegisterEntry(152, 8, X8664Registers.RSP)) + .add(new RegisterEntry(72, 8, X8664Registers.R8)) + .add(new RegisterEntry(64, 8, X8664Registers.R9)) + .add(new RegisterEntry(56, 8, X8664Registers.R10)) + .add(new RegisterEntry(48, 8, X8664Registers.R11)) + .add(new RegisterEntry(24, 8, X8664Registers.R12)) + .add(new RegisterEntry(16, 8, X8664Registers.R13)) + .add(new RegisterEntry(8, 8, X8664Registers.R14)) + .add(new RegisterEntry(0, 8, X8664Registers.R15)) + .add(new RegisterEntry(128, 8, X8664Registers.RIP)) + .add(new RegisterEntry(144, 8, X8664Registers.RFLAGS)) + .add(new RegisterEntry(136, 8, "cs")) + .add(new RegisterEntry(160, 8, "ss")) + .add(new RegisterEntry(184, 8, "ds")) + .add(new RegisterEntry(192, 8, "es")) + .add(new RegisterEntry(200, 8, "fs")) + .add(new RegisterEntry(208, 8, "gs")) + .add(new RegisterEntry(120, 8, X8664Registers.ORIG_RAX)) + .add(new RegisterEntry(168, 8, X8664Registers.FS_BASE)) + .add(new RegisterEntry(176, 8, X8664Registers.GS_BASE)) + ; + + public static final RegisterBank FLOATING_POINT_REGISTERS = new RegisterBank() + // Format determined by FXSAVE instruction + .add(new RegisterEntry(0x00, 2, X87Registers.FCW)) + .add(new RegisterEntry(0x02, 2, X87Registers.FSW)) + .add(new RegisterEntry(0x04, 1, X87Registers.FTW)) + .add(new RegisterEntry(0x06, 2, X87Registers.FOP)) + .add(new RegisterEntry(0x08, 4, X87Registers.RIP)) + .add(new RegisterEntry(0x10, 4, X87Registers.RDP)) + .add(new RegisterEntry(0x18, 2, X87Registers.MXCSR)) + .add(new RegisterEntry(0x1c, 2, X87Registers.MXCSR_MASK)) + .add(new RegisterEntry(0x20, 10, X87Registers.ST0)) + .add(new RegisterEntry(0x30, 10, X87Registers.ST1)) + .add(new RegisterEntry(0x40, 10, X87Registers.ST2)) + .add(new RegisterEntry(0x50, 10, X87Registers.ST3)) + .add(new RegisterEntry(0x60, 10, X87Registers.ST4)) + .add(new RegisterEntry(0x70, 10, X87Registers.ST5)) + .add(new RegisterEntry(0x80, 10, X87Registers.ST6)) + .add(new RegisterEntry(0x90, 10, X87Registers.ST7)) + .add(new RegisterEntry(0xa0, 16, X87Registers.XMM0)) + .add(new RegisterEntry(0xb0, 16, X87Registers.XMM1)) + .add(new RegisterEntry(0xc0, 16, X87Registers.XMM2)) + .add(new RegisterEntry(0xd0, 16, X87Registers.XMM3)) + .add(new RegisterEntry(0xe0, 16, X87Registers.XMM4)) + .add(new RegisterEntry(0xf0, 16, X87Registers.XMM5)) + .add(new RegisterEntry(0x100, 16, X87Registers.XMM6)) + .add(new RegisterEntry(0x110, 16, X87Registers.XMM7)) + .add(new RegisterEntry(0x120, 16, X87Registers.XMM8)) + .add(new RegisterEntry(0x130, 16, X87Registers.XMM9)) + .add(new RegisterEntry(0x140, 16, X87Registers.XMM10)) + .add(new RegisterEntry(0x150, 16, X87Registers.XMM11)) + .add(new RegisterEntry(0x160, 16, X87Registers.XMM12)) + .add(new RegisterEntry(0x170, 16, X87Registers.XMM13)) + .add(new RegisterEntry(0x180, 16, X87Registers.XMM14)) + .add(new RegisterEntry(0x190, 16, X87Registers.XMM15)) + ; + + public static final RegisterBank DEBUG_REGISTERS = new RegisterBank() + .add(new RegisterEntry(848, 8, X8664Registers.DR0)) + .add(new RegisterEntry(856, 8, X8664Registers.DR1)) + .add(new RegisterEntry(864, 8, X8664Registers.DR2)) + .add(new RegisterEntry(872, 8, X8664Registers.DR3)) + .add(new RegisterEntry(880, 8, X8664Registers.DR4)) + .add(new RegisterEntry(888, 8, X8664Registers.DR5)) + .add(new RegisterEntry(896, 8, X8664Registers.DR6)) + .add(new RegisterEntry(904, 8, X8664Registers.DR7)) + ; +} diff --git a/frysk-core/frysk/isa/ISAMap.java b/frysk-core/frysk/bank/RegisterBank.java similarity index 67% copy from frysk-core/frysk/isa/ISAMap.java copy to frysk-core/frysk/bank/RegisterBank.java index 25fa072..76f3c9d 100644 --- a/frysk-core/frysk/isa/ISAMap.java +++ b/frysk-core/frysk/bank/RegisterBank.java @@ -37,50 +37,51 @@ // version and license this file solely under the GPL without // exception. -package frysk.isa; +package frysk.bank; + +import inua.eio.ByteBuffer; hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Thu Dec 20 08:57:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 20 Dec 2007 08:57:00 -0000 Subject: [SCM] master: Add libunwind-* arch symlinks and use "normal" recursive configure. Message-ID: <20071220085743.6886.qmail@sourceware.org> The branch, master has been updated via e9da21cc5516c519054e31d67b2d963dbf2e5335 (commit) from e590d60fba9c0de3ba354051c5b4b7b6cf41e198 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e9da21cc5516c519054e31d67b2d963dbf2e5335 Author: Mark Wielaard Date: Thu Dec 20 09:23:36 2007 +0100 Add libunwind-* arch symlinks and use "normal" recursive configure. frysk-imports/ChangeLog 2007-12-20 Mark Wielaard * .gitignore: Remove libunwind-*. * Makefile.am (LIBUNWIND_DIR): Set to either empty or canonical libunwind dir. (LIBUNWIND_ARCH_DIRS): Define. (LIBUNWIND_OTHER_DIRS): Removed. (CHECK_SUBDIRS): Include LIBUNWIND_DIR (if defined). (SUBDIRS): Include LIBUNWIND_ARCH_DIRS. * bootstrap.sh: Don't create libunwind-* dirs. * configure.ac: Don't create and configure libunwind-* dirs explicitly. (AC_CONFIG_SUBDIRS): Add libunwind-* dirs. frysk-imports/libunwind/ChangeLog 2007-12-20 Mark Wielaard * configure.in (is_local_frysk_build): New function. (frysk_local_target_cpu): New function. Define target_cpu, target_alias and UNW_REMOTE_ONLY based on new functions. ----------------------------------------------------------------------- Summary of changes: frysk-imports/.gitignore | 4 ---- frysk-imports/ChangeLog | 14 ++++++++++++++ frysk-imports/Makefile.am | 25 +++++-------------------- frysk-imports/bootstrap.sh | 7 ------- frysk-imports/configure.ac | 16 +--------------- frysk-imports/libunwind-i386 | 1 + frysk-imports/libunwind-ppc32 | 1 + frysk-imports/libunwind-ppc64 | 1 + frysk-imports/libunwind-x86_64 | 1 + frysk-imports/libunwind/ChangeLog | 7 +++++++ frysk-imports/libunwind/configure.in | 28 ++++++++++++++++++++++++++-- 11 files changed, 57 insertions(+), 48 deletions(-) create mode 120000 frysk-imports/libunwind-i386 create mode 120000 frysk-imports/libunwind-ppc32 create mode 120000 frysk-imports/libunwind-ppc64 create mode 120000 frysk-imports/libunwind-x86_64 First 500 lines of diff: diff --git a/frysk-imports/.gitignore b/frysk-imports/.gitignore index aea9805..2655ccd 100644 --- a/frysk-imports/.gitignore +++ b/frysk-imports/.gitignore @@ -10,7 +10,3 @@ depcomp files.list install-sh missing -libunwind-i386 -libunwind-x86_64 -libunwind-ppc32 -libunwind-ppc64 diff --git a/frysk-imports/ChangeLog b/frysk-imports/ChangeLog index 0cd00e3..41be628 100644 --- a/frysk-imports/ChangeLog +++ b/frysk-imports/ChangeLog @@ -1,3 +1,17 @@ +2007-12-20 Mark Wielaard + + * .gitignore: Remove libunwind-*. + * Makefile.am (LIBUNWIND_DIR): Set to either empty or canonical + libunwind dir. + (LIBUNWIND_ARCH_DIRS): Define. + (LIBUNWIND_OTHER_DIRS): Removed. + (CHECK_SUBDIRS): Include LIBUNWIND_DIR (if defined). + (SUBDIRS): Include LIBUNWIND_ARCH_DIRS. + * bootstrap.sh: Don't create libunwind-* dirs. + * configure.ac: Don't create and configure libunwind-* dirs + explicitly. + (AC_CONFIG_SUBDIRS): Add libunwind-* dirs. + 2007-10-13 Mark Wielaard * .cvsignore: Add libunwind-ppc32. diff --git a/frysk-imports/Makefile.am b/frysk-imports/Makefile.am index c6602a4..d241705 100644 --- a/frysk-imports/Makefile.am +++ b/frysk-imports/Makefile.am @@ -44,26 +44,11 @@ include Makefile.gen # See the comment above CHECK_SUBDIRS, only add libunwind to the tests # if explicitly configured to do so. if CHECK_LIBUNWIND -if ARCH_X86 - LIBUNWIND_ARCH_DIR = libunwind-i386 - LIBUNWIND_OTHER_DIRS = libunwind-x86_64 libunwind-ppc32 libunwind-ppc64 -endif # ARCH_X86 -if ARCH_X86_64 - LIBUNWIND_ARCH_DIR = libunwind-x86_64 - LIBUNWIND_OTHER_DIRS = libunwind-i386 libunwind-ppc32 libunwind-ppc64 -endif # ARCH_X86_64 -if ARCH_PPC32 - LIBUNWIND_ARCH_DIR = libunwind-ppc32 - LIBUNWIND_OTHER_DIRS = libunwind-i386 libunwind-x86_64 libunwind-ppc64 -endif # ARCH_PPC32 -if ARCH_PPC64 - LIBUNWIND_ARCH_DIR = libunwind-ppc64 - LIBUNWIND_OTHER_DIRS = libunwind-i386 libunwind-x86_64 libunwind-ppc32 -endif # ARCH_PPC64 + LIBUNWIND_DIR = libunwind else - LIBUNWIND_ARCH_DIR = - LIBUNWIND_OTHER_DIRS = libunwind-i386 libunwind-x86_64 libunwind-ppc32 libunwind-ppc64 + LIBUNWIND_DIR = endif # CHECK_LIBUNWIND +LIBUNWIND_ARCH_DIRS = libunwind-i386 libunwind-x86_64 libunwind-ppc32 libunwind-ppc64 # List of directories that should both be included in the distro and # included in a recursive "make check". Only the native architecture @@ -77,13 +62,13 @@ CHECK_SUBDIRS = \ elfutils \ getopt \ tests \ - $(LIBUNWIND_ARCH_DIR) + $(LIBUNWIND_DIR) check-recursive: SUBDIRS = $(CHECK_SUBDIRS) # List of directories to build. This does not include "libunwind" but # does include the unwind cross libraries. -SUBDIRS = $(CHECK_SUBDIRS) $(LIBUNWIND_OTHER_DIRS) +SUBDIRS = $(CHECK_SUBDIRS) $(LIBUNWIND_ARCH_DIRS) # List of directories to install, put simply, only install frysk # stuff. Will eventually need to change this so that it installs diff --git a/frysk-imports/bootstrap.sh b/frysk-imports/bootstrap.sh index d8e1949..5a734c4 100755 --- a/frysk-imports/bootstrap.sh +++ b/frysk-imports/bootstrap.sh @@ -69,13 +69,6 @@ FILE_LIST="\ autoconf -Werror -f ) -for isa in i386 x86_64 ppc32 ppc64 -do - mkdir -p libunwind-$isa - # Something to include in EXTRA_DIST that these directories are - # included in the distro. - touch libunwind-$isa/.keep_me -done ( cd libunwind mkdir -p config diff --git a/frysk-imports/configure.ac b/frysk-imports/configure.ac index f9fc51a..5a127f1 100644 --- a/frysk-imports/configure.ac +++ b/frysk-imports/configure.ac @@ -58,24 +58,10 @@ AC_CONFIG_FILES([ cdtparser/Makefile junit/Makefile]) -for isa in i386 x86_64 ppc32 ppc64 -do - AC_MSG_NOTICE([configuring libunwind-$isa]) - mkdir -p libunwind-$isa - confdir=`cd "$srcdir";pwd` - # FIXME - This is wrong since it discards any configure flags given - # except those explicitly passed on... - ( cd libunwind-$isa ; $confdir/libunwind/configure \ - --target=$isa-unknown-linux-gnu \ - --build=${build} \ - --host=${host} \ - --prefix=${prefix} ) || exit $? -done - # Even though "libunwind" is not built, it is still included in the # list of configured subdirectories so that it can be included in # "make dist" (or the recursive "make distdir"). -AC_CONFIG_SUBDIRS([elfutils libunwind]) +AC_CONFIG_SUBDIRS([elfutils libunwind libunwind-i386 libunwind-x86_64 libunwind-ppc32 libunwind-ppc64]) AC_OUTPUT diff --git a/frysk-imports/libunwind-i386 b/frysk-imports/libunwind-i386 new file mode 120000 index 0000000..afad516 --- /dev/null +++ b/frysk-imports/libunwind-i386 @@ -0,0 +1 @@ +libunwind \ No newline at end of file diff --git a/frysk-imports/libunwind-ppc32 b/frysk-imports/libunwind-ppc32 new file mode 120000 index 0000000..afad516 --- /dev/null +++ b/frysk-imports/libunwind-ppc32 @@ -0,0 +1 @@ +libunwind \ No newline at end of file diff --git a/frysk-imports/libunwind-ppc64 b/frysk-imports/libunwind-ppc64 new file mode 120000 index 0000000..afad516 --- /dev/null +++ b/frysk-imports/libunwind-ppc64 @@ -0,0 +1 @@ +libunwind \ No newline at end of file diff --git a/frysk-imports/libunwind-x86_64 b/frysk-imports/libunwind-x86_64 new file mode 120000 index 0000000..afad516 --- /dev/null +++ b/frysk-imports/libunwind-x86_64 @@ -0,0 +1 @@ +libunwind \ No newline at end of file diff --git a/frysk-imports/libunwind/ChangeLog b/frysk-imports/libunwind/ChangeLog index 04d85ee..e09422a 100644 --- a/frysk-imports/libunwind/ChangeLog +++ b/frysk-imports/libunwind/ChangeLog @@ -1,3 +1,10 @@ +2007-12-20 Mark Wielaard + + * configure.in (is_local_frysk_build): New function. + (frysk_local_target_cpu): New function. + Define target_cpu, target_alias and UNW_REMOTE_ONLY based on new + functions. + 2007-12-11 Andrew Cagney * src/x86/Gregs.c (linux_scratch_loc): Add XMM registers. diff --git a/frysk-imports/libunwind/configure.in b/frysk-imports/libunwind/configure.in index 0cd1376..28ed2b2 100644 --- a/frysk-imports/libunwind/configure.in +++ b/frysk-imports/libunwind/configure.in @@ -7,6 +7,30 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(libunwind, mkvers(pkg_major, pkg_minor, pkg_extra), pkg_maintainer) AC_CONFIG_SRCDIR(src/mi/backtrace.c) AC_CONFIG_AUX_DIR(config) + +# Returns "yes" or "no" based on dirname starting with libunwind-. +is_local_frysk_build() { + if (echo $1 | grep ^libunwind- > /dev/null); then + echo "yes" + else + echo "no" + fi +} + +# Returns the encoded build cpu in the local frysk build dir name +frysk_local_target_cpu() { + echo $1 | cut -f2 -d- +} + +# We will trick the target to be the same as the name of the dir +# for frysk local builds. +fbdir=$(basename `cd "$builddir";pwd`) +frysk_local=`is_local_frysk_build $fbdir` +if test x$frysk_local = xyes; then + target_cpu=`frysk_local_target_cpu $fbdir` + target_alias=${target_cpu}-unknown-linux-gnu +fi + AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE([1.6 subdir-objects]) AM_CONFIG_HEADER(include/config.h) @@ -84,7 +108,7 @@ get_arch() { build_arch=`get_arch $build_cpu` target_arch=`get_arch $target_cpu` -AM_CONDITIONAL(REMOTE_ONLY, test x$target_arch != x$build_arch) +AM_CONDITIONAL(REMOTE_ONLY, test x$frysk_local = xyes) AM_CONDITIONAL(ARCH_IA64, test x$target_arch = xia64) AM_CONDITIONAL(ARCH_HPPA, test x$target_arch = xhppa) AM_CONDITIONAL(ARCH_X86, test x$target_arch = xx86) @@ -100,7 +124,7 @@ if test x$target_arch = xppc64; then AC_SUBST([libdir]) fi -if test x$target_arch != x$build_arch; then +if test x$frysk_local = xyes; then CPPFLAGS="${CPPFLAGS} -DUNW_REMOTE_ONLY" fi AC_CONFIG_LINKS(include/libunwind.h:include/libunwind-$target_arch.h hooks/post-receive -- frysk system monitor/debugger From mark@sourceware.org Thu Dec 20 10:15:00 2007 From: mark@sourceware.org (mark@sourceware.org) Date: Thu, 20 Dec 2007 10:15:00 -0000 Subject: [SCM] master: Add Eclipse How do I use gcj? (aka, I see an error about gnu.gcj.RawData) Q/A. Message-ID: <20071220101546.2405.qmail@sourceware.org> The branch, master has been updated via 033a6a74b58a3e0980b748360755ee13d9601a61 (commit) from e9da21cc5516c519054e31d67b2d963dbf2e5335 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 033a6a74b58a3e0980b748360755ee13d9601a61 Author: Mark Wielaard Date: Thu Dec 20 11:15:29 2007 +0100 Add Eclipse How do I use gcj? (aka, I see an error about gnu.gcj.RawData) Q/A. ----------------------------------------------------------------------- Summary of changes: htdocs/build/index.html | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) First 500 lines of diff: diff --git a/htdocs/build/index.html b/htdocs/build/index.html index e0041f8..15df093 100644 --- a/htdocs/build/index.html +++ b/htdocs/build/index.html @@ -369,6 +369,25 @@ files.
    Once the build has finished, from eclipse: +
    How do I use gcj? (aka, I see an error about gnu.gcj.RawData)
    +
    +Since frysk relies on some gcj specific implementation details +(cni and gnu.gcj.RawData) you want to make sure to have the gcj +JRE/JDK compat package install (java-1.5.0-gcj-devel). To make sure +this JRE/JVM is used in the Frysk Eclipse workspace do: +
      +
    • Expand 'my project' in the package browser. +
    • Select JRE System Library. +
    • Right click and select Configure... +
    • Select Alternate JRE. +
    • Click Installed JREs... +
    • Click Add... +
    • Add JRE home directory: /usr/lib/jvm/java-1.5.0-gcj. +
    • Make sure this JRE is now selected before clicking finish. +
    +The project should now auto-re-build without any errors. +
    +
    What should my eclipse format options be set to?
    frysk pretty much follows the standard Java Conventions; to hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Dec 20 10:43:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 20 Dec 2007 10:43:00 -0000 Subject: [SCM] master: Add 'info' command to fhpd. Message-ID: <20071220104355.17679.qmail@sourceware.org> The branch, master has been updated via e77830491c7108b55f832ead5087f4decf54077f (commit) from 033a6a74b58a3e0980b748360755ee13d9601a61 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e77830491c7108b55f832ead5087f4decf54077f Author: Phil Muldoon Date: Thu Dec 20 10:43:40 2007 +0000 Add 'info' command to fhpd. 2007-12-20 Phil Muldoon * InfoCommand.java: New. Add auxv, maps, debuginfo. * TopLevelCommand.java(TopLevelCommand): Add InfoCommand. Remove auxv, maps, debuginfo. * TestRegs.java (testRegsCommand): Add 'info regs' to test. * TestMapsCommand.java (testMapsCommand): Send 'info maps' to expect instead of 'maps'. * TestAuxvCommand.java (testAuxVCoreCommand): Send 'info auxv' to expect instead of 'auxv'. * TestHelp.java (TestHelp): Remove debuginfo, add info to array. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 14 +++++ .../{DebuginfoCommand.java => InfoCommand.java} | 57 +++++++++++--------- frysk-core/frysk/hpd/TestAuxvCommand.java | 2 +- frysk-core/frysk/hpd/TestHelp.java | 2 +- frysk-core/frysk/hpd/TestMapsCommand.java | 2 +- frysk-core/frysk/hpd/TestRegs.java | 25 +++++---- frysk-core/frysk/hpd/TopLevelCommand.java | 4 +- 7 files changed, 64 insertions(+), 42 deletions(-) copy frysk-core/frysk/hpd/{DebuginfoCommand.java => InfoCommand.java} (68%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 789cd32..3dfa4e7 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,17 @@ +2007-12-20 Phil Muldoon + + * InfoCommand.java: New. Add auxv, maps, debuginfo. + * TopLevelCommand.java(TopLevelCommand): Add InfoCommand. + Remove auxv, maps, debuginfo. + * TestRegs.java (testRegsCommand): Add 'info regs' + to test. + * TestMapsCommand.java (testMapsCommand): Send 'info maps' + to expect instead of 'maps'. + * TestAuxvCommand.java (testAuxVCoreCommand): Send 'info auxv' + to expect instead of 'auxv'. + * TestHelp.java (TestHelp): Remove debuginfo, add + info to array. + 2007-12-18 Rick Moseley * TestLoadCommand.java: Fix regex symbols. diff --git a/frysk-core/frysk/hpd/DebuginfoCommand.java b/frysk-core/frysk/hpd/InfoCommand.java similarity index 68% copy from frysk-core/frysk/hpd/DebuginfoCommand.java copy to frysk-core/frysk/hpd/InfoCommand.java index 51c89b6..d8529cd 100644 --- a/frysk-core/frysk/hpd/DebuginfoCommand.java +++ b/frysk-core/frysk/hpd/InfoCommand.java @@ -36,34 +36,41 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. - package frysk.hpd; -import java.util.Iterator; -import frysk.proc.Task; -import frysk.util.DebuginfoPaths; import java.util.List; -class DebuginfoCommand extends ParameterizedCommand { - - DebuginfoCommand() { - super("Displays debuginfo install paths of a process.", "debuginfo", - "The debuginfo command lists the debuginfo paths " - + "for a process and its shared modules."); +public class InfoCommand extends MultiLevelCommand { + + private class Help extends Command { + Help() { + super("Display this help message.", "help [command]", + "Display help (possibly for a command.)"); + } + + public void interpret(CLI cli, Input cmd) { + InfoCommand.this.help(cli, cmd); + } + + /** + * Complete the line, throw problem back at the top level + * command. + */ + int complete(CLI cli, Input buffer, int cursor, List candidates) { + return InfoCommand.this.complete(cli, buffer, cursor, + candidates); + } } - - int completer(CLI cli, Input input, int cursor, List completions) { - return -1; - } - - void interpret(CLI cli, Input cmd, Object options) { - PTSet ptset = cli.getCommandPTSet(cmd); - Iterator taskIter = ptset.getTasks(); - while (taskIter.hasNext()) { - Task task = (Task) taskIter.next(); - DebuginfoPaths dbg = new DebuginfoPaths(task); - String dInfo = dbg.getDebuginfo(); - cli.outWriter.println(dInfo); - } + + + InfoCommand() { + super("info command", "info ", + "The info command displays useful information about " + + "various system and process level systems."); + add(new Help(), "help"); + add(new RegsCommand(),"regs"); + add(new DebuginfoCommand(),"debuginfo"); + add(new MapsCommand(),"maps"); + add(new AuxvCommand(),"auxv"); } -} \ No newline at end of file +} diff --git a/frysk-core/frysk/hpd/TestAuxvCommand.java b/frysk-core/frysk/hpd/TestAuxvCommand.java index 3b566b7..8434d36 100644 --- a/frysk-core/frysk/hpd/TestAuxvCommand.java +++ b/frysk-core/frysk/hpd/TestAuxvCommand.java @@ -75,7 +75,7 @@ public class TestAuxvCommand extends TestLib { e.send("core " + core.getPath() + " -noexe\n"); e.expect("Attached to core file.*"); - e.send("auxv\n"); + e.send("info auxv\n"); Iterator i = buildAuxv.auxvData.iterator(); while (i.hasNext()) e.equals((String)i.next()); diff --git a/frysk-core/frysk/hpd/TestHelp.java b/frysk-core/frysk/hpd/TestHelp.java index fd34afe..cb9414d 100644 --- a/frysk-core/frysk/hpd/TestHelp.java +++ b/frysk-core/frysk/hpd/TestHelp.java @@ -56,7 +56,6 @@ public class TestHelp "attach", "break", "core", - "debuginfo", "defset", "delete", "detach", @@ -72,6 +71,7 @@ public class TestHelp "go", "halt", "help", + "info", "list", "load", "next", diff --git a/frysk-core/frysk/hpd/TestMapsCommand.java b/frysk-core/frysk/hpd/TestMapsCommand.java index 51380af..3ac9e70 100644 --- a/frysk-core/frysk/hpd/TestMapsCommand.java +++ b/frysk-core/frysk/hpd/TestMapsCommand.java @@ -52,7 +52,7 @@ public class TestMapsCommand extends TestLib { e = new HpdTestbed(); e.send("attach " + proc.getPid() +"\n"); - e.send("maps\n"); + e.send("info maps\n"); for (int i=0; i< liveMaps.length; i++) e.equals(liveMaps[i].toString()); e.close(); diff --git a/frysk-core/frysk/hpd/TestRegs.java b/frysk-core/frysk/hpd/TestRegs.java index c3e90c2..46add1d 100644 --- a/frysk-core/frysk/hpd/TestRegs.java +++ b/frysk-core/frysk/hpd/TestRegs.java @@ -51,20 +51,23 @@ public class TestRegs extends TestLib { File exe = Config.getPkgLibFile("hpd-c"); ISA isa = ElfMap.getISA(exe); + String[] commandSet = {"regs\n", "info regs\n"}; // Regs - e.send("regs\n"); - - // Match the first register (with two values) and the last - // register. - if (isa == ISA.IA32) - e.expectPrompt("eax:\t[0-9][^\t]*\t0x.*esp:.*"); - else if (isa == ISA.X8664) - e.expectPrompt("rax:\t[0-9][^\t]*\t0x.*rip:.*"); - else - fail("Architecture " + isa + " unhandled"); + for (int i=0; i < commandSet.length; i++) { + e.send(commandSet[i]); + + // Match the first register (with two values) and the last + // register. + if (isa == ISA.IA32) + e.expectPrompt("eax:\t[0-9][^\t]*\t0x.*esp:.*"); + else if (isa == ISA.X8664) + e.expectPrompt("rax:\t[0-9][^\t]*\t0x.*rip:.*"); + else + fail("Architecture " + isa + " unhandled"); + } e.close(); } - + public void testRegsBlah() { e = HpdTestbed.attachXXX("hpd-c"); e.sendCommandExpectPrompt("regs blah", diff --git a/frysk-core/frysk/hpd/TopLevelCommand.java b/frysk-core/frysk/hpd/TopLevelCommand.java index f85e691..009ec4c 100644 --- a/frysk-core/frysk/hpd/TopLevelCommand.java +++ b/frysk-core/frysk/hpd/TopLevelCommand.java @@ -80,12 +80,10 @@ public class TopLevelCommand extends MultiLevelCommand { add(new AliasCommands.Alias(), "alias"); add(new AliasCommands.Unalias(), "unalias"); add(new AttachCommand(), "attach"); - add(new AuxvCommand(), "auxv"); add(new BreakpointCommand(), "b|reak"); add(new CoreCommand(), "core"); add(new DbgVariableCommands.Set(), "set"); add(new DbgVariableCommands.Unset(), "unset"); - add(new DebuginfoCommand(), "debuginfo"); add(new DetachCommand(), "detach"); add(new DisassembleCommand(), "disassemble"); add(new DisplayCommand(), "display"); @@ -95,10 +93,10 @@ public class TopLevelCommand extends MultiLevelCommand { add(new GoCommand(), "g|o"); add(new HaltCommand(), "h|alt"); add(new Help(), "help"); + add(new InfoCommand(), "info"); add(new KillCommand(), "k|ill"); add(new ListCommand(), "l|ist"); add(new LoadCommand(), "load"); - add(new MapsCommand(), "maps"); add(new PeekCommand(), "peek"); Command quit = new QuitCommand(); add(quit, "exit"); hooks/post-receive -- frysk system monitor/debugger From pmuldoon@sourceware.org Thu Dec 20 16:32:00 2007 From: pmuldoon@sourceware.org (pmuldoon@sourceware.org) Date: Thu, 20 Dec 2007 16:32:00 -0000 Subject: [SCM] master: Fix System.out Message-ID: <20071220163206.5497.qmail@sourceware.org> The branch, master has been updated via c2b6a3842249b6dead1331a6830a314ba844e091 (commit) from e77830491c7108b55f832ead5087f4decf54077f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c2b6a3842249b6dead1331a6830a314ba844e091 Author: Phil Muldoon Date: Thu Dec 20 16:31:59 2007 +0000 Fix System.out 2007-12-20 Phil Muldoon * TestFauxv.java (fauxv): Delete System.out. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 ++++ frysk-core/frysk/bindir/TestFauxv.java | 1 - 2 files changed, 4 insertions(+), 1 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index 2193b21..f01a5c8 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-20 Phil Muldoon + + * TestFauxv.java (fauxv): Delete System.out. + 2007-12-19 cagney * fhpd.java: Explicitly import frysk.sys.FileDescriptor. diff --git a/frysk-core/frysk/bindir/TestFauxv.java b/frysk-core/frysk/bindir/TestFauxv.java index 060361a..045c9a5 100644 --- a/frysk-core/frysk/bindir/TestFauxv.java +++ b/frysk-core/frysk/bindir/TestFauxv.java @@ -55,7 +55,6 @@ public class TestFauxv argv[argc++] = Config.getBinFile("fauxv").getAbsolutePath(); argv[argc++] = coreFile.getAbsolutePath(); Expect e = new Expect(argv); - System.out.println(argv[0]+" " +argv[1]); TearDownExpect.add(e); return e; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 20 17:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 20 Dec 2007 17:56:00 -0000 Subject: [SCM] master: Add common class frysk.bank.RegisterMap; use. Message-ID: <20071220175638.11529.qmail@sourceware.org> The branch, master has been updated via 92674d4e204276b5cba183da814aa57fa71d4423 (commit) via ca81efcc6c72d226ca5a1098cd2e9014b2b5d885 (commit) via dfbbcc3161402d2b125ad9d863442513da37c135 (commit) via 13de2cef03a5c48cb98ea8c08cdf1e0deb6793ad (commit) from c2b6a3842249b6dead1331a6830a314ba844e091 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 92674d4e204276b5cba183da814aa57fa71d4423 Author: Andrew Cagney Date: Thu Dec 20 12:53:59 2007 -0500 Add common class frysk.bank.RegisterMap; use. frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * RegisterMap.java: New file. * BankRegisterMap.java: Extend RegisterMap.java. * BankArrayRegisterMap.java: Ditto. * BankArrayRegister.java: Extend BankRegister. * IndirectBankArrayRegisterMap.java: Update. frysk-core/frysk/proc/ChangeLog 2007-12-20 Andrew Cagney * LinuxPPC32On64.java (getRegisterByName()): Delete. commit ca81efcc6c72d226ca5a1098cd2e9014b2b5d885 Author: Andrew Cagney Date: Thu Dec 20 12:20:42 2007 -0500 Give register banks names that reflect the ptrace requests. frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * LinuxPPCRegisterBanks.java (USR32): Rename PPC32BE. (USR64): Rename PPC64BE. * LinuxX8664RegisterBanks.java (REGS): Rename GENERAL_REGISTERS. (FPREGS): Rename FLOATING_POINT_REGISTERS. * LinuxIA32RegisterBanks.java (REGS): Rename GENERAL_REGISTERS. (FPREGS): New. (XFPREGS): Rename FLOATING_POINT_REGISTERS. (USR): Rename DEBUG_REGISTERS. commit dfbbcc3161402d2b125ad9d863442513da37c135 Author: Andrew Cagney Date: Thu Dec 20 11:49:10 2007 -0500 Make bank and bank array class names more consistent. frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * BankRegister.java: Rename RegisterEntry.java. * BankRegisterMap.java: Rename RegisterBank.java. * BankArrayRegisterMap.java: Rename RegisterBankArrayMap.java. * IndirectBankArrayRegisterMap.java: Rename IndirectRegisterBankArrayMap.java. * LinuxX8664RegisterBanks.java: Update. * LinuxPPCRegisterBanks.java: Update. * LinuxIA32RegisterBanks.java: Update. * PPCBankRegisters.java: Update. * RegisterBanks.java: Update. * X86BankRegisters.java: Update. frysk-core/frysk/proc/dead/ChangeLog 2007-12-20 Andrew Cagney * CorefileRegisterBanksFactory.java: Update; RegisterBankArrayMap renamed to BankArrayRegisterMap. commit 13de2cef03a5c48cb98ea8c08cdf1e0deb6793ad Author: Andrew Cagney Date: Thu Dec 20 11:21:35 2007 -0500 frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * BankArrayRegister.java: Rename BankRegister.java. * IndirectRegisterBankArrayMap.java: Rename IndirectBankregistermap.java. * RegisterBankArrayMap.java: Rename BankRegistermap.java. * RegisterBanks.java: Update. * PPCBankRegisters.java: Update. * X86BankRegisters.java: Update. frysk-core/frysk/proc/ChangeLog 2007-12-20 Andrew Cagney BankRegister renamed to BankArrayRegister. * LinuxPPC32On64.java: Update. * Task.java: Update. frysk-core/frysk/proc/dead/ChangeLog 2007-12-20 Andrew Cagney BankRegisterMap renamed to RegisterBankArrayMap. * CorefileRegisterBanksFactory.java: Update. ----------------------------------------------------------------------- Summary of changes: .../frysk/bank/BankArrayRegister.java | 39 ++- .../BankArrayRegisterMap.java} | 41 ++- frysk-core/frysk/bank/BankRegister.java | 103 ++++--- frysk-core/frysk/bank/BankRegisterMap.java | 45 +-- frysk-core/frysk/bank/ChangeLog | 37 +++ ...rMap.java => IndirectBankArrayRegisterMap.java} | 42 ++-- frysk-core/frysk/bank/LinuxIA32RegisterBanks.java | 130 +++++---- frysk-core/frysk/bank/LinuxPPCRegisterBanks.java | 319 ++++++++++---------- frysk-core/frysk/bank/LinuxX8664RegisterBanks.java | 143 +++++----- frysk-core/frysk/bank/PPCBankRegisters.java | 328 ++++++++++---------- frysk-core/frysk/bank/RegisterBank.java | 87 ----- frysk-core/frysk/bank/RegisterBanks.java | 25 +- frysk-core/frysk/bank/RegisterEntry.java | 148 --------- .../{stack/TestRegs.java => bank/RegisterMap.java} | 34 +- frysk-core/frysk/bank/X86BankRegisters.java | 244 ++++++++-------- frysk-core/frysk/proc/ChangeLog | 8 + frysk-core/frysk/proc/LinuxPPC32On64.java | 7 - frysk-core/frysk/proc/Task.java | 6 +- frysk-core/frysk/proc/dead/ChangeLog | 8 + .../proc/dead/CorefileRegisterBanksFactory.java | 6 +- 20 files changed, 837 insertions(+), 963 deletions(-) copy frysk-sys/lib/opcodes/Instruction.java => frysk-core/frysk/bank/BankArrayRegister.java (77%) copy frysk-core/frysk/{stack/TestRegs.java => bank/BankArrayRegisterMap.java} (71%) rename frysk-core/frysk/bank/{IndirectBankRegisterMap.java => IndirectBankArrayRegisterMap.java} (72%) delete mode 100644 frysk-core/frysk/bank/RegisterBank.java delete mode 100644 frysk-core/frysk/bank/RegisterEntry.java copy frysk-core/frysk/{stack/TestRegs.java => bank/RegisterMap.java} (78%) First 500 lines of diff: diff --git a/frysk-sys/lib/opcodes/Instruction.java b/frysk-core/frysk/bank/BankArrayRegister.java similarity index 77% copy from frysk-sys/lib/opcodes/Instruction.java copy to frysk-core/frysk/bank/BankArrayRegister.java index 6d5af94..a720c34 100644 --- a/frysk-sys/lib/opcodes/Instruction.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -37,20 +37,35 @@ // version and license this file solely under the GPL without // exception. -package lib.opcodes; +package frysk.bank; -public class Instruction -{ - public final long address; - public final int length; - public final String instruction; - Instruction(long address, int length, String instruction) - { - this.address = address; - this.length = length; - this.instruction = instruction; +import frysk.isa.Register; + +/** + * Register that is part of a register bank. + */ +public class BankArrayRegister extends BankRegister { + private final int bank; + + BankArrayRegister(int bank, int offset, int length, String name) { + super(offset, length, name); + this.bank = bank; + } + + BankArrayRegister(int bank, int offset, int length, Register register) { + super(offset, length, register); + this.bank = bank; } + public String toString() { - return "0x"+Long.toHexString(address)+"\t"+instruction; + return (super.toString() + + ",bank=" + bank); + } + + /** + * Return the register bank, as an index. + */ + public int getBank() { + return bank; } } diff --git a/frysk-core/frysk/stack/TestRegs.java b/frysk-core/frysk/bank/BankArrayRegisterMap.java similarity index 71% copy from frysk-core/frysk/stack/TestRegs.java copy to frysk-core/frysk/bank/BankArrayRegisterMap.java index d9c1d0c..a3055f7 100644 --- a/frysk-core/frysk/stack/TestRegs.java +++ b/frysk-core/frysk/bank/BankArrayRegisterMap.java @@ -37,32 +37,37 @@ // version and license this file solely under the GPL without // exception. -package frysk.stack; +package frysk.bank; import frysk.isa.Register; -import frysk.testbed.RegsCase; /** - * Check all register values. + * Implement a map from frysk.isa.Register to frysk.proc.BankArrayRegister. + * For compatibility, also implement a name map. */ -public class TestRegs extends RegsCase { - private Frame frame; - public void setUp() { - super.setUp(); - frame = StackFactory.createFrame(task()); - } - public void tearDown() { - frame = null; - super.tearDown(); - } +public class BankArrayRegisterMap extends RegisterMap { - public void access(Register register, int offset, int length, - byte[] bytes, int start, boolean write) { - frame.getRegister(register, offset, length, bytes, start); + BankArrayRegisterMap add(BankArrayRegister register) { + put(register); + return this; } - public long getRegister(Object task, Register register) { - return frame.getRegister(register); + BankArrayRegisterMap add(int bank, int offset, int length, + Register register) { + put(new BankArrayRegister(bank, offset, length, register)); + return this; + } + BankArrayRegisterMap add(int bank, int offset, int length, String name) { + put(new BankArrayRegister(bank, offset, length, name)); + return this; + } + BankArrayRegisterMap add(int bank, int offset, int length, + Register[] registers) { + for (int i = 0; i < registers.length; i++) { + put(new BankArrayRegister(bank, offset, length, registers[i])); + offset += length; + } + return this; } } diff --git a/frysk-core/frysk/bank/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java index 7507a5c..ddf1f96 100644 --- a/frysk-core/frysk/bank/BankRegister.java +++ b/frysk-core/frysk/bank/BankRegister.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2007, Red Hat Inc. +// Copyright 2007, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -39,63 +39,56 @@ package frysk.bank; +import inua.eio.ByteBuffer; import frysk.isa.Register; /** - * Register that is part of a register bank. + * A Register within a ByteBuffer register bank. */ + public class BankRegister { - private final int bank; + private final int offset; private final int length; private final String name; private final Register register; - - private BankRegister(int bank, int offset, int length, - Register register, String name) { - this.bank = bank; + + private BankRegister(int offset, int length, String name, Register register) { this.offset = offset; this.length = length; - this.register = register; this.name = name; + this.register = register; } - /** - * Constructor. The register views defaults to an integer view. - * - * @param bank The number of a bank (ByteBuffer) in the Task - * object's registerBank array - * @param offset byte offset in the bank - * @param name name of the register - */ - BankRegister(int bank, int offset, int length, String name) { - this(bank, offset, length, null, name); + BankRegister(int offset, int length, String name) { + this(offset, length, name, null); + } + + BankRegister(int offset, int length, Register register) { + this(offset, length, register.getName(), register); } - BankRegister(int bank, int offset, int length, Register register) { - this(bank, offset, length, register, register.getName()); + Register getRegister() { + return register; } - + public String toString() { - return (super.toString() - + ",bank=" + bank - + ",offset=" + offset - + ",length=" + length + return (super.toString() + ",offset=" + offset + ",length=" + length + ",name=" + name); } /** * Get the name of the register. - * + * * @return the name */ public String getName() { return name; } - + /** * Get the length of the register in bytes. - * + * * @return the length */ public int getLength() { @@ -103,23 +96,53 @@ public class BankRegister { } /** - * Get the Register. - */ - public Register getRegister() { - return register; - } - - /** * Return the offset into the register bank. */ public int getOffset() { return offset; } - /** - * Return the register bank, as an index. - */ - public int getBank() { - return bank; + public void access(ByteBuffer byteBuffer, long offset, long size, + byte[] bytes, int start, boolean write) { + if (write) + // XXX: Should be directly supported by ByteBuffer. + throw new RuntimeException("write not implemented"); + else + byteBuffer.get(this.offset + offset, bytes, start, (int) size); + } + + long get(ByteBuffer byteBuffer) { + switch (length) { + case 1: + return byteBuffer.getUByte(offset); + case 2: + return byteBuffer.getUShort(offset); + case 4: + return byteBuffer.getUInt(offset); + case 8: + return byteBuffer.getULong(offset); + default: + throw new RuntimeException("unhandled size: " + length); + } } + + void set(ByteBuffer byteBuffer, long value) { + switch (length) { + case 1: + byteBuffer.putUByte(offset, (byte) value); + break; + case 2: + byteBuffer.putUShort(offset, (short) value); + break; + case 4: + byteBuffer.putUInt(offset, (int) value); + break; + case 8: + byteBuffer.putULong(offset, value); + break; + default: + throw new RuntimeException("unhandled size: " + length); + } + } + } diff --git a/frysk-core/frysk/bank/BankRegisterMap.java b/frysk-core/frysk/bank/BankRegisterMap.java index 115ebf7..7380c1d 100644 --- a/frysk-core/frysk/bank/BankRegisterMap.java +++ b/frysk-core/frysk/bank/BankRegisterMap.java @@ -39,45 +39,32 @@ package frysk.bank; +import inua.eio.ByteBuffer; import frysk.isa.Register; -import java.util.LinkedHashMap; /** - * Implement a map from frysk.isa.Register to frysk.proc.BankRegister. - * For compatibility, also implement a name map. + * A mapping from Register to BankRegister (a register within a + * register bank). */ +public class BankRegisterMap extends RegisterMap { -public class BankRegisterMap { - private final LinkedHashMap registerToBankRegister = new LinkedHashMap(); - private final LinkedHashMap nameToBankRegister = new LinkedHashMap(); - - protected BankRegisterMap add(BankRegister br) { - if (br.getRegister() != null) - registerToBankRegister.put(br.getRegister(), br); - nameToBankRegister.put(br.getName(), br); - return this; + public void access(Register register, ByteBuffer bank, long offset, + long size, byte[] bytes, int start, boolean write) { + ((BankRegister)get(register)) + .access(bank, offset, size, bytes, start, write); } - BankRegisterMap add(int bank, int offset, int length, Register register) { - return add(new BankRegister(bank, offset, length, register)); - } - BankRegisterMap add(int bank, int offset, int length, String name) { - return add(new BankRegister(bank, offset, length, name)); - } - BankRegisterMap add(int bank, int offset, int length, - Register[] registers) { - for (int i = 0; i < registers.length; i++) { - add(new BankRegister(bank, offset, length, registers[i])); - offset += length; - } - return this; + BankRegisterMap add(BankRegister register) { + put(register); + return this; } - BankRegister get(Register r) { - return (BankRegister)registerToBankRegister.get(r); + long get(Register register, ByteBuffer bank) { + return ((BankRegister)get(register)).get(bank); } - public BankRegister get(String s) { - return (BankRegister)nameToBankRegister.get(s); + void set(Register register, ByteBuffer bank, long value) { + ((BankRegister)get(register)).set(bank, value); } + } diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index f0f2407..563202e 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,3 +1,40 @@ +2007-12-20 Andrew Cagney + + * RegisterMap.java: New file. + * BankRegisterMap.java: Extend RegisterMap.java. + * BankArrayRegisterMap.java: Ditto. + * BankArrayRegister.java: Extend BankRegister. + * IndirectBankArrayRegisterMap.java: Update. + + * LinuxPPCRegisterBanks.java (USR32): Rename PPC32BE. + (USR64): Rename PPC64BE. + * LinuxX8664RegisterBanks.java (REGS): Rename GENERAL_REGISTERS. + (FPREGS): Rename FLOATING_POINT_REGISTERS. + * LinuxIA32RegisterBanks.java (REGS): Rename GENERAL_REGISTERS. + (FPREGS): New. + (XFPREGS): Rename FLOATING_POINT_REGISTERS. + (USR): Rename DEBUG_REGISTERS. + + * BankRegister.java: Rename RegisterEntry.java. + * BankRegisterMap.java: Rename RegisterBank.java. + * BankArrayRegisterMap.java: Rename RegisterBankArrayMap.java. + * IndirectBankArrayRegisterMap.java: Rename + IndirectRegisterBankArrayMap.java. + * LinuxX8664RegisterBanks.java: Update. + * LinuxPPCRegisterBanks.java: Update. + * LinuxIA32RegisterBanks.java: Update. + * PPCBankRegisters.java: Update. + * RegisterBanks.java: Update. + * X86BankRegisters.java: Update. + + * BankArrayRegister.java: Rename BankRegister.java. + * IndirectRegisterBankArrayMap.java: Rename + IndirectBankregistermap.java. + * RegisterBankArrayMap.java: Rename BankRegistermap.java. + * RegisterBanks.java: Update. + * PPCBankRegisters.java: Update. + * X86BankRegisters.java: Update. + 2007-12-19 Andrew Cagney * LinuxIA32RegisterBanks.java: New, from X86BankRegisters.java. diff --git a/frysk-core/frysk/bank/IndirectBankRegisterMap.java b/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java similarity index 72% rename from frysk-core/frysk/bank/IndirectBankRegisterMap.java rename to frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java index af6bbaa..966cc78 100644 --- a/frysk-core/frysk/bank/IndirectBankRegisterMap.java +++ b/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java @@ -47,19 +47,19 @@ import frysk.isa.Register; * projection onto an underlying 64-bit register bank. */ -class IndirectBankRegisterMap extends BankRegisterMap { +class IndirectBankArrayRegisterMap extends BankArrayRegisterMap { private final ByteOrder order; - private final BankRegisterMap map32; - private final BankRegisterMap map64; + private final BankArrayRegisterMap map32; + private final BankArrayRegisterMap map64; - IndirectBankRegisterMap(ByteOrder order, BankRegisterMap map32, - BankRegisterMap map64) { + IndirectBankArrayRegisterMap(ByteOrder order, BankArrayRegisterMap map32, + BankArrayRegisterMap map64) { this.order = order; this.map32 = map32; this.map64 = map64; } - private int offset(BankRegister reg32, BankRegister reg64) { + private int offset(BankArrayRegister reg32, BankArrayRegister reg64) { if (order == ByteOrder.BIG_ENDIAN) { // least significant bytes on RHS return (reg64.getOffset() + reg64.getLength() @@ -70,49 +70,49 @@ class IndirectBankRegisterMap extends BankRegisterMap { } } - IndirectBankRegisterMap add(Register reg32, int bank, int offset, - int size) { - add(new BankRegister(bank, offset, size, reg32.getName())); + IndirectBankArrayRegisterMap add(Register reg32, int bank, int offset, + int size) { + put(new BankArrayRegister(bank, offset, size, reg32.getName())); return this; } - private IndirectBankRegisterMap add(BankRegister reg32, - BankRegister reg64) { + private IndirectBankArrayRegisterMap add(BankArrayRegister reg32, + BankArrayRegister reg64) { return add(reg32.getRegister(), reg64.getBank(), offset(reg32, reg64), reg32.getLength()); } - IndirectBankRegisterMap add(Register reg32, Register reg64) { - BankRegister map32reg = map32.get(reg32); + IndirectBankArrayRegisterMap add(Register reg32, Register reg64) { + BankArrayRegister map32reg = (BankArrayRegister)map32.get(reg32); if (reg32 == null) throw new RuntimeException("unknown 32-bit register: " + reg32); - BankRegister map64reg = map64.get(reg64); + BankArrayRegister map64reg = (BankArrayRegister)map64.get(reg64); if (map64reg == null) throw new RuntimeException("unknown 64-bit register: " + reg64); return add(map32reg, map64reg); } - IndirectBankRegisterMap add(Register reg32) { - BankRegister map32reg = map32.get(reg32); + IndirectBankArrayRegisterMap add(Register reg32) { + BankArrayRegister map32reg = (BankArrayRegister)map32.get(reg32); if (reg32 == null) throw new RuntimeException("unknown 32-bit register: " + reg32); - BankRegister map64reg = map64.get(reg32.getName()); + BankArrayRegister map64reg = (BankArrayRegister)map64.get(reg32.getName()); if (map64reg == null) throw new RuntimeException("unknown 64-bit register: " + reg32); return add(map32reg, map64reg); } - IndirectBankRegisterMap add(String map32Name, String map64Name) { - BankRegister reg32 = map32.get(map32Name); + IndirectBankArrayRegisterMap add(String map32Name, String map64Name) { + BankArrayRegister reg32 = (BankArrayRegister)map32.get(map32Name); if (reg32 == null) throw new RuntimeException("unknown register: " + map32Name); - BankRegister reg64 = map64.get(map64Name); + BankArrayRegister reg64 = (BankArrayRegister)map64.get(map64Name); if (reg64 == null) throw new RuntimeException("unknown register: " + map64Name); return add(reg32, reg64); } - IndirectBankRegisterMap add(String name) { + IndirectBankArrayRegisterMap add(String name) { return add(name, name); } } diff --git a/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java b/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java index 4a3e1f4..b6ff6bb 100644 --- a/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java +++ b/frysk-core/frysk/bank/LinuxIA32RegisterBanks.java @@ -44,65 +44,87 @@ import frysk.isa.X87Registers; public class LinuxIA32RegisterBanks { - public static final RegisterBank GENERAL_REGISTERS = new RegisterBank() - .add(new RegisterEntry(24, 4,IA32Registers.EAX)) - .add(new RegisterEntry(0, 4, IA32Registers.EBX)) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 20 18:21:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 20 Dec 2007 18:21:00 -0000 Subject: [SCM] master: Almost eliminate getRegisterBuffersFIXME(). Message-ID: <20071220182140.29158.qmail@sourceware.org> The branch, master has been updated via 79fb19acf507102afc8d2bd18cc09da463f96c23 (commit) via 6941f68718c93d2d309421f6550c44a0a619388d (commit) from 92674d4e204276b5cba183da814aa57fa71d4423 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 79fb19acf507102afc8d2bd18cc09da463f96c23 Author: Andrew Cagney Date: Thu Dec 20 13:17:26 2007 -0500 Almost eliminate getRegisterBuffersFIXME(). frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * RegisterBanks.java (getBanksFIXME()): New. frysk-core/frysk/proc/ChangeLog 2007-12-20 Andrew Cagney * Task.java (sendrecRegisterBuffersFIXME()): Delete. (registerBuffers): Delete. (getRegisterBuffersFIXME()): Update. frysk-core/frysk/proc/dead/ChangeLog 2007-12-20 Andrew Cagney * LinuxTask.java (sendrecRegisterBuffersFIXME()): Delete. * LinuxExeTask.java (sendrecRegisterBuffersFIXME()): Delete. (sendrecRegisterBanks()): Update. frysk-core/frysk/proc/dummy/ChangeLog 2007-12-20 Andrew Cagney * Task.java (sendrecRegisterBuffersFIXME()): Delete. frysk-core/frysk/proc/live/ChangeLog 2007-12-20 Andrew Cagney * LinuxTask.java (sendrecRegisterBuffersFIXME()): Delete. commit 6941f68718c93d2d309421f6550c44a0a619388d Author: Andrew Cagney Date: Thu Dec 20 13:01:02 2007 -0500 Delete unused getBigIntegerRegisterFIXME(String). frysk-core/frysk/proc/ChangeLog 2007-12-20 Andrew Cagney * Task.java (getBigIntegerRegisterFIXME(String)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/ChangeLog | 2 + frysk-core/frysk/bank/RegisterBanks.java | 4 ++ frysk-core/frysk/proc/ChangeLog | 6 +++ frysk-core/frysk/proc/Task.java | 49 +++++--------------------- frysk-core/frysk/proc/dead/ChangeLog | 4 ++ frysk-core/frysk/proc/dead/LinuxExeTask.java | 18 +-------- frysk-core/frysk/proc/dead/LinuxTask.java | 7 ---- frysk-core/frysk/proc/dummy/ChangeLog | 4 ++ frysk-core/frysk/proc/dummy/Task.java | 4 -- frysk-core/frysk/proc/live/ChangeLog | 4 ++ frysk-core/frysk/proc/live/LinuxTask.java | 8 ---- 11 files changed, 35 insertions(+), 75 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index 563202e..a9d6c8f 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,7 @@ 2007-12-20 Andrew Cagney + * RegisterBanks.java (getBanksFIXME()): New. + * RegisterMap.java: New file. * BankRegisterMap.java: Extend RegisterMap.java. * BankArrayRegisterMap.java: Ditto. diff --git a/frysk-core/frysk/bank/RegisterBanks.java b/frysk-core/frysk/bank/RegisterBanks.java index 61e80e6..f23e61c 100644 --- a/frysk-core/frysk/bank/RegisterBanks.java +++ b/frysk-core/frysk/bank/RegisterBanks.java @@ -112,4 +112,8 @@ public class RegisterBanks { bank.get(offset + bankRegister.getOffset(), bytes, start, (int)size); } + + public ByteBuffer[] getBanksFIXME() { + return banks; + } } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 30067a8..7ef1b3a 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,11 @@ 2007-12-20 Andrew Cagney + * Task.java (sendrecRegisterBuffersFIXME()): Delete. + (registerBuffers): Delete. + (getRegisterBuffersFIXME()): Update. + + * Task.java (getBigIntegerRegisterFIXME(String)): Delete. + * LinuxPPC32On64.java (getRegisterByName()): Delete. BankRegister renamed to BankArrayRegister. diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index 4043997..f22b1b0 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -51,10 +51,7 @@ import java.util.Observer; import java.util.Observable; import frysk.isa.Register; import frysk.isa.ISA; -import java.math.BigInteger; -import inua.eio.ByteOrder; import frysk.bank.RegisterBanks; -import frysk.bank.BankArrayRegister; public abstract class Task { @@ -1024,27 +1021,6 @@ public abstract class Task public LinkedList pendingObservations = new LinkedList(); /** - * Return the underlying bank register's value as a BigInteger. - * This is being used to read large register but for that there - * the more efficient access(Register) available for that. - */ - public BigInteger getBigIntegerRegisterFIXME(String name) { - BankArrayRegister bankRegister = getRegisterBanks().getBankArrayRegister(name); - byte[] bytes = new byte[bankRegister.getLength()]; - ByteBuffer b = getRegisterBuffersFIXME()[bankRegister.getBank()]; - b.get(bankRegister.getOffset(), bytes, 0, bankRegister.getLength()); - if (getISA().order() == ByteOrder.LITTLE_ENDIAN) { - for (int left = 0; left < bytes.length / 2; left++) { - int right = bytes.length - 1 - left; - byte temp = bytes[left]; - bytes[left] = bytes[right]; - bytes[right] = temp; - } - } - return new BigInteger(bytes); - } - - /** * Return the Task's Register as a long. */ public long getRegister(Register register) { @@ -1074,21 +1050,15 @@ public abstract class Task return registerBanks; } - private ByteBuffer[] registerBuffers; - protected abstract ByteBuffer[] sendrecRegisterBuffersFIXME(); - /** - * Return the machine's register banks as an array. - * - * XXX: This is being replaced by "getRegisterBanks()" that returns - * a class that abstracts the ByteArray[] + BankArrayRegister - * combination. - */ - public ByteBuffer[] getRegisterBuffersFIXME () - { - if (registerBuffers == null) - registerBuffers = sendrecRegisterBuffersFIXME(); - return registerBuffers; - } + /** + * Return the machine's register banks as an array of ByteBuffers. + * + * XXX: This is wrong. Clients cannot assume internal register + * layout. + */ + public ByteBuffer[] getRegisterBuffersFIXME () { + return getRegisterBanks().getBanksFIXME(); + } /** * The process has transitioned to the detached. @@ -1132,7 +1102,6 @@ public abstract class Task public void clearIsa() { isa = null; memory = null; - registerBuffers = null; registerBanks = null; currentISA = null; } diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 79ea65b..3761395 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,5 +1,9 @@ 2007-12-20 Andrew Cagney + * LinuxTask.java (sendrecRegisterBuffersFIXME()): Delete. + * LinuxExeTask.java (sendrecRegisterBuffersFIXME()): Delete. + (sendrecRegisterBanks()): Update. + * CorefileRegisterBanksFactory.java: Update; RegisterBankArrayMap renamed to BankArrayRegisterMap. diff --git a/frysk-core/frysk/proc/dead/LinuxExeTask.java b/frysk-core/frysk/proc/dead/LinuxExeTask.java index 9b3f6de..03842e9 100644 --- a/frysk-core/frysk/proc/dead/LinuxExeTask.java +++ b/frysk-core/frysk/proc/dead/LinuxExeTask.java @@ -55,14 +55,10 @@ public class LinuxExeTask extends DeadTask LinuxExeProc proc = null; TaskId id = null; - // Holds all the register values, setup once in the constructor. - private final ByteBuffer[] bankBuffers; - protected LinuxExeTask(LinuxExeProc proc, TaskId id, TaskState state) { super(proc, id, state); this.proc = proc; this.id = id; - this.bankBuffers = sendrecRegisterBuffersFIXME(); // Fake PC. XXX should be done in Proc instead of creating Elf // object in the Task itself. @@ -99,26 +95,16 @@ public class LinuxExeTask extends DeadTask return this.proc.sendrecMemory(); } - /** - * sendrecRegisterBuffers fakes out what the register values are at this point - * as there is no info to be had at this moment in time. - */ - protected ByteBuffer[] sendrecRegisterBuffersFIXME() { + protected RegisterBanks sendrecRegisterBanks() { ByteBuffer[] bankBuffers = new ByteBuffer[4]; - - // Create an empty page + // Create an empty page byte[] emptyBuffer = new byte[4096]; for (int i = 0; i < emptyBuffer.length; i++) emptyBuffer[i] = 0; - bankBuffers[0] = new ArrayByteBuffer(emptyBuffer); bankBuffers[1] = new ArrayByteBuffer(emptyBuffer); bankBuffers[2] = new ArrayByteBuffer(emptyBuffer); bankBuffers[3] = new ArrayByteBuffer(emptyBuffer); - return bankBuffers; - } - - protected RegisterBanks sendrecRegisterBanks() { return CorefileRegisterBanksFactory.create (getISA(), bankBuffers); } diff --git a/frysk-core/frysk/proc/dead/LinuxTask.java b/frysk-core/frysk/proc/dead/LinuxTask.java index a514cb3..66660a6 100644 --- a/frysk-core/frysk/proc/dead/LinuxTask.java +++ b/frysk-core/frysk/proc/dead/LinuxTask.java @@ -125,13 +125,6 @@ public class LinuxTask extends DeadTask { } - protected ByteBuffer[] sendrecRegisterBuffersFIXME() { - // XXX: Have to return this here as this method is still used in - // tests. Cannot convert tests until Task,getRegisterBanks() is - // made public. - return simulateRegisterBanks(); - } - /** * Create a new unattached Task. */ diff --git a/frysk-core/frysk/proc/dummy/ChangeLog b/frysk-core/frysk/proc/dummy/ChangeLog index 35349ad..3dd971b 100644 --- a/frysk-core/frysk/proc/dummy/ChangeLog +++ b/frysk-core/frysk/proc/dummy/ChangeLog @@ -1,3 +1,7 @@ +2007-12-20 Andrew Cagney + + * Task.java (sendrecRegisterBuffersFIXME()): Delete. + 2007-10-17 Andrew Cagney * Host.java: Update; import frysk.proc.FindProc. diff --git a/frysk-core/frysk/proc/dummy/Task.java b/frysk-core/frysk/proc/dummy/Task.java index 5737179..7937ba4 100644 --- a/frysk-core/frysk/proc/dummy/Task.java +++ b/frysk-core/frysk/proc/dummy/Task.java @@ -68,10 +68,6 @@ public class Task { return null; } - protected ByteBuffer[] sendrecRegisterBuffersFIXME () - { - return null; - } protected RegisterBanks sendrecRegisterBanks() { return null; diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index a4abbc4..f65c884 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-12-20 Andrew Cagney + + * LinuxTask.java (sendrecRegisterBuffersFIXME()): Delete. + 2007-12-19 Andrew Cagney Bank register code moved to frysk.bank. diff --git a/frysk-core/frysk/proc/live/LinuxTask.java b/frysk-core/frysk/proc/live/LinuxTask.java index 665b9ac..92b147a 100644 --- a/frysk-core/frysk/proc/live/LinuxTask.java +++ b/frysk-core/frysk/proc/live/LinuxTask.java @@ -115,14 +115,6 @@ public class LinuxTask extends LiveTask { return memory; } - /** - * Return the ISA's register-bank byte-buffers. - */ - protected ByteBuffer[] sendrecRegisterBuffersFIXME () - { - return getIsa().getRegisterBankBuffers(getTid()); - } - protected RegisterBanks sendrecRegisterBanks() { return PtraceRegisterBanksFactory.create(getISA(), getTid()); } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 20 18:41:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 20 Dec 2007 18:41:00 -0000 Subject: [SCM] master: Use BankRegister's get/set/access methods. Message-ID: <20071220184113.4224.qmail@sourceware.org> The branch, master has been updated via 5f345af74c688d16da9c1edd8c79b6786ddba380 (commit) from 79fb19acf507102afc8d2bd18cc09da463f96c23 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 5f345af74c688d16da9c1edd8c79b6786ddba380 Author: Andrew Cagney Date: Thu Dec 20 13:38:31 2007 -0500 Use BankRegister's get/set/access methods. frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * BankRegister.java (getLength()): Make package private. (getOffset()): Make package private. (access)): Make package private. * BankArrayRegister.java (set(ByteBuffer[],long)): New. (access(ByteBuffer[],long,long,byte[],int,boolean)): New. (get(ByteBuffer[])): New. (getBank()): Make package private. * RegisterBanks.java: Use. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/BankArrayRegister.java | 16 +++++++++++- frysk-core/frysk/bank/BankRegister.java | 6 ++-- frysk-core/frysk/bank/ChangeLog | 9 +++++++ frysk-core/frysk/bank/RegisterBanks.java | 33 +++---------------------- 4 files changed, 31 insertions(+), 33 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java index a720c34..9063239 100644 --- a/frysk-core/frysk/bank/BankArrayRegister.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -39,6 +39,7 @@ package frysk.bank; +import inua.eio.ByteBuffer; import frysk.isa.Register; /** @@ -65,7 +66,20 @@ public class BankArrayRegister extends BankRegister { /** * Return the register bank, as an index. */ - public int getBank() { + int getBank() { return bank; } + + long get(ByteBuffer[] banks) { + return get(banks[bank]); + } + + void set(ByteBuffer[] banks, long value) { + set(banks[bank], value); + } + + void access(ByteBuffer[] banks, long offset, long size, byte[] bytes, + int start, boolean write) { + access(banks[bank], offset, size, bytes, start, write); + } } diff --git a/frysk-core/frysk/bank/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java index ddf1f96..bc522b5 100644 --- a/frysk-core/frysk/bank/BankRegister.java +++ b/frysk-core/frysk/bank/BankRegister.java @@ -91,18 +91,18 @@ public class BankRegister { * * @return the length */ - public int getLength() { + int getLength() { return length; } /** * Return the offset into the register bank. */ - public int getOffset() { + int getOffset() { return offset; } - public void access(ByteBuffer byteBuffer, long offset, long size, + void access(ByteBuffer byteBuffer, long offset, long size, byte[] bytes, int start, boolean write) { if (write) // XXX: Should be directly supported by ByteBuffer. diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index a9d6c8f..a579545 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,14 @@ 2007-12-20 Andrew Cagney + * BankRegister.java (getLength()): Make package private. + (getOffset()): Make package private. + (access)): Make package private. + * BankArrayRegister.java (set(ByteBuffer[],long)): New. + (access(ByteBuffer[],long,long,byte[],int,boolean)): New. + (get(ByteBuffer[])): New. + (getBank()): Make package private. + * RegisterBanks.java: Use. + * RegisterBanks.java (getBanksFIXME()): New. * RegisterMap.java: New file. diff --git a/frysk-core/frysk/bank/RegisterBanks.java b/frysk-core/frysk/bank/RegisterBanks.java index f23e61c..37685e7 100644 --- a/frysk-core/frysk/bank/RegisterBanks.java +++ b/frysk-core/frysk/bank/RegisterBanks.java @@ -75,42 +75,17 @@ public class RegisterBanks { } public long get(Register register) { - BankArrayRegister bankRegister = findBankArrayRegister(register); - ByteBuffer bank = banks[bankRegister.getBank()]; - switch (bankRegister.getLength()) { - case 1: return bank.getUByte(bankRegister.getOffset()); - case 2: return bank.getUShort(bankRegister.getOffset()); - case 4: return bank.getUInt(bankRegister.getOffset()); - case 8: return bank.getULong(bankRegister.getOffset()); - default: - throw new RuntimeException("unhandled register size: " - + bankRegister.getLength()); - } + return findBankArrayRegister(register).get(banks); } public void set(Register register, long value) { - BankArrayRegister bankRegister = findBankArrayRegister(register); - ByteBuffer bank = banks[bankRegister.getBank()]; - switch (bankRegister.getLength()) { - case 1: bank.putUByte(bankRegister.getOffset(), (byte)value); break; - case 2: bank.putUShort(bankRegister.getOffset(), (short)value); break; - case 4: bank.putUInt(bankRegister.getOffset(), (int)value); break; - case 8: bank.putULong(bankRegister.getOffset(), value); break; - default: - throw new RuntimeException("unhandled register size: " - + bankRegister.getLength()); - } + findBankArrayRegister(register).set(banks, value); } public void access(Register register, long offset, long size, byte[] bytes, int start, boolean write) { - BankArrayRegister bankRegister = findBankArrayRegister(register); - ByteBuffer bank = banks[bankRegister.getBank()]; - if (write) - throw new RuntimeException("Not implemented"); - else - bank.get(offset + bankRegister.getOffset(), bytes, - start, (int)size); + findBankArrayRegister(register) + .access(banks, offset, size, bytes, start, write); } public ByteBuffer[] getBanksFIXME() { hooks/post-receive -- frysk system monitor/debugger From pmachata@sourceware.org Fri Dec 21 13:01:00 2007 From: pmachata@sourceware.org (pmachata@sourceware.org) Date: Fri, 21 Dec 2007 13:01:00 -0000 Subject: [SCM] master: New ltrace test testRecursive. Message-ID: <20071221130136.23379.qmail@sourceware.org> The branch, master has been updated via f9ead2a82c1c952359e78ac9b381250a70ebd97c (commit) via 4da0a3084a95a97800ac27133f342a82f582fca9 (commit) via 66db8e191dce8a8108603f7cf5b77416a1322f38 (commit) via b55639cdbe386d1f621e96f37b5c23448bb8293b (commit) via 608c705c74c91801b90212134442c9fe5d413235 (commit) via 5a99f3ef410d7d024cf4d465dcb9d005a2362fff (commit) via cc8f368113a4ce80ec0d2c2c964592a34cea3d93 (commit) via 3521fe061ae8830f26ddd500146a4642f48c97f4 (commit) via 735aa4afa7e7532ebd7c4c8313412abf8c1874f0 (commit) via e900c2b7839a8b8661759ddf43e4faaf43b38c14 (commit) from 5f345af74c688d16da9c1edd8c79b6786ddba380 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f9ead2a82c1c952359e78ac9b381250a70ebd97c Author: Petr Machata Date: Fri Dec 21 13:45:14 2007 +0100 New ltrace test testRecursive. commit 4da0a3084a95a97800ac27133f342a82f582fca9 Author: Petr Machata Date: Thu Dec 20 17:53:16 2007 +0100 New ltrace test testMultipleControlers. * This one caused all the rewrites in last few days. Yaaay! commit 66db8e191dce8a8108603f7cf5b77416a1322f38 Author: Petr Machata Date: Thu Dec 20 17:35:44 2007 +0100 Ltrace testMultipleObservers turned on commit b55639cdbe386d1f621e96f37b5c23448bb8293b Author: Petr Machata Date: Thu Dec 20 16:44:36 2007 +0100 Ltrace testTracingAlias turned on commit 608c705c74c91801b90212134442c9fe5d413235 Author: Petr Machata Date: Thu Dec 20 16:20:26 2007 +0100 Ltrace testArgumentsCorrect1 turned on * Also some refactoring took place to reduce boilerplate code. commit 5a99f3ef410d7d024cf4d465dcb9d005a2362fff Author: Petr Machata Date: Thu Dec 20 15:46:12 2007 +0100 Ltrace testCallRecorded turned on commit cc8f368113a4ce80ec0d2c2c964592a34cea3d93 Author: Petr Machata Date: Thu Dec 20 14:28:14 2007 +0100 MappingGuard tests moved to their own file * ... and turned on. The rest of ltrace suite still off. commit 3521fe061ae8830f26ddd500146a4642f48c97f4 Author: Petr Machata Date: Thu Dec 20 05:14:41 2007 +0100 Ltrace a step closer to true observer. * Ltrace was refactored to allow being used by independent clients. In particular: ** No more shared Controller necessary. Ltrace doesn't know about controller, and is now able to observe particular TracePoints. ** Ltrace doesn't observe mapping, controller does (if there is any). ** Mapping events moved over from FunctionObserver to MappingObserver. MappingGuard now calculates detailed mapping changes as needed. ** It's in semi-broken state, and testsuite was turned off. Will work on that tomorrow. commit 735aa4afa7e7532ebd7c4c8313412abf8c1874f0 Author: Petr Machata Date: Tue Dec 18 18:09:05 2007 +0100 ftrace displays terminating task info commit e900c2b7839a8b8661759ddf43e4faaf43b38c14 Author: Petr Machata Date: Thu Dec 13 14:59:21 2007 +0100 New function observer test. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 5 + frysk-core/frysk/bindir/ftrace.java | 14 +- frysk-core/frysk/ftrace/ChangeLog | 65 +++ frysk-core/frysk/ftrace/Ftrace.java | 503 +++++++++++++------ frysk-core/frysk/ftrace/FunctionObserver.java | 8 - frysk-core/frysk/ftrace/Ltrace.java | 662 +++++++++---------------- frysk-core/frysk/ftrace/LtraceController.java | 53 -- frysk-core/frysk/ftrace/MappingGuard.java | 128 +++++- frysk-core/frysk/ftrace/MappingObserver.java | 29 +- frysk-core/frysk/ftrace/TestLtrace.java | 498 ++++++++++++------- frysk-core/frysk/ftrace/TestMappingGuard.java | 138 +++++ frysk-core/frysk/pkglibdir/ChangeLog | 5 + frysk-core/frysk/pkglibdir/funit-calls.c | 9 + 13 files changed, 1273 insertions(+), 844 deletions(-) delete mode 100644 frysk-core/frysk/ftrace/LtraceController.java create mode 100644 frysk-core/frysk/ftrace/TestMappingGuard.java First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index f01a5c8..1bbe15f 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -2,6 +2,11 @@ * TestFauxv.java (fauxv): Delete System.out. +2007-12-20 Petr Machata + + * ftrace.java (MyLtraceController): renamed to MyFtraceController. + Using Ftrace.Driver instead of Ltrace.Driver consistently. + 2007-12-19 cagney * fhpd.java: Explicitly import frysk.sys.FileDescriptor. diff --git a/frysk-core/frysk/bindir/ftrace.java b/frysk-core/frysk/bindir/ftrace.java index 55e8524..9dde5c7 100644 --- a/frysk-core/frysk/bindir/ftrace.java +++ b/frysk-core/frysk/bindir/ftrace.java @@ -59,8 +59,6 @@ import frysk.proc.Task; import frysk.util.CommandlineParser; import frysk.ftrace.Ftrace; -import frysk.ftrace.Ltrace; -import frysk.ftrace.LtraceController; import frysk.ftrace.ObjectFile; import frysk.ftrace.TracePoint; import frysk.ftrace.TracePointOrigin; @@ -103,8 +101,8 @@ class WorkingSetRule } } -class MyLtraceController - implements LtraceController, +class MyFtraceController + implements Ftrace.Controller, Ftrace.StackTracedSymbolsProvider { protected static final Logger logger = Logger.getLogger("frysk"); @@ -121,7 +119,7 @@ class MyLtraceController return symbolsStackTraceSet.contains(symbol); } - public MyLtraceController() { } + public MyFtraceController() { } public void gotPltRules(List rules) { logger.log(Level.FINER, "Got " + rules.size() + " PLT rules."); @@ -189,7 +187,7 @@ class MyLtraceController return objffn.equals(interpfn); } - public void applyTracingRules(final Task task, final ObjectFile objf, final Ltrace.Driver driver, + public void applyTracingRules(final Task task, final ObjectFile objf, final Ftrace.Driver driver, final List rules, final TracePointOrigin origin) throws lib.dwfl.ElfException { @@ -276,7 +274,7 @@ class MyLtraceController symbolsStackTraceSet.add(((TracePoint)it.next()).symbol); } - public void fileMapped(final Task task, final ObjectFile objf, final Ltrace.Driver driver) { + public void fileMapped(final Task task, final ObjectFile objf, final Ftrace.Driver driver) { try { applyTracingRules(task, objf, driver, pltRules, TracePointOrigin.PLT); applyTracingRules(task, objf, driver, dynRules, TracePointOrigin.DYNAMIC); @@ -307,7 +305,7 @@ class ftrace final List pltRules = new ArrayList(); final List dynRules = new ArrayList(); final List symRules = new ArrayList(); - final MyLtraceController controller = new MyLtraceController(); + final MyFtraceController controller = new MyFtraceController(); boolean allowInterpTracing = false; Ftrace tracer = new Ftrace(); diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index 7e53eef..c28dc52 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,68 @@ +2007-12-21 Petr Machata + + * TestLtrace.java (testRecursive): New test. + +2007-12-20 Petr Machata + + * TestLtrace.java: Refactoring. + (testArgumentsCorrect1): Turned the test on. + (testTracingAlias): Dtto. + (testMultipleObservers): Dtto. + (testMultipleControlers): New test. + +2007-12-20 Petr Machata + + * Ftrace.java: Commentary changes & reorganizations. + * TestMappingGuard: Dtto. + * TestLtrace.java (testCallRecorded): Turned on the test. + +2007-12-20 Petr Machata + + * TestMappingGuard: New file. + (testDebugStateMappingGuard): New test, moved from TestLtrace. + (testSyscallMappingGuard): Dtto. + +2007-12-20 Petr Machata + + * MappingGuard.java: Now provides more fine-grained events. + (updateMappedPart): New method, brought over from Ltrace. + (updateUnmappedPart): Dtto. + (updateMappedFile): Dtto. + (updateUnmappedFile): Dtto. + (updateMapping): Dtto. + (DebugStateMappingGuard): Now implements terminating observer. + * MappingObserver.java: Added more fine-grained events. + * Ltrace.java: Doesn't use mapping guard at all. Rewritten to + allow adding several observers to single tracepoint, without a + need to share one controller. Ltrace doesn't know about the + controller anymore. + (Driver): Interface moved to Ftrace. + (requestAddFunctionObserver): Now provides observing per tracepoint. + (requestDeleteMappingObserver): Dtto. + * FunctionObserver.java: Doesn't provide mapping events anymore. + * Ftrace.java: Reindent. + Using terminated observer instead of terminating, which didn't + fire with fatal signals. + Uses mapping guard to direct Ltrace tracing. + (Driver, Controller): New interfaces, brought over from Ltrace and + LtraceController. Using new interfaces where appropriate. + (functionObserver): New member variable. + (TracePointWorkingSet): New class, mostly brought over from Ltrace. + (MyMappingObserver): Dtto. + * TestLtrace.java: Temporarily shut down. + +2007-12-18 Petr Machata + + * Ftrace.java: Use terminating observer to inform about the task + termination events. + (MyTerminatingObserver): New class. + +2007-12-13 Petr Machata + + * TestLtrace.java: Reindented. + (MyController4): Moved from testTracingAlias to class scope. + (testMultipleObservers): New test. + 2007-12-12 Petr Machata * Ftrace.java (handleTask): Add cloned observer to task. diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java index e21663b..5a5d7c5 100644 --- a/frysk-core/frysk/ftrace/Ftrace.java +++ b/frysk-core/frysk/ftrace/Ftrace.java @@ -50,23 +50,27 @@ import frysk.proc.ProcTasksObserver; import frysk.proc.Task; import frysk.proc.TaskObserver; -import inua.util.PrintWriter; +import frysk.sys.Signal; +import inua.util.PrintWriter; import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Observable; import java.util.Observer; +import java.util.Set; import java.util.Iterator; - -import java.io.File; +import java.util.logging.*; public class Ftrace { + static final Logger logger = Logger.getLogger(FtraceLogger.LOGGER_ID); + // Where to send output. Reporter reporter; - // True if we're tracing children as well. - boolean traceChildren = false; + // True if we're tracing children as well. + boolean traceChildren = false; // True if we're tracing syscalls. boolean traceSyscalls = true; @@ -74,20 +78,52 @@ public class Ftrace // True if we're tracing mmaps/unmaps. boolean traceMmapUnmap = false; - // Non-null if we're using ltrace. - LtraceController ltraceController = null; - StackTracedSymbolsProvider stackTraceSetProvider = null; + HashSet syscallStackTraceSet = null; - HashSet syscallStackTraceSet = null; + // Set of ProcId objects we trace; if traceChildren is set, we also + // look for their children. + HashSet tracedParents = new HashSet(); - // Set of ProcId objects we trace; if traceChildren is set, we also - // look for their children. - HashSet tracedParents = new HashSet(); + HashMap syscallCache = new HashMap(); - HashMap syscallCache = new HashMap(); + // The number of processes we're tracing. + int numProcesses; - // The number of processes we're tracing. - int numProcesses; + /** + * Controller has to be implemented externally. Each time a + * mapping changes, it is called for consulation and has a chance + * to change working set of Ftrace via provided Driver interface. + */ + public static interface Controller { + /** + * New library FILE was mapped in task TASK. Use DRIVER to tell + * ltrace what to do. + */ + void fileMapped(frysk.proc.Task task, ObjectFile file, Driver driver); + } + + /** + * External entity implementing this interface is called out each + * time an entry point is hit. It can decide whether the stack + * trace should be generated or not. + * XXX: Ideally, this would also operate on tracepoints. + */ + public static interface StackTracedSymbolsProvider { + boolean shouldStackTraceOn(Symbol symbol); + } + + /** + * Driver implementation is placed here in Ftrace, and handed over + * via this interface to allow external controller to aid which + * tracepoints should be traced. + */ + public static interface Driver { + void tracePoint(Task task, TracePoint tp); + } + + // Non-null if we're using ltrace. + Controller ftraceController = null; + StackTracedSymbolsProvider stackTraceSetProvider = null; public void setTraceChildren () { @@ -104,91 +140,88 @@ public class Ftrace traceMmapUnmap = true; } - public void setTraceFunctions (LtraceController functionController, + public void setTraceFunctions (Controller ftraceController, StackTracedSymbolsProvider stackTraceSetProvider) { - if (functionController == null + if (ftraceController == null || stackTraceSetProvider == null) - throw new AssertionError("functonController != null && stackTraceSetProvider != null"); + throw new AssertionError("ftraceController != null && stackTraceSetProvider != null"); - if (this.ltraceController == null + if (this.ftraceController == null && this.stackTraceSetProvider == null) { - this.ltraceController = functionController; + this.ftraceController = ftraceController; this.stackTraceSetProvider = stackTraceSetProvider; } else - throw new AssertionError("LtraceController already assigned."); + throw new AssertionError("FtraceController already assigned."); + } + + public void addTracePid (ProcId id) { + tracedParents.add(id); } - public void addTracePid (ProcId id) - { - tracedParents.add(id); - } + public void setSyscallStackTracing (HashSet syscallSet) { + syscallStackTraceSet = syscallSet; + } - public void setSyscallStackTracing (HashSet syscallSet) - { - syscallStackTraceSet = syscallSet; - } + public void setWriter (PrintWriter writer) { + this.reporter = new Reporter(writer); + } - public void setWriter (PrintWriter writer) + private void init () { - this.reporter = new Reporter(writer); + if (reporter == null) + reporter = new Reporter(new PrintWriter(System.out)); + + functionObserver = new MyFunctionObserver(reporter, stackTraceSetProvider); + + // this observer should only be used to pick up a proc if we + // are tracing a process given a pid + // otherwise use forkobserver. + Manager.host.observableProcAddedXXX.addObserver(new Observer() + { + public void update (Observable observable, Object arg) + { + Proc proc = (Proc) arg; + ProcId id = proc.getId(); + if (tracedParents.contains(id)){ + // In case we're tracing a new child, add it. + //tracedParents.add(proc.getId()); XXX: why is this needed ? + // Weird API... unfortunately we can't fetch the + // Proc's main task here, as it will be null. Instead + // we have to request it and handle it in a callback. + addProc(proc); + } + } + }); } - private void init () - { - if (reporter == null) - reporter = new Reporter(new PrintWriter(System.out)); + private void addProc (Proc proc) { + new ProcTasksObserver(proc, tasksObserver); + } - // this observer should only be used to pick up a proc if we - // are tracing a process given a pid - // otherwise use forkobserver. - Manager.host.observableProcAddedXXX.addObserver(new Observer() - { - public void update (Observable observable, Object arg) - { - Proc proc = (Proc) arg; - ProcId id = proc.getId(); - if (tracedParents.contains(id)){ - // In case we're tracing a new child, add it. -// tracedParents.add(proc.getId()); XXX: why is this needed ? - // Weird API... unfortunately we can't fetch the - // Proc's main task here, as it will be null. Instead - // we have to request it and handle it in a callback. - addProc(proc); - } - } - }); - } - - private void addProc(Proc proc){ - new ProcTasksObserver(proc, tasksObserver); - } - - public void trace (String[] command) - { - init(); - Manager.host.requestCreateAttachedProc(command, attachedObserver); - Manager.eventLoop.run(); - } - - public void trace () - { - init(); - for (Iterator it = tracedParents.iterator(); it.hasNext(); ){ - Manager.host.requestFindProc - ((ProcId)it.next(), - new FindProc() { - public void procFound (ProcId procId) {} - public void procNotFound (ProcId procId, Exception e) { - System.err.println("No process with ID " + procId.intValue() + " found."); - Manager.eventLoop.requestStop(); - } - } - ); - Manager.eventLoop.run(); + public void trace (String[] command) { + init(); + Manager.host.requestCreateAttachedProc(command, attachedObserver); + Manager.eventLoop.run(); + } + + public void trace () { + init(); + for (Iterator it = tracedParents.iterator(); it.hasNext(); ){ + Manager.host.requestFindProc + ((ProcId)it.next(), + new FindProc() { + public void procFound (ProcId procId) {} + public void procNotFound (ProcId procId, Exception e) { + System.err.println("No process with ID " + procId.intValue() + " found."); + Manager.eventLoop.requestStop(); + } + } + ); + Manager.eventLoop.run(); + } } - } private HashMap observationCounters = new HashMap(); @@ -229,18 +262,80 @@ public class Ftrace task.requestAddClonedObserver(clonedObserver); observationRequested(task); - if (ltraceController != null) { - MyFunctionObserver functionObserver - = new MyFunctionObserver(reporter, stackTraceSetProvider); - Ltrace.requestAddFunctionObserver(task, functionObserver, ltraceController); - observationRequested(task); - } + task.requestAddTerminatedObserver(new MyTerminatedObserver()); + observationRequested(task); + + MappingGuard.requestAddMappingObserver(task, new MyMappingObserver(ftraceController)); + observationRequested(task); Manager.host.observableProcRemovedXXX.addObserver(new ProcRemovedObserver(proc)); reporter.eventSingle(task, "attached " + proc.getExe()); ++numProcesses; } + /** Remembers working set preferences for each task. + Map<Task, Map<File, TracePointWorkingSet>> */ + private final HashMap driversForTask = new HashMap(); + + private class TracePointWorkingSet + implements Driver + { + private Set tracePoints = new HashSet(); + + public void tracePoint(Task task, TracePoint tp) + { + logger.log(Level.CONFIG, "Request for tracing `{0}'", tp.symbol.name); + tracePoints.add(tp); + } + + public void populateBreakpoints(Task task, MemoryMapping mapping, MemoryMapping.Part part) + { + Set request = new HashSet(); + for (Iterator it = tracePoints.iterator(); it.hasNext(); ) { + TracePoint tp = (TracePoint)it.next(); + if (tp.offset >= part.offset + && tp.offset < part.offset + part.addressHigh - part.addressLow) { + logger.log(Level.FINER, + "Will trace `" + tp.symbol.name + "', " + + "address=0x" + Long.toHexString(tp.address) + "; " + + "offset=0x" + Long.toHexString(tp.offset) + "; " + + "part at=0x" + Long.toHexString(part.addressLow) + + ".." + Long.toHexString(part.addressHigh) + "; " + + "part off=0x" + Long.toHexString(part.offset) + ";"); + + long actualAddress = tp.offset - part.offset + part.addressLow; + logger.log(Level.CONFIG, + "Will trace `" + tp.symbol.name + + "' at 0x" + Long.toHexString(actualAddress)); + + request.add(tp); + } + } + if (!request.isEmpty()) + Ltrace.requestAddFunctionObserver(task, functionObserver, request); + } + + public void evacuateBreakpoints(Task task, MemoryMapping mapping, MemoryMapping.Part part) + { + Set request = new HashSet(); + for (Iterator it = tracePoints.iterator(); it.hasNext(); ) { + TracePoint tp = (TracePoint)it.next(); + if (tp.offset >= part.offset + && tp.offset < part.offset + part.addressHigh - part.addressLow) { + + long actualAddress = tp.offset - part.offset + part.addressLow; + logger.log(Level.CONFIG, + "Stopping tracing of `" + tp.symbol.name + + "' at 0x" + Long.toHexString(actualAddress)); + + request.add(tp); + } + } + if (!request.isEmpty()) + Ltrace.requestDeleteFunctionObserver(task, functionObserver, request); + } + } + ProcObserver.ProcTasks tasksObserver = new ProcObserver.ProcTasks() { public void existingTask (Task task) @@ -270,69 +365,61 @@ public class Ftrace public void deletedFrom (Object observable) {} }; - /** - * An observer to stop the eventloop when the traced process exits. - */ hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 13:22:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 13:22:00 -0000 Subject: [SCM] master: frysk-core/frysk/bank/ChangeLog Message-ID: <20071221132212.5356.qmail@sourceware.org> The branch, master has been updated via daf03965f195c26f14cf88dfc6652a799c25539c (commit) from f9ead2a82c1c952359e78ac9b381250a70ebd97c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit daf03965f195c26f14cf88dfc6652a799c25539c Author: Andrew Cagney Date: Fri Dec 21 08:21:26 2007 -0500 frysk-core/frysk/bank/ChangeLog 2007-12-20 Andrew Cagney * RegisterMap.java (entryIterator()): New. * BankArrayRegister.java (BankArrayRegister(int,BankRegister)): New. * BankArrayRegisterMap.java (add(int,BankRegisterMap)): New. * X86BankRegisters.java (IA32): Use. * RegisterMap.java (registerIterator()): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/BankArrayRegister.java | 6 +++ frysk-core/frysk/bank/BankArrayRegisterMap.java | 9 ++++ frysk-core/frysk/bank/ChangeLog | 7 +++ frysk-core/frysk/bank/RegisterMap.java | 15 ++++++ frysk-core/frysk/bank/X86BankRegisters.java | 56 ++--------------------- 5 files changed, 41 insertions(+), 52 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java index 9063239..b68725b 100644 --- a/frysk-core/frysk/bank/BankArrayRegister.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -58,6 +58,12 @@ public class BankArrayRegister extends BankRegister { this.bank = bank; } + BankArrayRegister(int bank, BankRegister bankRegister) { + super(bankRegister.getOffset(), bankRegister.getLength(), + bankRegister.getRegister()); + this.bank = bank; + } + public String toString() { return (super.toString() + ",bank=" + bank); diff --git a/frysk-core/frysk/bank/BankArrayRegisterMap.java b/frysk-core/frysk/bank/BankArrayRegisterMap.java index a3055f7..92e3a9d 100644 --- a/frysk-core/frysk/bank/BankArrayRegisterMap.java +++ b/frysk-core/frysk/bank/BankArrayRegisterMap.java @@ -40,6 +40,7 @@ package frysk.bank; import frysk.isa.Register; +import java.util.Iterator; /** * Implement a map from frysk.isa.Register to frysk.proc.BankArrayRegister. @@ -48,6 +49,14 @@ import frysk.isa.Register; public class BankArrayRegisterMap extends RegisterMap { + BankArrayRegisterMap add(int bank, BankRegisterMap bankMap) { + for (Iterator i = bankMap.entryIterator(); i.hasNext(); ) { + BankRegister bankRegister = (BankRegister) i.next(); + put(new BankArrayRegister(bank, bankRegister)); + } + return this; + } + BankArrayRegisterMap add(BankArrayRegister register) { put(register); return this; diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index a579545..f130420 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,12 @@ 2007-12-20 Andrew Cagney + * RegisterMap.java (entryIterator()): New. + * BankArrayRegister.java (BankArrayRegister(int,BankRegister)): New. + * BankArrayRegisterMap.java (add(int,BankRegisterMap)): New. + * X86BankRegisters.java (IA32): Use. + + * RegisterMap.java (registerIterator()): New. + * BankRegister.java (getLength()): Make package private. (getOffset()): Make package private. (access)): Make package private. diff --git a/frysk-core/frysk/bank/RegisterMap.java b/frysk-core/frysk/bank/RegisterMap.java index edb1f87..df2c2d5 100644 --- a/frysk-core/frysk/bank/RegisterMap.java +++ b/frysk-core/frysk/bank/RegisterMap.java @@ -41,6 +41,7 @@ package frysk.bank; import java.util.LinkedHashMap; import frysk.isa.Register; +import java.util.Iterator; /** * A mapping from a Register to BankRegister (a register within a @@ -51,6 +52,20 @@ class RegisterMap { private final LinkedHashMap registerToEntry = new LinkedHashMap(); private final LinkedHashMap nameToEntry = new LinkedHashMap(); + /** + * Return an iterator over all BankRegisters in the map. + */ + Iterator entryIterator() { + return registerToEntry.values().iterator(); + } + + /** + * Return an iterator over all Registers in the map. + */ + public Iterator registerIterator() { + return registerToEntry.keySet().iterator(); + } + void put(BankRegister br) { Register register = br.getRegister(); if (register != null) diff --git a/frysk-core/frysk/bank/X86BankRegisters.java b/frysk-core/frysk/bank/X86BankRegisters.java index 0439133..bff78b9 100644 --- a/frysk-core/frysk/bank/X86BankRegisters.java +++ b/frysk-core/frysk/bank/X86BankRegisters.java @@ -51,59 +51,11 @@ import frysk.isa.X87Registers; public class X86BankRegisters { public static final BankArrayRegisterMap IA32 = new BankArrayRegisterMap() - .add(new BankArrayRegister (0, 24, 4,IA32Registers.EAX)) - .add(new BankArrayRegister (0, 0, 4, IA32Registers.EBX)) - .add(new BankArrayRegister (0, 4, 4, IA32Registers.ECX)) - .add(new BankArrayRegister (0, 8, 4, IA32Registers.EDX)) - .add(new BankArrayRegister (0, 12, 4, IA32Registers.ESI)) - .add(new BankArrayRegister (0, 16, 4, IA32Registers.EDI)) - .add(new BankArrayRegister (0, 20, 4, IA32Registers.EBP)) - .add(new BankArrayRegister (0, 52, 4, IA32Registers.CS)) - .add(new BankArrayRegister (0, 28, 4, IA32Registers.DS)) - .add(new BankArrayRegister (0, 32, 4, IA32Registers.ES)) - .add(new BankArrayRegister (0, 36, 4, IA32Registers.FS)) - .add(new BankArrayRegister (0, 40, 4, IA32Registers.GS)) - .add(new BankArrayRegister (0, 64, 4, IA32Registers.SS)) - .add(new BankArrayRegister (0, 44, 4, IA32Registers.ORIG_EAX)) - .add(new BankArrayRegister (0, 48, 4, IA32Registers.EIP)) - .add(new BankArrayRegister (0, 56, 4, IA32Registers.EFLAGS)) - .add(new BankArrayRegister (0, 60, 4, IA32Registers.ESP)) + .add(0, LinuxIA32RegisterBanks.REGS) // Get all FP registers from FXSAVE area. - .add(new BankArrayRegister(2, 0x00, 2, X87Registers.FCW)) - .add(new BankArrayRegister(2, 0x02, 2, X87Registers.FSW)) - .add(new BankArrayRegister(2, 0x04, 1, X87Registers.FTW)) - .add(new BankArrayRegister(2, 0x06, 2, X87Registers.FOP)) - .add(new BankArrayRegister(2, 0x08, 4, X87Registers.EIP)) - .add(new BankArrayRegister(2, 0x0c, 2, X87Registers.CS)) - .add(new BankArrayRegister(2, 0x10, 4, X87Registers.DP)) - .add(new BankArrayRegister(2, 0x14, 2, X87Registers.DS)) - .add(new BankArrayRegister(2, 0x18, 2, X87Registers.MXCSR)) - .add(new BankArrayRegister(2, 0x1c, 2, X87Registers.MXCSR_MASK)) - .add(new BankArrayRegister(2, 0x20, 10, X87Registers.ST0)) - .add(new BankArrayRegister(2, 0x30, 10, X87Registers.ST1)) - .add(new BankArrayRegister(2, 0x40, 10, X87Registers.ST2)) - .add(new BankArrayRegister(2, 0x50, 10, X87Registers.ST3)) - .add(new BankArrayRegister(2, 0x60, 10, X87Registers.ST4)) - .add(new BankArrayRegister(2, 0x70, 10, X87Registers.ST5)) - .add(new BankArrayRegister(2, 0x80, 10, X87Registers.ST6)) - .add(new BankArrayRegister(2, 0x90, 10, X87Registers.ST7)) - .add(new BankArrayRegister(2, 0xa0, 16, X87Registers.XMM0)) - .add(new BankArrayRegister(2, 0xb0, 16, X87Registers.XMM1)) - .add(new BankArrayRegister(2, 0xc0, 16, X87Registers.XMM2)) - .add(new BankArrayRegister(2, 0xd0, 16, X87Registers.XMM3)) - .add(new BankArrayRegister(2, 0xe0, 16, X87Registers.XMM4)) - .add(new BankArrayRegister(2, 0xf0, 16, X87Registers.XMM5)) - .add(new BankArrayRegister(2, 0x100, 16, X87Registers.XMM6)) - .add(new BankArrayRegister(2, 0x110, 16, X87Registers.XMM7)) - // debug registers - .add(new BankArrayRegister (3, 252, 4, IA32Registers.D0)) - .add(new BankArrayRegister (3, 256, 4, IA32Registers.D1)) - .add(new BankArrayRegister (3, 260, 4, IA32Registers.D2)) - .add(new BankArrayRegister (3, 264, 4, IA32Registers.D3)) - .add(new BankArrayRegister (3, 268, 4, IA32Registers.D4)) - .add(new BankArrayRegister (3, 272, 4, IA32Registers.D5)) - .add(new BankArrayRegister (3, 276, 4, IA32Registers.D6)) - .add(new BankArrayRegister (3, 280, 4, IA32Registers.D7)) + .add(2, LinuxIA32RegisterBanks.XFPREGS) + // debug registers come from USR section + .add(3, LinuxIA32RegisterBanks.USR) ; public static final BankArrayRegisterMap X8664 = new BankArrayRegisterMap() hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 16:40:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 16:40:00 -0000 Subject: [SCM] master: Build PPC BankArray using PPC Bank. Message-ID: <20071221164038.2303.qmail@sourceware.org> The branch, master has been updated via c989b53c7cede6b8cb168c8b9e89bd250534813a (commit) via 33d7399acfbabed68befbfa04a86f2db07db5f53 (commit) from daf03965f195c26f14cf88dfc6652a799c25539c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c989b53c7cede6b8cb168c8b9e89bd250534813a Author: Andrew Cagney Date: Fri Dec 21 11:40:22 2007 -0500 Build PPC BankArray using PPC Bank. frysk-core/frysk/bank/ChangeLog 2007-12-21 Andrew Cagney * PPCBankRegisters.java (PPC32BE, PPC64BE): Construct using LinuxPPCRegisterBanks. commit 33d7399acfbabed68befbfa04a86f2db07db5f53 Author: Andrew Cagney Date: Fri Dec 21 11:34:58 2007 -0500 Build X86-64 BankArray description from corresponding banks. frysk-core/frysk/bank/ChangeLog 2007-12-21 Andrew Cagney * BankRegister.java (BankRegister(int,int,String,Register)): Make package-private. * BankArrayRegister.java (BankArrayRegister(int,BankRegister)): Use super(int,int,int,String,Register). * X86BankRegisters.java (X8664): Construct using LinuxX8664RegisterBanks. * LinuxX8664RegisterBanks.java (USR): Rename DEBUG_REGISTERS. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/BankArrayRegister.java | 2 +- frysk-core/frysk/bank/BankRegister.java | 2 +- frysk-core/frysk/bank/ChangeLog | 13 ++ frysk-core/frysk/bank/LinuxX8664RegisterBanks.java | 2 +- frysk-core/frysk/bank/PPCBankRegisters.java | 167 +------------------- frysk-core/frysk/bank/RegisterMap.java | 4 +- frysk-core/frysk/bank/X86BankRegisters.java | 70 +-------- 7 files changed, 25 insertions(+), 235 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java index b68725b..0e9c3fa 100644 --- a/frysk-core/frysk/bank/BankArrayRegister.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -60,7 +60,7 @@ public class BankArrayRegister extends BankRegister { BankArrayRegister(int bank, BankRegister bankRegister) { super(bankRegister.getOffset(), bankRegister.getLength(), - bankRegister.getRegister()); + bankRegister.getName(), bankRegister.getRegister()); this.bank = bank; } diff --git a/frysk-core/frysk/bank/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java index bc522b5..76ab565 100644 --- a/frysk-core/frysk/bank/BankRegister.java +++ b/frysk-core/frysk/bank/BankRegister.java @@ -53,7 +53,7 @@ public class BankRegister { private final String name; private final Register register; - private BankRegister(int offset, int length, String name, Register register) { + BankRegister(int offset, int length, String name, Register register) { this.offset = offset; this.length = length; this.name = name; diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index f130420..23ec6f7 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,3 +1,16 @@ +2007-12-21 Andrew Cagney + + * PPCBankRegisters.java (PPC32BE, PPC64BE): Construct using + LinuxPPCRegisterBanks. + + * BankRegister.java (BankRegister(int,int,String,Register)): Make + package-private. + * BankArrayRegister.java (BankArrayRegister(int,BankRegister)): + Use super(int,int,int,String,Register). + * X86BankRegisters.java (X8664): Construct using + LinuxX8664RegisterBanks. + * LinuxX8664RegisterBanks.java (USR): Rename DEBUG_REGISTERS. + 2007-12-20 Andrew Cagney * RegisterMap.java (entryIterator()): New. diff --git a/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java index 169939f..e2d583a 100644 --- a/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java +++ b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java @@ -112,7 +112,7 @@ public class LinuxX8664RegisterBanks { .add(new BankRegister(0x190, 16, X87Registers.XMM15)) ; - public static final BankRegisterMap DEBUG_REGISTERS + public static final BankRegisterMap USR = new BankRegisterMap() .add(new BankRegister(848, 8, X8664Registers.DR0)) .add(new BankRegister(856, 8, X8664Registers.DR1)) diff --git a/frysk-core/frysk/bank/PPCBankRegisters.java b/frysk-core/frysk/bank/PPCBankRegisters.java index d7b7fcb..5b0dec6 100644 --- a/frysk-core/frysk/bank/PPCBankRegisters.java +++ b/frysk-core/frysk/bank/PPCBankRegisters.java @@ -45,179 +45,18 @@ package frysk.bank; import inua.eio.ByteOrder; import frysk.isa.PPC32Registers; -import frysk.isa.PPC64Registers; public class PPCBankRegisters { public static final BankArrayRegisterMap PPC32BE = new BankArrayRegisterMap() - .add(new BankArrayRegister(0, 0, 4, PPC32Registers.GPR0)) - .add(new BankArrayRegister(0, 4, 4, PPC32Registers.GPR1)) - .add(new BankArrayRegister(0, 8, 4, PPC32Registers.GPR2)) - .add(new BankArrayRegister(0, 12, 4, PPC32Registers.GPR3)) - .add(new BankArrayRegister(0, 16, 4, PPC32Registers.GPR4)) - .add(new BankArrayRegister(0, 20, 4, PPC32Registers.GPR5)) - .add(new BankArrayRegister(0, 24, 4, PPC32Registers.GPR6)) - .add(new BankArrayRegister(0, 28, 4, PPC32Registers.GPR7)) - .add(new BankArrayRegister(0, 32, 4, PPC32Registers.GPR8)) - .add(new BankArrayRegister(0, 36, 4, PPC32Registers.GPR9)) - .add(new BankArrayRegister(0, 40, 4, PPC32Registers.GPR10)) - .add(new BankArrayRegister(0, 44, 4, PPC32Registers.GPR11)) - .add(new BankArrayRegister(0, 48, 4, PPC32Registers.GPR12)) - .add(new BankArrayRegister(0, 52, 4, PPC32Registers.GPR13)) - .add(new BankArrayRegister(0, 56, 4, PPC32Registers.GPR14)) - .add(new BankArrayRegister(0, 60, 4, PPC32Registers.GPR15)) - .add(new BankArrayRegister(0, 64, 4, PPC32Registers.GPR16)) - .add(new BankArrayRegister(0, 68, 4, PPC32Registers.GPR17)) - .add(new BankArrayRegister(0, 72, 4, PPC32Registers.GPR18)) - .add(new BankArrayRegister(0, 76, 4, PPC32Registers.GPR19)) - .add(new BankArrayRegister(0, 80, 4, PPC32Registers.GPR20)) - .add(new BankArrayRegister(0, 84, 4, PPC32Registers.GPR21)) - .add(new BankArrayRegister(0, 88, 4, PPC32Registers.GPR22)) - .add(new BankArrayRegister(0, 92, 4, PPC32Registers.GPR23)) - .add(new BankArrayRegister(0, 96, 4, PPC32Registers.GPR24)) - .add(new BankArrayRegister(0, 100, 4, PPC32Registers.GPR25)) - .add(new BankArrayRegister(0, 104, 4, PPC32Registers.GPR26)) - .add(new BankArrayRegister(0, 108, 4, PPC32Registers.GPR27)) - .add(new BankArrayRegister(0, 112, 4, PPC32Registers.GPR28)) - .add(new BankArrayRegister(0, 116, 4, PPC32Registers.GPR29)) - .add(new BankArrayRegister(0, 120, 4, PPC32Registers.GPR30)) - .add(new BankArrayRegister(0, 124, 4, PPC32Registers.GPR31)) - .add(new BankArrayRegister(0, 128, 4, PPC32Registers.NIP)) //Fixme: PC I belive - .add(new BankArrayRegister(0, 132, 4, PPC32Registers.MSR)) - .add(new BankArrayRegister(0, 136, 4, PPC32Registers.ORIGR3)) - .add(new BankArrayRegister(0, 140, 4, PPC32Registers.CTR)) - .add(new BankArrayRegister(0, 144, 4, PPC32Registers.LR)) - .add(new BankArrayRegister(0, 148, 4, PPC32Registers.XER)) - .add(new BankArrayRegister(0, 152, 4, PPC32Registers.CCR)) - .add(new BankArrayRegister(0, 156, 4, PPC32Registers.MQ)) - .add(new BankArrayRegister(0, 160, 4, PPC32Registers.TRAP)) - .add(new BankArrayRegister(0, 164, 4, PPC32Registers.DAR)) - .add(new BankArrayRegister(0, 168, 4, PPC32Registers.DSISR)) - .add(new BankArrayRegister(0, 172, 4, PPC32Registers.RESULT)) - .add(new BankArrayRegister(0, 192, 8, PPC32Registers.FPR0)) // 48*4 - .add(new BankArrayRegister(0, 200, 8, PPC32Registers.FPR1)) - .add(new BankArrayRegister(0, 208, 8, PPC32Registers.FPR2)) - .add(new BankArrayRegister(0, 216, 8, PPC32Registers.FPR3)) - .add(new BankArrayRegister(0, 224, 8, PPC32Registers.FPR4)) - .add(new BankArrayRegister(0, 232, 8, PPC32Registers.FPR5)) - .add(new BankArrayRegister(0, 240, 8, PPC32Registers.FPR6)) - .add(new BankArrayRegister(0, 248, 8, PPC32Registers.FPR7)) - .add(new BankArrayRegister(0, 256, 8, PPC32Registers.FPR8)) - .add(new BankArrayRegister(0, 264, 8, PPC32Registers.FPR9)) - .add(new BankArrayRegister(0, 272, 8, PPC32Registers.FPR10)) - .add(new BankArrayRegister(0, 280, 8, PPC32Registers.FPR11)) - .add(new BankArrayRegister(0, 288, 8, PPC32Registers.FPR12)) - .add(new BankArrayRegister(0, 296, 8, PPC32Registers.FPR13)) - .add(new BankArrayRegister(0, 304, 8, PPC32Registers.FPR14)) - .add(new BankArrayRegister(0, 312, 8, PPC32Registers.FPR15)) - .add(new BankArrayRegister(0, 320, 8, PPC32Registers.FPR16)) - .add(new BankArrayRegister(0, 328, 8, PPC32Registers.FPR17)) - .add(new BankArrayRegister(0, 336, 8, PPC32Registers.FPR18)) - .add(new BankArrayRegister(0, 344, 8, PPC32Registers.FPR19)) - .add(new BankArrayRegister(0, 352, 8, PPC32Registers.FPR20)) - .add(new BankArrayRegister(0, 360, 8, PPC32Registers.FPR21)) - .add(new BankArrayRegister(0, 368, 8, PPC32Registers.FPR22)) - .add(new BankArrayRegister(0, 376, 8, PPC32Registers.FPR23)) - .add(new BankArrayRegister(0, 384, 8, PPC32Registers.FPR24)) - .add(new BankArrayRegister(0, 392, 8, PPC32Registers.FPR25)) - .add(new BankArrayRegister(0, 400, 8, PPC32Registers.FPR26)) - .add(new BankArrayRegister(0, 408, 8, PPC32Registers.FPR27)) - .add(new BankArrayRegister(0, 416, 8, PPC32Registers.FPR28)) - .add(new BankArrayRegister(0, 424, 8, PPC32Registers.FPR29)) - .add(new BankArrayRegister(0, 432, 8, PPC32Registers.FPR30)) - .add(new BankArrayRegister(0, 440, 8, PPC32Registers.FPR31)) - //There is a pad of 4 bytes before the FPSCR reg - .add(new BankArrayRegister(0, 452, 4, PPC32Registers.FPSCR)) //(PT_FPR0 + 2*32 + 1) + .add(0, LinuxPPCRegisterBanks.USR32) ; public static final BankArrayRegisterMap PPC64BE = new BankArrayRegisterMap() - .add(new BankArrayRegister(0, 0, 8, PPC64Registers.GPR0)) - .add(new BankArrayRegister(0, 8, 8, PPC64Registers.GPR1)) - .add(new BankArrayRegister(0, 16, 8, PPC64Registers.GPR2)) - .add(new BankArrayRegister(0, 24, 8, PPC64Registers.GPR3)) - .add(new BankArrayRegister(0, 32, 8, PPC64Registers.GPR4)) - .add(new BankArrayRegister(0, 40, 8, PPC64Registers.GPR5)) - .add(new BankArrayRegister(0, 48, 8, PPC64Registers.GPR6)) - .add(new BankArrayRegister(0, 56, 8, PPC64Registers.GPR7)) - .add(new BankArrayRegister(0, 64, 8, PPC64Registers.GPR8)) - .add(new BankArrayRegister(0, 72, 8, PPC64Registers.GPR9)) - .add(new BankArrayRegister(0, 80, 8, PPC64Registers.GPR10)) - .add(new BankArrayRegister(0, 88, 8, PPC64Registers.GPR11)) - .add(new BankArrayRegister(0, 96, 8, PPC64Registers.GPR12)) - .add(new BankArrayRegister(0, 104, 8, PPC64Registers.GPR13)) - .add(new BankArrayRegister(0, 112, 8, PPC64Registers.GPR14)) - .add(new BankArrayRegister(0, 120, 8, PPC64Registers.GPR15)) - .add(new BankArrayRegister(0, 128, 8, PPC64Registers.GPR16)) - .add(new BankArrayRegister(0, 136, 8, PPC64Registers.GPR17)) - .add(new BankArrayRegister(0, 144, 8, PPC64Registers.GPR18)) - .add(new BankArrayRegister(0, 152, 8, PPC64Registers.GPR19)) - .add(new BankArrayRegister(0, 160, 8, PPC64Registers.GPR20)) - .add(new BankArrayRegister(0, 168, 8, PPC64Registers.GPR21)) - .add(new BankArrayRegister(0, 176, 8, PPC64Registers.GPR22)) - .add(new BankArrayRegister(0, 184, 8, PPC64Registers.GPR23)) - .add(new BankArrayRegister(0, 192, 8, PPC64Registers.GPR24)) - .add(new BankArrayRegister(0, 200, 8, PPC64Registers.GPR25)) - .add(new BankArrayRegister(0, 208, 8, PPC64Registers.GPR26)) - .add(new BankArrayRegister(0, 216, 8, PPC64Registers.GPR27)) - .add(new BankArrayRegister(0, 224, 8, PPC64Registers.GPR28)) - .add(new BankArrayRegister(0, 232, 8, PPC64Registers.GPR29)) - .add(new BankArrayRegister(0, 240, 8, PPC64Registers.GPR30)) - .add(new BankArrayRegister(0, 248, 8, PPC64Registers.GPR31)) - .add(new BankArrayRegister(0, 256, 8, PPC64Registers.NIP)) - .add(new BankArrayRegister(0, 264, 8, PPC64Registers.MSR)) //in gdb: .ps_offset = 264 - .add(new BankArrayRegister(0, 272, 8, PPC64Registers.ORIGR3)) - .add(new BankArrayRegister(0, 280, 8, PPC64Registers.CTR)) - .add(new BankArrayRegister(0, 288, 8, PPC64Registers.LR)) - .add(new BankArrayRegister(0, 296, 8, PPC64Registers.XER)) - .add(new BankArrayRegister(0, 304, 8, PPC64Registers.CCR)) - .add(new BankArrayRegister(0, 312, 8, PPC64Registers.SOFTE)) - .add(new BankArrayRegister(0, 320, 8, PPC64Registers.TRAP)) - .add(new BankArrayRegister(0, 328, 8, PPC64Registers.DAR)) - .add(new BankArrayRegister(0, 336, 8, PPC64Registers.DSISR)) - .add(new BankArrayRegister(0, 344, 8, PPC64Registers.RESULT)) - .add(new BankArrayRegister(0, 384, 8, PPC64Registers.FPR0)) //PT_FPR0 48 - .add(new BankArrayRegister(0, 392, 8, PPC64Registers.FPR1)) - .add(new BankArrayRegister(0, 400, 8, PPC64Registers.FPR2)) - .add(new BankArrayRegister(0, 408, 8, PPC64Registers.FPR3)) - .add(new BankArrayRegister(0, 416, 8, PPC64Registers.FPR4)) - .add(new BankArrayRegister(0, 424, 8, PPC64Registers.FPR5)) - .add(new BankArrayRegister(0, 432, 8, PPC64Registers.FPR6)) - .add(new BankArrayRegister(0, 440, 8, PPC64Registers.FPR7)) - .add(new BankArrayRegister(0, 448, 8, PPC64Registers.FPR8)) - .add(new BankArrayRegister(0, 456, 8, PPC64Registers.FPR9)) - .add(new BankArrayRegister(0, 464, 8, PPC64Registers.FPR10)) - .add(new BankArrayRegister(0, 472, 8, PPC64Registers.FPR11)) - .add(new BankArrayRegister(0, 480, 8, PPC64Registers.FPR12)) - .add(new BankArrayRegister(0, 488, 8, PPC64Registers.FPR13)) - .add(new BankArrayRegister(0, 496, 8, PPC64Registers.FPR14)) - .add(new BankArrayRegister(0, 504, 8, PPC64Registers.FPR15)) - .add(new BankArrayRegister(0, 512, 8, PPC64Registers.FPR16)) - .add(new BankArrayRegister(0, 520, 8, PPC64Registers.FPR17)) - .add(new BankArrayRegister(0, 528, 8, PPC64Registers.FPR18)) - .add(new BankArrayRegister(0, 536, 8, PPC64Registers.FPR19)) - .add(new BankArrayRegister(0, 544, 8, PPC64Registers.FPR20)) - .add(new BankArrayRegister(0, 552, 8, PPC64Registers.FPR21)) - .add(new BankArrayRegister(0, 560, 8, PPC64Registers.FPR22)) - .add(new BankArrayRegister(0, 568, 8, PPC64Registers.FPR23)) - .add(new BankArrayRegister(0, 576, 8, PPC64Registers.FPR24)) - .add(new BankArrayRegister(0, 584, 8, PPC64Registers.FPR25)) - .add(new BankArrayRegister(0, 592, 8, PPC64Registers.FPR26)) - .add(new BankArrayRegister(0, 600, 8, PPC64Registers.FPR27)) - .add(new BankArrayRegister(0, 608, 8, PPC64Registers.FPR28)) - .add(new BankArrayRegister(0, 616, 8, PPC64Registers.FPR29)) - .add(new BankArrayRegister(0, 624, 8, PPC64Registers.FPR30)) - .add(new BankArrayRegister(0, 632, 8, PPC64Registers.FPR31)) - .add(new BankArrayRegister(0, 640, 4, PPC64Registers.FPSCR)) - // Fixme: need to implement altivec registers - // Vector Registers are 128 bit wide - //.add(new BankArrayRegister(0, 656, 16, PPC64Registers.VR0)) PT_VR0 82 - //... - //.add(new BankArrayRegister(0, 1152, 16, PPC64Registers.V31)) PT_VR0 + 31*2), index 148 - //Need to put a 8 bytes pad here, because VSCR is 8 byte wide only - .add(new BankArrayRegister(0, 1176, 8, PPC64Registers.VSCR)) // PT_VSCR (PT_VR0 + 32*2 + 1), index 147 - .add(new BankArrayRegister(0, 1184, 8, PPC64Registers.VRSAVE)); // PT_VRSAVE (PT_VR0 + 33*2), index 148 + .add(0, LinuxPPCRegisterBanks.USR64) + ; public static final BankArrayRegisterMap PPC32BE_ON_PPC64BE = new IndirectBankArrayRegisterMap(ByteOrder.BIG_ENDIAN, diff --git a/frysk-core/frysk/bank/RegisterMap.java b/frysk-core/frysk/bank/RegisterMap.java index df2c2d5..6776fe3 100644 --- a/frysk-core/frysk/bank/RegisterMap.java +++ b/frysk-core/frysk/bank/RegisterMap.java @@ -56,7 +56,9 @@ class RegisterMap { * Return an iterator over all BankRegisters in the map. */ Iterator entryIterator() { - return registerToEntry.values().iterator(); + // XXX: Uses nameToEntry as that contains more registers than + // registerToEntry. + return nameToEntry.values().iterator(); } /** diff --git a/frysk-core/frysk/bank/X86BankRegisters.java b/frysk-core/frysk/bank/X86BankRegisters.java index bff78b9..6ad6d4a 100644 --- a/frysk-core/frysk/bank/X86BankRegisters.java +++ b/frysk-core/frysk/bank/X86BankRegisters.java @@ -59,75 +59,11 @@ public class X86BankRegisters { ; public static final BankArrayRegisterMap X8664 = new BankArrayRegisterMap() - .add(new BankArrayRegister(0, 80, 8, X8664Registers.RAX)) - .add(new BankArrayRegister(0, 40, 8, X8664Registers.RBX)) - .add(new BankArrayRegister(0, 88, 8, X8664Registers.RCX)) - .add(new BankArrayRegister(0, 96, 8, X8664Registers.RDX)) - .add(new BankArrayRegister(0, 104, 8, X8664Registers.RSI)) - .add(new BankArrayRegister(0, 112, 8, X8664Registers.RDI)) - .add(new BankArrayRegister(0, 32, 8, X8664Registers.RBP)) - .add(new BankArrayRegister(0, 152, 8, X8664Registers.RSP)) - .add(new BankArrayRegister(0, 72, 8, X8664Registers.R8)) - .add(new BankArrayRegister(0, 64, 8, X8664Registers.R9)) - .add(new BankArrayRegister(0, 56, 8, X8664Registers.R10)) - .add(new BankArrayRegister(0, 48, 8, X8664Registers.R11)) - .add(new BankArrayRegister(0, 24, 8, X8664Registers.R12)) - .add(new BankArrayRegister(0, 16, 8, X8664Registers.R13)) - .add(new BankArrayRegister(0, 8, 8, X8664Registers.R14)) - .add(new BankArrayRegister(0, 0, 8, X8664Registers.R15)) - .add(new BankArrayRegister(0, 128, 8, X8664Registers.RIP)) - .add(new BankArrayRegister(0, 144, 8, X8664Registers.RFLAGS)) - .add(new BankArrayRegister(0, 136, 8, "cs")) - .add(new BankArrayRegister(0, 160, 8, "ss")) - .add(new BankArrayRegister(0, 184, 8, "ds")) - .add(new BankArrayRegister(0, 192, 8, "es")) - .add(new BankArrayRegister(0, 200, 8, "fs")) - .add(new BankArrayRegister(0, 208, 8, "gs")) - .add(new BankArrayRegister(0, 120, 8, X8664Registers.ORIG_RAX)) - .add(new BankArrayRegister(0, 168, 8, X8664Registers.FS_BASE)) - .add(new BankArrayRegister(0, 176, 8, X8664Registers.GS_BASE)) + .add(0, LinuxX8664RegisterBanks.REGS) // Format determined by FXSAVE instruction - .add(new BankArrayRegister(1, 0x00, 2, X87Registers.FCW)) - .add(new BankArrayRegister(1, 0x02, 2, X87Registers.FSW)) - .add(new BankArrayRegister(1, 0x04, 1, X87Registers.FTW)) - .add(new BankArrayRegister(1, 0x06, 2, X87Registers.FOP)) - .add(new BankArrayRegister(1, 0x08, 4, X87Registers.RIP)) - .add(new BankArrayRegister(1, 0x10, 4, X87Registers.RDP)) - .add(new BankArrayRegister(1, 0x18, 2, X87Registers.MXCSR)) - .add(new BankArrayRegister(1, 0x1c, 2, X87Registers.MXCSR_MASK)) - .add(new BankArrayRegister(1, 0x20, 10, X87Registers.ST0)) - .add(new BankArrayRegister(1, 0x30, 10, X87Registers.ST1)) - .add(new BankArrayRegister(1, 0x40, 10, X87Registers.ST2)) - .add(new BankArrayRegister(1, 0x50, 10, X87Registers.ST3)) - .add(new BankArrayRegister(1, 0x60, 10, X87Registers.ST4)) - .add(new BankArrayRegister(1, 0x70, 10, X87Registers.ST5)) - .add(new BankArrayRegister(1, 0x80, 10, X87Registers.ST6)) - .add(new BankArrayRegister(1, 0x90, 10, X87Registers.ST7)) - .add(new BankArrayRegister(1, 0xa0, 16, X87Registers.XMM0)) - .add(new BankArrayRegister(1, 0xb0, 16, X87Registers.XMM1)) - .add(new BankArrayRegister(1, 0xc0, 16, X87Registers.XMM2)) - .add(new BankArrayRegister(1, 0xd0, 16, X87Registers.XMM3)) - .add(new BankArrayRegister(1, 0xe0, 16, X87Registers.XMM4)) - .add(new BankArrayRegister(1, 0xf0, 16, X87Registers.XMM5)) - .add(new BankArrayRegister(1, 0x100, 16, X87Registers.XMM6)) - .add(new BankArrayRegister(1, 0x110, 16, X87Registers.XMM7)) - .add(new BankArrayRegister(1, 0x120, 16, X87Registers.XMM8)) - .add(new BankArrayRegister(1, 0x130, 16, X87Registers.XMM9)) - .add(new BankArrayRegister(1, 0x140, 16, X87Registers.XMM10)) - .add(new BankArrayRegister(1, 0x150, 16, X87Registers.XMM11)) - .add(new BankArrayRegister(1, 0x160, 16, X87Registers.XMM12)) - .add(new BankArrayRegister(1, 0x170, 16, X87Registers.XMM13)) - .add(new BankArrayRegister(1, 0x180, 16, X87Registers.XMM14)) - .add(new BankArrayRegister(1, 0x190, 16, X87Registers.XMM15)) + .add(1, LinuxX8664RegisterBanks.FPREGS) // debug registers - .add(new BankArrayRegister(2, 848, 8, X8664Registers.DR0)) - .add(new BankArrayRegister(2, 856, 8, X8664Registers.DR1)) - .add(new BankArrayRegister(2, 864, 8, X8664Registers.DR2)) - .add(new BankArrayRegister(2, 872, 8, X8664Registers.DR3)) - .add(new BankArrayRegister(2, 880, 8, X8664Registers.DR4)) - .add(new BankArrayRegister(2, 888, 8, X8664Registers.DR5)) - .add(new BankArrayRegister(2, 896, 8, X8664Registers.DR6)) - .add(new BankArrayRegister(2, 904, 8, X8664Registers.DR7)) + .add(2, LinuxX8664RegisterBanks.USR) ; public static BankArrayRegisterMap IA32_ON_X8664 hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 16:49:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 16:49:00 -0000 Subject: [SCM] master: Delete unused register bank constructors. Message-ID: <20071221164913.4948.qmail@sourceware.org> The branch, master has been updated via 2bbd8dfdf088c41277d4ef72f3d8b22b25271daf (commit) from c989b53c7cede6b8cb168c8b9e89bd250534813a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 2bbd8dfdf088c41277d4ef72f3d8b22b25271daf Author: Andrew Cagney Date: Fri Dec 21 11:49:00 2007 -0500 Delete unused register bank constructors. frysk-core/frysk/bank/ChangeLog 2007-12-21 Andrew Cagney * IndirectBankArrayRegisterMap.java (IndirectBankArrayRegisterMap(Register,int,int,int)): Update. * BankArrayRegisterMap.java (BankArrayRegisterMap(int,int,int,String)): Delete. * BankArrayRegister.java (BankArrayRegister(int,int,int,String)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/BankArrayRegister.java | 5 ----- frysk-core/frysk/bank/BankArrayRegisterMap.java | 4 ---- frysk-core/frysk/bank/ChangeLog | 7 +++++++ .../frysk/bank/IndirectBankArrayRegisterMap.java | 2 +- 4 files changed, 8 insertions(+), 10 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java index 0e9c3fa..7d1691a 100644 --- a/frysk-core/frysk/bank/BankArrayRegister.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -48,11 +48,6 @@ import frysk.isa.Register; public class BankArrayRegister extends BankRegister { private final int bank; - BankArrayRegister(int bank, int offset, int length, String name) { - super(offset, length, name); - this.bank = bank; - } - BankArrayRegister(int bank, int offset, int length, Register register) { super(offset, length, register); this.bank = bank; diff --git a/frysk-core/frysk/bank/BankArrayRegisterMap.java b/frysk-core/frysk/bank/BankArrayRegisterMap.java index 92e3a9d..17b8121 100644 --- a/frysk-core/frysk/bank/BankArrayRegisterMap.java +++ b/frysk-core/frysk/bank/BankArrayRegisterMap.java @@ -67,10 +67,6 @@ public class BankArrayRegisterMap extends RegisterMap { put(new BankArrayRegister(bank, offset, length, register)); return this; } - BankArrayRegisterMap add(int bank, int offset, int length, String name) { - put(new BankArrayRegister(bank, offset, length, name)); - return this; - } BankArrayRegisterMap add(int bank, int offset, int length, Register[] registers) { for (int i = 0; i < registers.length; i++) { diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index 23ec6f7..0407fd3 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,12 @@ 2007-12-21 Andrew Cagney + * IndirectBankArrayRegisterMap.java + (IndirectBankArrayRegisterMap(Register,int,int,int)): Update. + * BankArrayRegisterMap.java + (BankArrayRegisterMap(int,int,int,String)): Delete. + * BankArrayRegister.java (BankArrayRegister(int,int,int,String)): + Delete. + * PPCBankRegisters.java (PPC32BE, PPC64BE): Construct using LinuxPPCRegisterBanks. diff --git a/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java b/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java index 966cc78..755c693 100644 --- a/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java +++ b/frysk-core/frysk/bank/IndirectBankArrayRegisterMap.java @@ -72,7 +72,7 @@ class IndirectBankArrayRegisterMap extends BankArrayRegisterMap { IndirectBankArrayRegisterMap add(Register reg32, int bank, int offset, int size) { - put(new BankArrayRegister(bank, offset, size, reg32.getName())); + put(new BankArrayRegister(bank, offset, size, reg32)); return this; } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 19:14:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 19:14:00 -0000 Subject: [SCM] master: Fix typo; restore X87 CS and DS registers. Message-ID: <20071221191409.15600.qmail@sourceware.org> The branch, master has been updated via 4d109b2d560ed05e6887f358f2b7aa486a4e2a55 (commit) via fcd7fc715af0cc88ffba233c09bcb07ff454580d (commit) from 2bbd8dfdf088c41277d4ef72f3d8b22b25271daf (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4d109b2d560ed05e6887f358f2b7aa486a4e2a55 Author: Andrew Cagney Date: Fri Dec 21 14:13:12 2007 -0500 Fix typo; restore X87 CS and DS registers. frysk-core/frysk/bank/ChangeLog 2007-12-21 Andrew Cagney * X86BankRegisters.java (IA32_ON_X8664): Restore X87 CS and DS registers removed by previous commit. commit fcd7fc715af0cc88ffba233c09bcb07ff454580d Author: Andrew Cagney Date: Fri Dec 21 13:14:20 2007 -0500 Replace strings with consants. 2007-12-21 Andrew Cagney * LinuxX8664RegisterBanks.java: Use constants from X8664Registers for "ss", "ds", "es", "fs", and "cs. * X86BankRegisters.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/ChangeLog | 7 ++++ frysk-core/frysk/bank/LinuxX8664RegisterBanks.java | 36 ++++++++++---------- frysk-core/frysk/bank/X86BankRegisters.java | 12 +++--- 3 files changed, 31 insertions(+), 24 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index 0407fd3..051b0ee 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,12 @@ 2007-12-21 Andrew Cagney + * X86BankRegisters.java (IA32_ON_X8664): Restore X87 CS and DS + registers removed by previous commit. + + * LinuxX8664RegisterBanks.java: Use constants from X8664Registers + for "ss", "ds", "es", "fs", and "cs. + * X86BankRegisters.java: Ditto. + * IndirectBankArrayRegisterMap.java (IndirectBankArrayRegisterMap(Register,int,int,int)): Update. * BankArrayRegisterMap.java diff --git a/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java index e2d583a..e566087 100644 --- a/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java +++ b/frysk-core/frysk/bank/LinuxX8664RegisterBanks.java @@ -46,33 +46,33 @@ public class LinuxX8664RegisterBanks { public static final BankRegisterMap REGS = new BankRegisterMap() - .add(new BankRegister(80, 8, X8664Registers.RAX)) + .add(new BankRegister(0, 8, X8664Registers.R15)) + .add(new BankRegister(8, 8, X8664Registers.R14)) + .add(new BankRegister(16, 8, X8664Registers.R13)) + .add(new BankRegister(24, 8, X8664Registers.R12)) + .add(new BankRegister(32, 8, X8664Registers.RBP)) .add(new BankRegister(40, 8, X8664Registers.RBX)) + .add(new BankRegister(48, 8, X8664Registers.R11)) + .add(new BankRegister(56, 8, X8664Registers.R10)) + .add(new BankRegister(64, 8, X8664Registers.R9)) + .add(new BankRegister(72, 8, X8664Registers.R8)) + .add(new BankRegister(80, 8, X8664Registers.RAX)) .add(new BankRegister(88, 8, X8664Registers.RCX)) .add(new BankRegister(96, 8, X8664Registers.RDX)) .add(new BankRegister(104, 8, X8664Registers.RSI)) .add(new BankRegister(112, 8, X8664Registers.RDI)) - .add(new BankRegister(32, 8, X8664Registers.RBP)) - .add(new BankRegister(152, 8, X8664Registers.RSP)) - .add(new BankRegister(72, 8, X8664Registers.R8)) - .add(new BankRegister(64, 8, X8664Registers.R9)) - .add(new BankRegister(56, 8, X8664Registers.R10)) - .add(new BankRegister(48, 8, X8664Registers.R11)) - .add(new BankRegister(24, 8, X8664Registers.R12)) - .add(new BankRegister(16, 8, X8664Registers.R13)) - .add(new BankRegister(8, 8, X8664Registers.R14)) - .add(new BankRegister(0, 8, X8664Registers.R15)) + .add(new BankRegister(120, 8, X8664Registers.ORIG_RAX)) .add(new BankRegister(128, 8, X8664Registers.RIP)) + .add(new BankRegister(136, 8, X8664Registers.CS)) .add(new BankRegister(144, 8, X8664Registers.RFLAGS)) - .add(new BankRegister(136, 8, "cs")) - .add(new BankRegister(160, 8, "ss")) - .add(new BankRegister(184, 8, "ds")) - .add(new BankRegister(192, 8, "es")) - .add(new BankRegister(200, 8, "fs")) - .add(new BankRegister(208, 8, "gs")) - .add(new BankRegister(120, 8, X8664Registers.ORIG_RAX)) + .add(new BankRegister(152, 8, X8664Registers.RSP)) + .add(new BankRegister(160, 8, X8664Registers.SS)) .add(new BankRegister(168, 8, X8664Registers.FS_BASE)) .add(new BankRegister(176, 8, X8664Registers.GS_BASE)) + .add(new BankRegister(184, 8, X8664Registers.DS)) + .add(new BankRegister(192, 8, X8664Registers.ES)) + .add(new BankRegister(200, 8, X8664Registers.FS)) + .add(new BankRegister(208, 8, X8664Registers.GS)) ; public static final BankRegisterMap FPREGS diff --git a/frysk-core/frysk/bank/X86BankRegisters.java b/frysk-core/frysk/bank/X86BankRegisters.java index 6ad6d4a..f48547a 100644 --- a/frysk-core/frysk/bank/X86BankRegisters.java +++ b/frysk-core/frysk/bank/X86BankRegisters.java @@ -75,12 +75,12 @@ public class X86BankRegisters { .add(IA32Registers.ESI, X8664Registers.RSI) .add(IA32Registers.EDI, X8664Registers.RDI) .add(IA32Registers.EBP, X8664Registers.RBP) - .add("cs", "cs") - .add("ds", "ds") - .add("es", "es") - .add("fs", "fs") - .add("gs", "gs") - .add("ss", "gs") + .add(IA32Registers.CS) + .add(IA32Registers.DS) + .add(IA32Registers.ES) + .add(IA32Registers.FS) + .add(IA32Registers.GS) + .add(IA32Registers.SS) .add(IA32Registers.ORIG_EAX, X8664Registers.ORIG_RAX) .add(IA32Registers.EIP, X8664Registers.RIP) .add(IA32Registers.EFLAGS,X8664Registers.RFLAGS) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 19:31:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 19:31:00 -0000 Subject: [SCM] master: Delete unused BankRegister constructors. Message-ID: <20071221193145.22135.qmail@sourceware.org> The branch, master has been updated via ddfabd8d35ebd64b1e8141b35e734d0edd57fd9c (commit) from 4d109b2d560ed05e6887f358f2b7aa486a4e2a55 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit ddfabd8d35ebd64b1e8141b35e734d0edd57fd9c Author: Andrew Cagney Date: Fri Dec 21 14:30:02 2007 -0500 Delete unused BankRegister constructors. frysk-core/frysk/bank/ChangeLog 2007-12-21 Andrew Cagney * BankRegister.java (BankRegister(int,int,String)): Delete. (BankRegister(int,int,String,Register)): Delete. (name): Delete. (getName()): Update. * RegisterMap.java: Update. * BankArrayRegister.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bank/BankArrayRegister.java | 2 +- frysk-core/frysk/bank/BankRegister.java | 16 +++------------- frysk-core/frysk/bank/ChangeLog | 7 +++++++ frysk-core/frysk/bank/RegisterMap.java | 5 ++--- 4 files changed, 13 insertions(+), 17 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bank/BankArrayRegister.java b/frysk-core/frysk/bank/BankArrayRegister.java index 7d1691a..a62bdfa 100644 --- a/frysk-core/frysk/bank/BankArrayRegister.java +++ b/frysk-core/frysk/bank/BankArrayRegister.java @@ -55,7 +55,7 @@ public class BankArrayRegister extends BankRegister { BankArrayRegister(int bank, BankRegister bankRegister) { super(bankRegister.getOffset(), bankRegister.getLength(), - bankRegister.getName(), bankRegister.getRegister()); + bankRegister.getRegister()); this.bank = bank; } diff --git a/frysk-core/frysk/bank/BankRegister.java b/frysk-core/frysk/bank/BankRegister.java index 76ab565..471fc82 100644 --- a/frysk-core/frysk/bank/BankRegister.java +++ b/frysk-core/frysk/bank/BankRegister.java @@ -50,31 +50,21 @@ public class BankRegister { private final int offset; private final int length; - private final String name; private final Register register; - BankRegister(int offset, int length, String name, Register register) { + BankRegister(int offset, int length, Register register) { this.offset = offset; this.length = length; - this.name = name; this.register = register; } - BankRegister(int offset, int length, String name) { - this(offset, length, name, null); - } - - BankRegister(int offset, int length, Register register) { - this(offset, length, register.getName(), register); - } - Register getRegister() { return register; } public String toString() { return (super.toString() + ",offset=" + offset + ",length=" + length - + ",name=" + name); + + ",register=" + register); } /** @@ -83,7 +73,7 @@ public class BankRegister { * @return the name */ public String getName() { - return name; + return register.getName(); } /** diff --git a/frysk-core/frysk/bank/ChangeLog b/frysk-core/frysk/bank/ChangeLog index 051b0ee..f3e43c9 100644 --- a/frysk-core/frysk/bank/ChangeLog +++ b/frysk-core/frysk/bank/ChangeLog @@ -1,5 +1,12 @@ 2007-12-21 Andrew Cagney + * BankRegister.java (BankRegister(int,int,String)): Delete. + (BankRegister(int,int,String,Register)): Delete. + (name): Delete. + (getName()): Update. + * RegisterMap.java: Update. + * BankArrayRegister.java: Update. + * X86BankRegisters.java (IA32_ON_X8664): Restore X87 CS and DS registers removed by previous commit. diff --git a/frysk-core/frysk/bank/RegisterMap.java b/frysk-core/frysk/bank/RegisterMap.java index 6776fe3..0e5dbe1 100644 --- a/frysk-core/frysk/bank/RegisterMap.java +++ b/frysk-core/frysk/bank/RegisterMap.java @@ -70,9 +70,8 @@ class RegisterMap { void put(BankRegister br) { Register register = br.getRegister(); - if (register != null) - registerToEntry.put(register, br); - nameToEntry.put(br.getName(), br); + registerToEntry.put(register, br); + nameToEntry.put(register.getName(), br); } Object get(Register r) { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 20:27:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 20:27:00 -0000 Subject: [SCM] master: Replace class-name tests with ISA == tests. Message-ID: <20071221202737.17936.qmail@sourceware.org> The branch, master has been updated via 59d1aa4c32e5bd3d9275db8cae8c57eac6f28127 (commit) via faa0e40e638e9f69906ed70003a1a59c60109c2e (commit) via babe73c3b9004da007ea3b37176fe5ea84d72938 (commit) from ddfabd8d35ebd64b1e8141b35e734d0edd57fd9c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 59d1aa4c32e5bd3d9275db8cae8c57eac6f28127 Author: Andrew Cagney Date: Fri Dec 21 15:27:21 2007 -0500 Replace class-name tests with ISA == tests. frysk-core/frysk/util/ChangeLog 2007-12-21 Andrew Cagney * TestCoredumpAction.java (getArch(String)): Delete. (getIsa(Proc)): Delete. (testElfCoreHeader()): Use getISA. commit faa0e40e638e9f69906ed70003a1a59c60109c2e Author: Andrew Cagney Date: Fri Dec 21 15:08:06 2007 -0500 Delete empty 32-on-64 Isa classes. frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * LinuxPPC32On64.java: Delete. * LinuxIa32On64.java: Delete. * IsaFactory.java (IsaFactory()): Simplify. commit babe73c3b9004da007ea3b37176fe5ea84d72938 Author: Andrew Cagney Date: Fri Dec 21 14:59:54 2007 -0500 Delete unused frysk.proc.Isa.getRegisterBankBuffers(). frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * Isa.java (getRegisterBankBuffers(int)): Delete. * LinuxIa32On64.java (getRegisterBankBuffers(int)): Delete. * IsaX8664.java (getRegisterBankBuffers(int)): Delete. * IsaPowerPC.java (getRegisterBankBuffers(int)): Delete. * IsaIA32.java (getRegisterBankBuffers(int)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 12 +++ frysk-core/frysk/proc/Isa.java | 9 --- frysk-core/frysk/proc/IsaFactory.java | 35 ++-------- frysk-core/frysk/proc/IsaIA32.java | 19 ----- frysk-core/frysk/proc/IsaPowerPC.java | 11 +--- frysk-core/frysk/proc/IsaX8664.java | 17 ----- frysk-core/frysk/proc/LinuxIa32On64.java | 93 ------------------------- frysk-core/frysk/proc/LinuxPPC32On64.java | 52 -------------- frysk-core/frysk/util/ChangeLog | 6 ++ frysk-core/frysk/util/TestCoredumpAction.java | 54 ++------------- 10 files changed, 33 insertions(+), 275 deletions(-) delete mode 100644 frysk-core/frysk/proc/LinuxIa32On64.java delete mode 100644 frysk-core/frysk/proc/LinuxPPC32On64.java First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 7ef1b3a..ab0e3cf 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,15 @@ +2007-12-21 Andrew Cagney + + * LinuxPPC32On64.java: Delete. + * LinuxIa32On64.java: Delete. + * IsaFactory.java (IsaFactory()): Simplify. + + * Isa.java (getRegisterBankBuffers(int)): Delete. + * LinuxIa32On64.java (getRegisterBankBuffers(int)): Delete. + * IsaX8664.java (getRegisterBankBuffers(int)): Delete. + * IsaPowerPC.java (getRegisterBankBuffers(int)): Delete. + * IsaIA32.java (getRegisterBankBuffers(int)): Delete. + 2007-12-20 Andrew Cagney * Task.java (sendrecRegisterBuffersFIXME()): Delete. diff --git a/frysk-core/frysk/proc/Isa.java b/frysk-core/frysk/proc/Isa.java index 4380708..59a150b 100644 --- a/frysk-core/frysk/proc/Isa.java +++ b/frysk-core/frysk/proc/Isa.java @@ -119,15 +119,6 @@ public interface Isa */ boolean isAtSyscallSigReturn(Task task); - /** - * Return an array of ByteBuffers for accessing the register - * banks. It's possible for different elements of the array to be - * shared. - * - * @returns array of ByteBuffer objects. - */ - ByteBuffer[] getRegisterBankBuffers(int pid); - /** @return Syscall[] return system call list for this Linux. */ Syscall[] getSyscallList (); /** @return HashMap return a HashMap for unknown system calls. */ diff --git a/frysk-core/frysk/proc/IsaFactory.java b/frysk-core/frysk/proc/IsaFactory.java index ec73600..f48a0d0 100644 --- a/frysk-core/frysk/proc/IsaFactory.java +++ b/frysk-core/frysk/proc/IsaFactory.java @@ -43,8 +43,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.Hashtable; import java.io.File; -import frysk.Config; - import lib.dwfl.Elf; import lib.dwfl.ElfCommand; import lib.dwfl.ElfEHeader; @@ -58,36 +56,17 @@ public class IsaFactory static final Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); private Hashtable isaHash; - IsaFactory() - { - isaHash = new Hashtable(); - isaHash.put(Integer.valueOf(ElfEMachine.EM_X86_64), - LinuxX8664.isaSingleton()); - isaHash.put(Integer.valueOf(ElfEMachine.EM_PPC64), - LinuxPPC64.isaSingleton()); - // XXX: This should not be looking at the configuration target - // string when selecting the ISA. - if (Config.getTargetCpuXXX().equals ("x86_64")) - { - isaHash.put(Integer.valueOf(ElfEMachine.EM_386), - LinuxIa32On64.isaSingleton()); - } - else - { + IsaFactory() { + isaHash = new Hashtable(); + isaHash.put(Integer.valueOf(ElfEMachine.EM_X86_64), + LinuxX8664.isaSingleton()); + isaHash.put(Integer.valueOf(ElfEMachine.EM_PPC64), + LinuxPPC64.isaSingleton()); isaHash.put(Integer.valueOf(ElfEMachine.EM_386), LinuxIa32.isaSingleton()); - } - if (Config.getTargetCpuXXX().equals("powerpc64")) - { - isaHash.put(Integer.valueOf(ElfEMachine.EM_PPC), - LinuxPPC32On64.isaSingleton()); - } - else - { isaHash.put(Integer.valueOf(ElfEMachine.EM_PPC), LinuxPPC32.isaSingleton()); - } - } + } public static IsaFactory getSingleton() { diff --git a/frysk-core/frysk/proc/IsaIA32.java b/frysk-core/frysk/proc/IsaIA32.java index 2b7303d..3010a4c 100644 --- a/frysk-core/frysk/proc/IsaIA32.java +++ b/frysk-core/frysk/proc/IsaIA32.java @@ -42,12 +42,7 @@ package frysk.proc; import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import inua.eio.ByteOrder; import inua.eio.ByteBuffer; -import frysk.sys.Ptrace.RegisterSet; -import frysk.sys.Ptrace.AddressSpace; -import frysk.proc.live.RegisterSetByteBuffer; -import frysk.proc.live.AddressSpaceByteBuffer; import frysk.isa.IA32Registers; public class IsaIA32 implements Isa @@ -55,20 +50,6 @@ public class IsaIA32 implements Isa private static final Instruction IA32Breakpoint = new Instruction(new byte[] { (byte)0xcc }, false); - public ByteBuffer[] getRegisterBankBuffers(int pid) - { - ByteBuffer[] bankBuffers = new ByteBuffer[] { - new RegisterSetByteBuffer(pid, RegisterSet.REGS), - new RegisterSetByteBuffer(pid, RegisterSet.FPREGS), - new RegisterSetByteBuffer(pid, RegisterSet.FPXREGS), - new AddressSpaceByteBuffer(pid, AddressSpace.USR) - }; - for (int i = 0; i < bankBuffers.length; i++) { - bankBuffers[i].order(ByteOrder.LITTLE_ENDIAN); - } - return bankBuffers; - } - public long pc(Task task) { return task.getRegister(IA32Registers.EIP); } diff --git a/frysk-core/frysk/proc/IsaPowerPC.java b/frysk-core/frysk/proc/IsaPowerPC.java index 46537bb..b5126fa 100644 --- a/frysk-core/frysk/proc/IsaPowerPC.java +++ b/frysk-core/frysk/proc/IsaPowerPC.java @@ -42,10 +42,7 @@ package frysk.proc; import java.util.LinkedList; import java.util.List; import inua.eio.ByteBuffer; -import frysk.proc.live.AddressSpaceByteBuffer; -import frysk.sys.Ptrace.AddressSpace; import frysk.isa.Register; -import inua.eio.ByteOrder; abstract class IsaPowerPC implements Isa { private final Register PC; @@ -148,10 +145,4 @@ abstract class IsaPowerPC implements Isa { return false; } - public ByteBuffer[] getRegisterBankBuffers(int pid) - { - ByteBuffer registers = new AddressSpaceByteBuffer(pid, AddressSpace.USR); - registers.order(ByteOrder.BIG_ENDIAN); - return new ByteBuffer[] { registers }; - } - } +} diff --git a/frysk-core/frysk/proc/IsaX8664.java b/frysk-core/frysk/proc/IsaX8664.java index b3f3521..b35c2a9 100644 --- a/frysk-core/frysk/proc/IsaX8664.java +++ b/frysk-core/frysk/proc/IsaX8664.java @@ -42,12 +42,7 @@ package frysk.proc; import java.util.HashMap; import java.util.LinkedList; import java.util.List; -import inua.eio.ByteOrder; import inua.eio.ByteBuffer; -import frysk.sys.Ptrace.RegisterSet; -import frysk.sys.Ptrace.AddressSpace; -import frysk.proc.live.RegisterSetByteBuffer; -import frysk.proc.live.AddressSpaceByteBuffer; import frysk.isa.X8664Registers; public class IsaX8664 implements Isa @@ -185,16 +180,4 @@ public class IsaX8664 implements Isa return Syscall.iterateSyscallByName (name, LinuxX8664Syscall.syscallList); } - public ByteBuffer[] getRegisterBankBuffers(int pid) - { - ByteBuffer[] bankBuffers = new ByteBuffer[] { - new RegisterSetByteBuffer(pid, RegisterSet.REGS), - new RegisterSetByteBuffer(pid, RegisterSet.FPREGS), - new AddressSpaceByteBuffer(pid, AddressSpace.USR) - }; - for (int i = 0; i < bankBuffers.length; i++) { - bankBuffers[i].order(ByteOrder.LITTLE_ENDIAN); - } - return bankBuffers; - } } diff --git a/frysk-core/frysk/proc/LinuxIa32On64.java b/frysk-core/frysk/proc/LinuxIa32On64.java deleted file mode 100644 index 1bb820d..0000000 --- a/frysk-core/frysk/proc/LinuxIa32On64.java +++ /dev/null @@ -1,93 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.proc; - -import inua.eio.ByteBuffer; - -/** - * Class for IA32 processes running on 64 bit machines. - * - * For the purposes of ptrace, Linux treats a 32 bit process like a 64 - * bit process, with the same user area and register layout that a 32 - * bit process would have; the 32 bit IA32 registers are stored in the - * corresponding slots in the 64 bit structures. In order to debug a - * 32 bit process we use a LinuxIa32 class with new overriding methods - * that access registers, but otherwise things "just work;" for - * example, reading and writing memory is fine because the process has - * the 32 bit memory map, memory will be read / written in 32 bit - * chunks because the Isa work length is 32 bits, but the - * PtraceByteBuffer class knows to access memory in 64 bit chunks. - */ -class LinuxIa32On64 -extends LinuxIa32 -{ - private static LinuxIa32On64 isa; - - /** - * Returns the Isa singleton object. Note that the return type is - * not LinuxIa32On64 because that would cause a conflict with the - * isaSingleton method in the superclass. - * - * @return the Isa singleton object. - */ - static LinuxIa32 isaSingleton() - { - if (isa == null) - isa = new LinuxIa32On64(); - return isa; - } - // The Isa object used to actually access registers in the target. - private final IsaX8664 isa64 = new IsaX8664(); - - /** - * Get the buffers used to access registers in the different - * banks. This Isa has just one register bank -- the USR area - * of the x8664 -- even though Ia32 has 3. - * - * @return the ByteBuffers used to access registers. - */ - public ByteBuffer[] getRegisterBankBuffers(int pid) - { - return isa64.getRegisterBankBuffers(pid); - } - -} - - diff --git a/frysk-core/frysk/proc/LinuxPPC32On64.java b/frysk-core/frysk/proc/LinuxPPC32On64.java deleted file mode 100644 index a4e8869..0000000 --- a/frysk-core/frysk/proc/LinuxPPC32On64.java +++ /dev/null @@ -1,52 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006 IBM Corp. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.proc; - -class LinuxPPC32On64 - extends LinuxPPC32 -{ - private static LinuxPPC32On64 isa; - - static LinuxPPC32 isaSingleton () { - if (isa == null) - isa = new LinuxPPC32On64 (); - return isa; - } -} diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 2bbd2ad..124aaac 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,9 @@ +2007-12-21 Andrew Cagney + + * TestCoredumpAction.java (getArch(String)): Delete. + (getIsa(Proc)): Delete. + (testElfCoreHeader()): Use getISA. + 2007-12-10 Phil Muldoon * TestFCore.java: Rename to TestCoredumpAction.java diff --git a/frysk-core/frysk/util/TestCoredumpAction.java b/frysk-core/frysk/util/TestCoredumpAction.java index c694a9c..61fce34 100644 --- a/frysk-core/frysk/util/TestCoredumpAction.java +++ b/frysk-core/frysk/util/TestCoredumpAction.java @@ -54,7 +54,6 @@ import lib.dwfl.ElfKind; import frysk.event.Event; import frysk.event.RequestStopEvent; import frysk.proc.Auxv; -import frysk.proc.Isa; import frysk.proc.Manager; import frysk.proc.MemoryMap; import frysk.proc.Proc; @@ -92,7 +91,6 @@ public class TestCoredumpAction assertTrue("Checking core file " + coreFileName + " exists.", testCore.exists()); - Isa arch = getIsa(ackProc); ISA isa = getISA(ackProc); ByteOrder order = isa.order(); @@ -125,45 +123,30 @@ public class TestCoredumpAction assertEquals("Checking Header type is ET_CORE", header.type, ElfEHeader.PHEADER_ET_CORE); - // Get machine architecture - String arch_test = getArch(arch); - // Check machine and class - if (arch_test.equals("frysk.proc.LinuxIa32")) - { + if (isa == ISA.IA32) { assertEquals("Checking header machine type", header.machine, ElfEMachine.EM_386); assertEquals("Checking elf class", header.ident[4], ElfEHeader.PHEADER_ELFCLASS32); - } - if (arch_test.equals("frysk.proc.LinuxPPC64")) - { + } else if (isa == ISA.PPC64BE) { assertEquals("Checking header machine type", header.machine, ElfEMachine.EM_PPC64); assertEquals("Checking elf class", header.ident[4], ElfEHeader.PHEADER_ELFCLASS64); - } - if (arch_test.equals("frysk.proc.LinuxPPC32On64")) - { + } else if (isa == ISA.PPC32BE) { assertEquals("Checking header machine type", header.machine, ElfEMachine.EM_PPC); assertEquals("Checking elf class", header.ident[4], ElfEHeader.PHEADER_ELFCLASS32); - } - if (arch_test.equals("frysk.proc.LinuxX8664")) - { + } else if (isa == ISA.X8664) { assertEquals("Checking header machine type", header.machine, ElfEMachine.EM_X86_64); assertEquals("Checking elf class", header.ident[4], ElfEHeader.PHEADER_ELFCLASS64); - } - if (arch_test.equals("frysk.proc.LinuxIa32On64")) - { - assertEquals("Checking header machine type", header.machine, - ElfEMachine.EM_386); - assertEquals("Checking elf class", header.ident[4], - ElfEHeader.PHEADER_ELFCLASS32); - } + } else { + fail("unknown isa: " + isa); + } testCore.delete(); } @@ -461,23 +444,6 @@ public class TestCoredumpAction return ackProc.getMainTask().getProc(); } - - /** - * Return a string representing the architecture of the given ISA. Really need - * to make a better ISA arch test. - * - * @param isa - Isa to test - * @return String - a string corresponding to the arch. - */ - private String getArch (Isa isa) - { - String arch_test = isa.toString(); - String type = arch_test.substring(0, arch_test.lastIndexOf("@")); - - return type; - } - - /** * Returns the ISA that corresponds to the given Proc * @@ -487,12 +453,6 @@ public class TestCoredumpAction private ISA getISA (Proc proc) { return proc.getMainTask().getISA(); } - private Isa getIsa (Proc proc) - { - Isa arch = null; - arch = proc.getMainTask().getIsa(); - return arch; - } private Elf getElf(String coreFileName) { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 21:02:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 21:02:00 -0000 Subject: [SCM] master: Keep syscall's business private. Message-ID: <20071221210216.27147.qmail@sourceware.org> The branch, master has been updated via c9165e0207a8809cc0490a85236425c58717db07 (commit) via c6e25ac436b2551c0ceed6ac8613ff9ba5198aec (commit) from 59d1aa4c32e5bd3d9275db8cae8c57eac6f28127 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit c9165e0207a8809cc0490a85236425c58717db07 Author: Andrew Cagney Date: Fri Dec 21 15:58:13 2007 -0500 Keep syscall's business private. frysk-core/frysk/ftrace/ChangeLog 2007-12-21 Andrew Cagney * Ftrace.java: Use Syscall.isNoReturn(). frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * Syscall.java (number, name, numArgs, argList, noreturn): Make private. (isNoReturn()): New. commit c6e25ac436b2551c0ceed6ac8613ff9ba5198aec Author: Andrew Cagney Date: Fri Dec 21 15:38:53 2007 -0500 Re-indent Syscall.java. frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * Syscall.java: Re-indent. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 4 + frysk-core/frysk/ftrace/Ftrace.java | 2 +- frysk-core/frysk/proc/ChangeLog | 6 + frysk-core/frysk/proc/Syscall.java | 263 ++++++++++++++++------------------- 4 files changed, 129 insertions(+), 146 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index c28dc52..c39f510 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,7 @@ +2007-12-21 Andrew Cagney + + * Ftrace.java: Use Syscall.isNoReturn(). + 2007-12-21 Petr Machata * TestLtrace.java (testRecursive): New test. diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java index 5a5d7c5..fee19da 100644 --- a/frysk-core/frysk/ftrace/Ftrace.java +++ b/frysk-core/frysk/ftrace/Ftrace.java @@ -436,7 +436,7 @@ public class Ftrace frysk.proc.Syscall syscall = task.getSyscallEventInfo().getSyscall(task); String name = syscall.getName(); - if (syscall.noreturn) + if (syscall.isNoReturn()) reporter.eventSingle(task, "syscall " + name, syscall.extractCallArguments(task)); else diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index ab0e3cf..d23f180 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,11 @@ 2007-12-21 Andrew Cagney + * Syscall.java (number, name, numArgs, argList, noreturn): Make + private. + (isNoReturn()): New. + + * Syscall.java: Re-indent. + * LinuxPPC32On64.java: Delete. * LinuxIa32On64.java: Delete. * IsaFactory.java (IsaFactory()): Simplify. diff --git a/frysk-core/frysk/proc/Syscall.java b/frysk-core/frysk/proc/Syscall.java index 9253b8f..f7f9f71 100644 --- a/frysk-core/frysk/proc/Syscall.java +++ b/frysk-core/frysk/proc/Syscall.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, Red Hat Inc. +// Copyright 2005, 2007, Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -36,10 +36,10 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. + package frysk.proc; import inua.util.PrintWriter; - import java.util.HashMap; /** @@ -47,72 +47,64 @@ import java.util.HashMap; * used in combination with {@link SyscallEventInfo} and the * task to get information about a particular system call event. */ -public abstract class Syscall -{ - int number; - public final int numArgs; - String name; - public final String argList; - public final boolean noreturn; + +public abstract class Syscall { + private final int number; + private final int numArgs; + private final String name; + private final String argList; + private final boolean noReturn; Syscall (String name, int number, int numArgs, - String argList, boolean noreturn) - { + String argList, boolean noReturn) { this.name = name; this.number = number; this.numArgs = numArgs; this.argList = argList; - this.noreturn = noreturn; + this.noReturn = noReturn; } - Syscall (String name, int number, int numArgs, String argList) - { - this.name = name; - this.number = number; - this.numArgs = numArgs; - this.argList = argList; - this.noreturn = false; + Syscall (String name, int number, int numArgs, String argList) { + this(name, number, numArgs, argList, false); } - Syscall (String name, int number, int numArgs) - { - this (name, number, numArgs, "i:iiiiiiii"); + Syscall (String name, int number, int numArgs) { + this(name, number, numArgs, "i:iiiiiiii"); } - Syscall (String name, int number) - { - this (name, number, 0, "i:"); + Syscall (String name, int number) { + this(name, number, 0, "i:"); } - Syscall (int number) - { - this ("<" + number + ">", number, 0, "i:"); + Syscall (int number) { + this("<" + number + ">", number, 0, "i:"); } /** Return the name of the system call. */ - public String getName() - { + public String getName() { return name; } /** Return the system call's number. */ - public int getNumber() - { + public int getNumber() { return number; } + /** Does the system call return a result? */ + public boolean isNoReturn() { + return noReturn; + } + /** Return true if this object equals the argument. */ - public boolean equals(Object other) - { - // Syscall objects are unique. - return this == other; + public boolean equals(Object other) { + // Syscall objects are unique. + return this == other; } - abstract public long getArguments (Task task, int n); - abstract public long getReturnCode (Task task); + abstract public long getArguments (Task task, int n); + abstract public long getReturnCode (Task task); private String extractStringArg (frysk.proc.Task task, - long addr) - { + long addr) { if (addr == 0) return "0x0"; else { @@ -131,8 +123,7 @@ public abstract class Syscall * @param task the task which supplies information about the * arguments */ - public String[] extractCallArguments (frysk.proc.Task task) - { + public String[] extractCallArguments (frysk.proc.Task task) { String[] ret = new String[numArgs]; for (int i = 0; i < numArgs; ++i) { @@ -172,8 +163,7 @@ public abstract class Syscall * @return writer */ public PrintWriter printCall (PrintWriter writer, - frysk.proc.Task task) - { + frysk.proc.Task task) { String[] args = extractCallArguments(task); writer.print (" " + name + " ("); for (int i = 0; i < args.length; ++i) { @@ -181,26 +171,24 @@ public abstract class Syscall if (i < numArgs) writer.print (","); } - if (noreturn) + if (noReturn) writer.println (")"); else writer.print (")"); return writer; } - public String toString() - { - return (this.getClass() - +"[name=" + getName() - + ",number=" + getNumber() + "]"); - } + public String toString() { + return (this.getClass() + +"[name=" + getName() + + ",number=" + getNumber() + "]"); + } /** * Extract system call return value. Currently returns formatted * string. */ - public String extractReturnValue(frysk.proc.Task task) - { + public String extractReturnValue(frysk.proc.Task task) { long retVal = getReturnCode(task); switch (argList.charAt (0)) { @@ -235,104 +223,89 @@ public abstract class Syscall * @return writer */ public PrintWriter printReturn (PrintWriter writer, - frysk.proc.Task task) - { + frysk.proc.Task task) { writer.print (" = " + extractReturnValue(task)); return writer; } - /** - * Given a system call's name, this will return the corresponding - * Syscall object. If no predefined system call with that name - * is available, this will return null. - * @param name the name of the system call - * @param syscallList system calls list - * @return the Syscall object, or null - */ - static Syscall iterateSyscallByName (String name, Syscall[] syscallList) - { - for (int i = 0; i < syscallList.length; ++i) - if (name.equals(syscallList[i].name)) - return syscallList[i]; - return null; - } - - /** - * Given a system call's number, this will return the corresponding - * Syscall object. Note that system call numbers are platform - * dependent. This will return a Syscall object in all cases; if - * there is no predefined system call with the given number, a unique - * "unknown" system call with the indicated number will be created. - * - * @param num the number of the system call - * @param task the current task - * @return the Syscall object - */ - public static Syscall syscallByNum (int num, Task task) - { - Syscall[] syscallList; - HashMap unknownSyscalls; - - syscallList = task.getIsa().getSyscallList (); - unknownSyscalls = task.getIsa().getUnknownSyscalls (); - - if (num < 0) - { - throw new RuntimeException ("Negative syscall number: " + num); - } - else if (num >= syscallList.length) - { - synchronized (unknownSyscalls) - { - Integer key = new Integer(num); - if (unknownSyscalls.containsKey(key)) - return (Syscall) unknownSyscalls.get(key); + /** + * Given a system call's name, this will return the corresponding + * Syscall object. If no predefined system call with that name + * is available, this will return null. + * @param name the name of the system call + * @param syscallList system calls list + * @return the Syscall object, or null + */ + static Syscall iterateSyscallByName (String name, Syscall[] syscallList) { + for (int i = 0; i < syscallList.length; ++i) + if (name.equals(syscallList[i].name)) + return syscallList[i]; + return null; + } + + /** + * Given a system call's number, this will return the corresponding + * Syscall object. Note that system call numbers are platform + * dependent. This will return a Syscall object in all cases; if + * there is no predefined system call with the given number, a unique + * "unknown" system call with the indicated number will be created. + * + * @param num the number of the system call + * @param task the current task + * @return the Syscall object + */ + public static Syscall syscallByNum (int num, Task task) { + Syscall[] syscallList; + HashMap unknownSyscalls; + + syscallList = task.getIsa().getSyscallList (); + unknownSyscalls = task.getIsa().getUnknownSyscalls (); + + if (num < 0) { + throw new RuntimeException ("Negative syscall number: " + num); + } else if (num >= syscallList.length) { + synchronized (unknownSyscalls) { + Integer key = new Integer(num); + if (unknownSyscalls.containsKey(key)) + return (Syscall) unknownSyscalls.get(key); - class UnknownSyscall - extends Syscall - { - UnknownSyscall (String name, int number) - { - super (name, number); - } + class UnknownSyscall extends Syscall { + UnknownSyscall (String name, int number) { + super (name, number); + } - public long getArguments (Task task, int n) - { - return 0; - } - public long getReturnCode (Task task) - { - return 0; - } + public long getArguments (Task task, int n) { + return 0; + } + public long getReturnCode (Task task) { + return 0; + } + } + Syscall result = new UnknownSyscall("UNKNOWN SYSCALL " + num, num); + + unknownSyscalls.put(key, result); + + return result; } - Syscall result = new UnknownSyscall("UNKNOWN SYSCALL " + num, num); + } else { + return syscallList[num]; + } + } - unknownSyscalls.put(key, result); - - return result; - } - } - else - { - return syscallList[num]; - } - } - - /** - * Given a system call's name, this will return the corresponding - * Syscall object. If no predefined system call with that name - * is available, this will return null. - * @param name the name of the system call - * @param task the cuurent task - * @return the Syscall object, or null - * @throws NullPointerException if name is null - */ - public static Syscall syscallByName (String name, Task task) - { - Syscall syscall; - - syscall = task.getIsa().syscallByName(name); - - return syscall; - } + /** + * Given a system call's name, this will return the corresponding + * Syscall object. If no predefined system call with that name + * is available, this will return null. + * @param name the name of the system call + * @param task the cuurent task + * @return the Syscall object, or null + * @throws NullPointerException if name is null + */ + public static Syscall syscallByName (String name, Task task) { + Syscall syscall; + + syscall = task.getIsa().syscallByName(name); + + return syscall; + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 21 22:01:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 21 Dec 2007 22:01:00 -0000 Subject: [SCM] master: Remove Isa references; use getter instead of field access. Message-ID: <20071221220119.19306.qmail@sourceware.org> The branch, master has been updated via 1111e5247ab2ac32d1f24a0a9fd4fb11565cf0b5 (commit) via 17e2a3640c83f1f16b474b5c3c0cc9cae131cadd (commit) from c9165e0207a8809cc0490a85236425c58717db07 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 1111e5247ab2ac32d1f24a0a9fd4fb11565cf0b5 Author: Andrew Cagney Date: Fri Dec 21 17:00:31 2007 -0500 Remove Isa references; use getter instead of field access. frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * Syscall.java (getNumArgs()): New. (getArgList()): New. frysk-gui/frysk/gui/monitor/ChangeLog 2007-12-21 Andrew Cagney * observers/SysCallUtilyInfo.java: Update. Use Syscall's get methods. frysk-gui/frysk/gui/srcwin/ChangeLog 2007-12-21 Andrew Cagney * CurrentStackView.java: Delete ISA conditional code. commit 17e2a3640c83f1f16b474b5c3c0cc9cae131cadd Author: Andrew Cagney Date: Fri Dec 21 16:26:51 2007 -0500 Eliminate IsaX8664 and IsaIA32. frysk-core/frysk/proc/ChangeLog 2007-12-21 Andrew Cagney * IsaX8664.java: Delete. * LinuxX8664.java: Move IsaX8664 code to here. * IsaIA32.java: Delete. * LinuxIa32.java: Move IsaIA32 code to here. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 8 + frysk-core/frysk/proc/IsaIA32.java | 196 -------------------- frysk-core/frysk/proc/IsaX8664.java | 183 ------------------ frysk-core/frysk/proc/LinuxIa32.java | 163 +++++++++++++++- frysk-core/frysk/proc/LinuxX8664.java | 155 ++++++++++++++-- frysk-core/frysk/proc/Syscall.java | 8 + frysk-gui/frysk/gui/monitor/ChangeLog | 5 + .../gui/monitor/observers/SysCallUtilyInfo.java | 12 +- frysk-gui/frysk/gui/srcwin/ChangeLog | 4 + frysk-gui/frysk/gui/srcwin/CurrentStackView.java | 39 ---- 10 files changed, 323 insertions(+), 450 deletions(-) delete mode 100644 frysk-core/frysk/proc/IsaIA32.java delete mode 100644 frysk-core/frysk/proc/IsaX8664.java First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index d23f180..270a30c 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,13 @@ 2007-12-21 Andrew Cagney + * Syscall.java (getNumArgs()): New. + (getArgList()): New. + + * IsaX8664.java: Delete. + * LinuxX8664.java: Move IsaX8664 code to here. + * IsaIA32.java: Delete. + * LinuxIa32.java: Move IsaIA32 code to here. + * Syscall.java (number, name, numArgs, argList, noreturn): Make private. (isNoReturn()): New. diff --git a/frysk-core/frysk/proc/IsaIA32.java b/frysk-core/frysk/proc/IsaIA32.java deleted file mode 100644 index 3010a4c..0000000 --- a/frysk-core/frysk/proc/IsaIA32.java +++ /dev/null @@ -1,196 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.proc; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import inua.eio.ByteBuffer; -import frysk.isa.IA32Registers; - -public class IsaIA32 implements Isa -{ - private static final Instruction IA32Breakpoint - = new Instruction(new byte[] { (byte)0xcc }, false); - - public long pc(Task task) { - return task.getRegister(IA32Registers.EIP); - } - - public void setPC(Task task, long address) { - task.setRegister(IA32Registers.EIP, address); - } - - /** - * Get the breakpoint instruction for IA32. - */ - public final Instruction getBreakpointInstruction() - { - return IA32Breakpoint; - } - - /** - * Returns the instruction at the given location in the memory - * buffer, or null if there is no valid instruction at the given - * location. FIXME - needs to be plugged into the InstructionParser - * and cache the results. - */ - public Instruction getInstruction(ByteBuffer bb, long addr) - { - bb.position(addr); - return IA32InstructionParser.parse(bb); - } - - /** - * Get the true breakpoint address according to PC register after hitting - * one breakpoint set in task. In X86, the length of breakpoint instruction - * will be added to the PC register's value. So the true breakpoint address - * is the PC register's value minus the length of breakpoint. - */ - public long getBreakpointAddress(Task task) - { - long pcValue; - - pcValue = this.pc(task); - pcValue = pcValue - 1; - - return pcValue; - } - - /** - * Returns a non-empty list of addresses that can be used for out of - * line stepping. Each address should point to a location at least - * big enough for the largest instruction of this ISA. - */ - public List getOutOfLineAddresses(Proc proc) - { - LinkedList addrs = new LinkedList(); - Auxv[] auxv = proc.getAuxv (); - // Find the Auxv ENTRY data - for (int i = 0; i < auxv.length; i++) - { - if (auxv[i].type == inua.elf.AT.ENTRY) - addrs.add(Long.valueOf(auxv[i].val)); - } - return addrs; - } - - /** - * Reports whether or not the given Task just did a step of an - * instruction. This can be deduced by examining the single step - * flag (BS bit 14) in the debug status register (DR6) on x86. - * This resets the stepping flag. - */ - public boolean isTaskStepped(Task task) { - long value = task.getRegister(IA32Registers.D6); - boolean stepped = (value & 0x4000) != 0; - task.setRegister(IA32Registers.D6, value & ~0x4000); - return stepped; - } - - /** - * Returns true if the last instruction executed by the given Task - * was a trapping instruction that will be handled by the - * kernel. This method should distinquish instructions that are - * handled by the kernel (like syscall enter instructions) and those - * that generate a trap signal. True is returned only when the - * instruction shouldn't generate a signal. Called from the state - * machine when a trap event has been detected that cannot be - * attributed to entering a signal handler or a normal step - * instruction notification. - *

    - * ia32 generate spurious trap events on "int 0x80" instructions - * that should trap into a kernel syscall. - */ - public boolean hasExecutedSpuriousTrap(Task task) - { - long address = pc(task); - return (task.getMemory().getByte(address - 1) == (byte) 0x80 - && task.getMemory().getByte(address - 2) == (byte) 0xcd); - } - - /** - * Returns true if the given Task is at an instruction that will - * invoke the sig return system call. - * - * On x86 this is when the pc is at a int 0x80 instruction and the - * eax register contains 0x77. - */ - public boolean isAtSyscallSigReturn(Task task) { - long address = pc(task); - boolean result = (task.getMemory().getByte(address) == (byte) 0xcd - && (task.getMemory().getByte(address + 1) - == (byte) 0x80)); - if (result) { - long syscallNum = task.getRegister(IA32Registers.EAX); - result &= syscallNum == 0x77; - } - return result; - } - - public Syscall[] getSyscallList () - { - return LinuxIa32Syscall.syscallList; - } - - public HashMap getUnknownSyscalls () - { - return LinuxIa32Syscall.unknownSyscalls; - } - - public Syscall syscallByName (String name) - { - Syscall syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.syscallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.socketSubcallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.ipcSubcallList); - if (syscall != null) - return syscall; - - return null; - } -} diff --git a/frysk-core/frysk/proc/IsaX8664.java b/frysk-core/frysk/proc/IsaX8664.java deleted file mode 100644 index b35c2a9..0000000 --- a/frysk-core/frysk/proc/IsaX8664.java +++ /dev/null @@ -1,183 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, 2007 Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.proc; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import inua.eio.ByteBuffer; -import frysk.isa.X8664Registers; - -public class IsaX8664 implements Isa -{ - private static final Instruction X8664Breakpoint - = new Instruction(new byte[] { (byte)0xcc }, false); - - public long pc(Task task) { - return task.getRegister(X8664Registers.RIP); - } - - public void setPC(Task task, long address) { - task.setRegister(X8664Registers.RIP, address); - } - - /** - * Get the breakpoint instruction for X8664. - */ - public final Instruction getBreakpointInstruction() - { - return X8664Breakpoint; - } - - /** - * Returns the instruction at the given location in the memory - * buffer, or null if there is no valid instruction at the given - * location. FIXME - needs to be plugged into the InstructionParser - * and cache the results. - */ - public Instruction getInstruction(ByteBuffer bb, long addr) - { - bb.position(addr); - return X8664InstructionParser.parse(bb); - } - - /** - * Get the true breakpoint address according to PC register after hitting - * one breakpoint set in task. In X86-64, the length of breakpoint instruction - * will be added to the PC register's value. So the true breakpoint address - * is the PC register's value minus the length of breakpoint. - */ - public long getBreakpointAddress(Task task) - { - long pcValue = 0; - - pcValue = this.pc(task); - pcValue = pcValue - 1; - - return pcValue; - } - - /** - * Returns a non-empty list of addresses that can be used for out of - * line stepping. Each address should point to a location at least - * big enough for the largest instruction of this ISA. - */ - public List getOutOfLineAddresses(Proc proc) - { - LinkedList addrs = new LinkedList(); - Auxv[] auxv = proc.getAuxv (); - // Find the Auxv ENTRY data - for (int i = 0; i < auxv.length; i++) - { - if (auxv[i].type == inua.elf.AT.ENTRY) - addrs.add(Long.valueOf(auxv[i].val)); - } - return addrs; - } - - /** - * Reports whether or not the given Task just did a step of an - * instruction. This can be deduced by examining the single step - * flag (BS bit 14) in the debug status register (DR6) on x86_64. - * This resets the stepping flag. - */ - public boolean isTaskStepped(Task task) { - long value = task.getRegister(X8664Registers.DR6); - boolean stepped = (value & 0x4000) != 0; - task.setRegister(X8664Registers.DR6, value & ~0x4000); - return stepped; - } - - /** - * Returns true if the last instruction executed by the given Task - * was a trapping instruction that will be handled by the - * kernel. This method should distinquish instructions that are - * handled by the kernel (like syscall enter instructions) and those - * that generate a trap signal. True is returned only when the - * instruction shouldn't generate a signal. Called from the state - * machine when a trap event has been detected that cannot be - * attributed to entering a signal handler or a normal step - * instruction notification. - * - * On some kernels x86_64 doesn't generate spurious trap events (or - * rather doesn't set the stepping flag) after returning from a - * SYSCALL instruction. - */ - public boolean hasExecutedSpuriousTrap(Task task) - { - long address = pc(task); - return (task.getMemory().getByte(address - 1) == (byte) 0x05 - && task.getMemory().getByte(address - 2) == (byte) 0x0f); - } - - /** - * Returns true if the given Task is at an instruction that will - * invoke the sig return system call. - * - * On x86_64 this is when the pc is at a 'syscall' instruction and - * the rax register contains 0x0f. - */ - public boolean isAtSyscallSigReturn(Task task) { - long address = pc(task); - boolean result = (task.getMemory().getByte(address) == (byte) 0x0f - && task.getMemory().getByte(address + 1) == (byte) 0x05); - if (result) { - long syscall_num = task.getRegister(X8664Registers.RAX); - result &= syscall_num == 0x0f; - } - return result; - } - - public Syscall[] getSyscallList () - { - return LinuxX8664Syscall.syscallList; - } - - public HashMap getUnknownSyscalls () - { - return LinuxX8664Syscall.unknownSyscalls; - } - - public Syscall syscallByName (String name) - { - return Syscall.iterateSyscallByName (name, LinuxX8664Syscall.syscallList); - } - -} diff --git a/frysk-core/frysk/proc/LinuxIa32.java b/frysk-core/frysk/proc/LinuxIa32.java index 9dc772d..63fd966 100644 --- a/frysk-core/frysk/proc/LinuxIa32.java +++ b/frysk-core/frysk/proc/LinuxIa32.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006 Red Hat Inc. +// Copyright 2005, 2006, 2007 Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -40,17 +40,158 @@ package frysk.proc; import frysk.isa.IA32Registers; +import inua.eio.ByteBuffer; +import java.util.List; +import java.util.LinkedList; +import java.util.HashMap; -class LinuxIa32 - extends IsaIA32 implements SyscallEventDecoder -{ - private static LinuxIa32 isa; - static LinuxIa32 isaSingleton () - { - if (isa == null) - isa = new LinuxIa32 (); - return isa; - } +class LinuxIa32 implements SyscallEventDecoder, Isa { + + private static final Instruction IA32Breakpoint + = new Instruction(new byte[] { (byte)0xcc }, false); + + public long pc(Task task) { + return task.getRegister(IA32Registers.EIP); + } + + public void setPC(Task task, long address) { + task.setRegister(IA32Registers.EIP, address); + } + + /** + * Get the breakpoint instruction for IA32. + */ + public final Instruction getBreakpointInstruction() { + return IA32Breakpoint; + } + + /** + * Returns the instruction at the given location in the memory + * buffer, or null if there is no valid instruction at the given + * location. FIXME - needs to be plugged into the InstructionParser + * and cache the results. + */ + public Instruction getInstruction(ByteBuffer bb, long addr) { + bb.position(addr); + return IA32InstructionParser.parse(bb); + } + + /** + * Get the true breakpoint address according to PC register after hitting + * one breakpoint set in task. In X86, the length of breakpoint instruction + * will be added to the PC register's value. So the true breakpoint address + * is the PC register's value minus the length of breakpoint. + */ + public long getBreakpointAddress(Task task) { + long pcValue; + + pcValue = this.pc(task); + pcValue = pcValue - 1; + + return pcValue; + } + + /** + * Returns a non-empty list of addresses that can be used for out of + * line stepping. Each address should point to a location at least + * big enough for the largest instruction of this ISA. + */ + public List getOutOfLineAddresses(Proc proc) { + LinkedList addrs = new LinkedList(); + Auxv[] auxv = proc.getAuxv (); + // Find the Auxv ENTRY data + for (int i = 0; i < auxv.length; i++) + { + if (auxv[i].type == inua.elf.AT.ENTRY) + addrs.add(Long.valueOf(auxv[i].val)); + } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 27 17:55:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 27 Dec 2007 17:55:00 -0000 Subject: [SCM] master: Delete Syscall.syscallByName. Message-ID: <20071227175534.1758.qmail@sourceware.org> The branch, master has been updated via f011804026b47ceca7d3298da68ac71152271e18 (commit) via c6a8ffeb5e0fc9ca5511cde4771d4fcbef9f51e6 (commit) via 05f4e21513c35aeccab87ee82bcff02cddd834f2 (commit) via b8924af1bb98f23384978d67c553181932d60cae (commit) via 4bc58ebddb514661c3b1b37fa6f12f243a71edbe (commit) via ac0ac82cb434b332549d81c9f7c1b1be90aa068d (commit) via 37b98788e0289339a00290fb70419cf9db184190 (commit) via dc945ac0cbb99e35043fc89ee026305d6ffd42a9 (commit) from 1111e5247ab2ac32d1f24a0a9fd4fb11565cf0b5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit f011804026b47ceca7d3298da68ac71152271e18 Author: Andrew Cagney Date: Thu Dec 27 12:13:15 2007 -0500 Delete Syscall.syscallByName. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Syscall.java (syscallByName(String,Task)): Delete. * TestSyscallRunning.java: Use SyscallTableFactory. * TestTaskSyscallObserver.java: Ditto. * TestSyscallSignal.java: Ditto. commit c6a8ffeb5e0fc9ca5511cde4771d4fcbef9f51e6 Author: Andrew Cagney Date: Thu Dec 27 11:53:45 2007 -0500 Delete dead methods. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * LinuxIa32.java (syscallByName(String)): Delete. (getUnknownSyscalls()): Delete. (getSyscallList()): Delete. * LinuxPPC64.java: Ditto. * LinuxX8664.java: Ditto. * LinuxPPC32.java: Ditto. commit 05f4e21513c35aeccab87ee82bcff02cddd834f2 Author: Andrew Cagney Date: Thu Dec 27 11:47:21 2007 -0500 Use SyscallTableFactory. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Isa.java (syscallByName(String)): Delete. (getUnknownSyscalls()): Delete. (getSyscallList()): Delete. * Syscall.java: Use SyscallTableFactory. * TestSyscallsWithAudit.java: Ditto. commit b8924af1bb98f23384978d67c553181932d60cae Author: Andrew Cagney Date: Thu Dec 27 11:23:28 2007 -0500 Add SyscallTableFactory. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallTableFactory.java: New file. commit 4bc58ebddb514661c3b1b37fa6f12f243a71edbe Author: Andrew Cagney Date: Thu Dec 27 11:15:22 2007 -0500 Rename SyscallFactory to SyscallTable. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallTable.java: Rename SyscallFactory.java. * LinuxPPC64Syscall.java: Update. * LinuxPPC32Syscall.java: Update. * LinuxIa32Syscall.java: Update. * LinuxX8664Syscall.java: Update. commit ac0ac82cb434b332549d81c9f7c1b1be90aa068d Author: Andrew Cagney Date: Thu Dec 27 10:56:47 2007 -0500 Extend SyscallFactory. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallFactory.java (isAtSyscallSigReturn(Task)): Delete. * LinuxPPC64Syscall.java: Extend SyscallFactory. * LinuxPPC32Syscall.java: Ditto. * LinuxIa32Syscall.java: Ditto. * LinuxX8664Syscall.java: Ditto. commit 37b98788e0289339a00290fb70419cf9db184190 Author: Andrew Cagney Date: Thu Dec 27 10:41:15 2007 -0500 Re-indent. frysk-common/ChangeLog 2007-11-26 Andrew Cagney * Makefile.gen.sh (sources): When JAR_COMPILE, add .jar, instead of .java files, to ${sources}. * frysk-common.ac (--enable-jar-compile): New option. (JAR_COMPILE): New AM_CONDITIONAL variable. commit dc945ac0cbb99e35043fc89ee026305d6ffd42a9 Author: Andrew Cagney Date: Thu Dec 27 10:32:16 2007 -0500 Create SyscallFactory.java. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallFactory.java: New file. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 39 + frysk-core/frysk/proc/Isa.java | 10 - frysk-core/frysk/proc/LinuxIa32.java | 27 - frysk-core/frysk/proc/LinuxIa32Syscall.java | 990 ++++++++++---------- frysk-core/frysk/proc/LinuxPPC32.java | 26 - frysk-core/frysk/proc/LinuxPPC32Syscall.java | 23 +- frysk-core/frysk/proc/LinuxPPC64.java | 27 - frysk-core/frysk/proc/LinuxPPC64Syscall.java | 23 +- frysk-core/frysk/proc/LinuxX8664.java | 12 - frysk-core/frysk/proc/LinuxX8664Syscall.java | 687 +++++++------- frysk-core/frysk/proc/Syscall.java | 25 +- .../proc/{FindProc.java => SyscallTable.java} | 29 +- .../SyscallTableFactory.java} | 30 +- frysk-core/frysk/proc/TestSyscallRunning.java | 134 ++-- frysk-core/frysk/proc/TestSyscallSignal.java | 152 ++-- frysk-core/frysk/proc/TestSyscallsWithAudit.java | 43 +- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 89 +- 17 files changed, 1150 insertions(+), 1216 deletions(-) copy frysk-core/frysk/proc/{FindProc.java => SyscallTable.java} (78%) copy frysk-core/frysk/{ftrace/ArchFactory.java => proc/SyscallTableFactory.java} (81%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 270a30c..14ae7c6 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,42 @@ +2007-12-27 Andrew Cagney + + * Syscall.java (syscallByName(String,Task)): Delete. + * TestSyscallRunning.java: Use SyscallTableFactory. + * TestTaskSyscallObserver.java: Ditto. + * TestSyscallSignal.java: Ditto. + + * LinuxIa32.java (syscallByName(String)): Delete. + (getUnknownSyscalls()): Delete. + (getSyscallList()): Delete. + * LinuxPPC64.java: Ditto. + * LinuxX8664.java: Ditto. + * LinuxPPC32.java: Ditto. + + * Isa.java (syscallByName(String)): Delete. + (getUnknownSyscalls()): Delete. + (getSyscallList()): Delete. + * Syscall.java: Use SyscallTableFactory. + * TestSyscallsWithAudit.java: Ditto. + + * SyscallTableFactory.java: New file. + + * SyscallTable.java: Rename SyscallFactory.java. + * LinuxPPC64Syscall.java: Update. + * LinuxPPC32Syscall.java: Update. + * LinuxIa32Syscall.java: Update. + * LinuxX8664Syscall.java: Update. + + * SyscallFactory.java (isAtSyscallSigReturn(Task)): Delete. + * LinuxPPC64Syscall.java: Extend SyscallFactory. + * LinuxPPC32Syscall.java: Ditto. + * LinuxIa32Syscall.java: Ditto. + * LinuxX8664Syscall.java: Ditto. + + * LinuxX8664Syscall.java: Re-indent. + * LinuxIa32Syscall.java: Re-indent. + + * SyscallFactory.java: New file. + 2007-12-21 Andrew Cagney * Syscall.java (getNumArgs()): New. diff --git a/frysk-core/frysk/proc/Isa.java b/frysk-core/frysk/proc/Isa.java index 59a150b..814a4bf 100644 --- a/frysk-core/frysk/proc/Isa.java +++ b/frysk-core/frysk/proc/Isa.java @@ -39,7 +39,6 @@ package frysk.proc; -import java.util.HashMap; import java.util.List; import inua.eio.ByteBuffer; @@ -118,13 +117,4 @@ public interface Isa * the sig return system call. */ boolean isAtSyscallSigReturn(Task task); - - /** @return Syscall[] return system call list for this Linux. */ - Syscall[] getSyscallList (); - /** @return HashMap return a HashMap for unknown system calls. */ - HashMap getUnknownSyscalls (); - - /** @return Syscall return system call object if the name could be - * found in syscallList, otherwise return null. */ - Syscall syscallByName (String Name); } diff --git a/frysk-core/frysk/proc/LinuxIa32.java b/frysk-core/frysk/proc/LinuxIa32.java index 63fd966..b488ff8 100644 --- a/frysk-core/frysk/proc/LinuxIa32.java +++ b/frysk-core/frysk/proc/LinuxIa32.java @@ -43,7 +43,6 @@ import frysk.isa.IA32Registers; import inua.eio.ByteBuffer; import java.util.List; import java.util.LinkedList; -import java.util.HashMap; class LinuxIa32 implements SyscallEventDecoder, Isa { @@ -160,32 +159,6 @@ class LinuxIa32 implements SyscallEventDecoder, Isa { return result; } - public Syscall[] getSyscallList () { - return LinuxIa32Syscall.syscallList; - } - - public HashMap getUnknownSyscalls () { - return LinuxIa32Syscall.unknownSyscalls; - } - - public Syscall syscallByName (String name) { - Syscall syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.syscallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.socketSubcallList); - if (syscall != null) - return syscall; - - syscall = Syscall.iterateSyscallByName (name, LinuxIa32Syscall.ipcSubcallList); - if (syscall != null) - return syscall; - - return null; - } - private static LinuxIa32 isa; static LinuxIa32 isaSingleton () { if (isa == null) diff --git a/frysk-core/frysk/proc/LinuxIa32Syscall.java b/frysk-core/frysk/proc/LinuxIa32Syscall.java index 919b4eb..f4c3f7d 100644 --- a/frysk-core/frysk/proc/LinuxIa32Syscall.java +++ b/frysk-core/frysk/proc/LinuxIa32Syscall.java @@ -42,513 +42,517 @@ package frysk.proc; import java.util.HashMap; import frysk.isa.IA32Registers; -public class LinuxIa32Syscall -{ - static final int SOCKET_NUM = 102; - static final int IPC_NUM = 117; +public class LinuxIa32Syscall extends SyscallTable { + static final int SOCKET_NUM = 102; + static final int IPC_NUM = 117; - // This is used to keep track of syscalls whose number we do not - // know. - static HashMap unknownSyscalls = new HashMap(); - - static class Ia32Syscall - extends Syscall - { - Ia32Syscall (String name, int number, int numArgs, - String argList, boolean noreturn) - { - super (name, number, numArgs, argList, noreturn); - } - Ia32Syscall (String name, int number, int numArgs, String argList) - { - super (name, number, numArgs, argList); - } - Ia32Syscall (String name, int number, int numArgs) - { - super (name, number, numArgs); - } - Ia32Syscall (String name, int number) - { - super (name, number); - } - Ia32Syscall (int number) - { - super (number); + // This is used to keep track of syscalls whose number we do not + // know. + static HashMap unknownSyscalls = new HashMap(); + public HashMap getUnknownSyscalls() { + return unknownSyscalls; } - public long getArguments (Task task, int n) { - switch (n) { - case 0: - return task.getRegister(IA32Registers.ORIG_EAX); - case 1: - return task.getRegister(IA32Registers.EBX); - case 2: - return task.getRegister(IA32Registers.ECX); - case 3: - return task.getRegister(IA32Registers.EDX); - case 4: - return task.getRegister(IA32Registers.ESI); - case 5: - return task.getRegister(IA32Registers.EDI); - case 6: - return task.getRegister(IA32Registers.EAX); - default: - throw new RuntimeException ("unknown syscall arg"); - } - } - public long getReturnCode (Task task) { - return task.getRegister(IA32Registers.EAX); - } - } + static class Ia32Syscall extends Syscall { + Ia32Syscall(String name, int number, int numArgs, + String argList, boolean noreturn) { + super(name, number, numArgs, argList, noreturn); + } + Ia32Syscall(String name, int number, int numArgs, String argList) { + super(name, number, numArgs, argList); + } + Ia32Syscall(String name, int number, int numArgs) { + super(name, number, numArgs); + } + Ia32Syscall(String name, int number) { + super(name, number); + } + Ia32Syscall(int number) { + super(number); + } + + public long getArguments(Task task, int n) { + switch (n) { + case 0: + return task.getRegister(IA32Registers.ORIG_EAX); + case 1: + return task.getRegister(IA32Registers.EBX); + case 2: + return task.getRegister(IA32Registers.ECX); + case 3: + return task.getRegister(IA32Registers.EDX); + case 4: + return task.getRegister(IA32Registers.ESI); + case 5: + return task.getRegister(IA32Registers.EDI); + case 6: + return task.getRegister(IA32Registers.EAX); + default: + throw new RuntimeException("unknown syscall arg"); + } + } + public long getReturnCode(Task task) { + return task.getRegister(IA32Registers.EAX); + } + } - static Syscall[] syscallList = { - new Ia32Syscall ("restart_syscall", 0), - new Ia32Syscall ("exit", 1, 1), - new Ia32Syscall ("fork", 2, 0, "i: "), - new Ia32Syscall ("read", 3, 3, "i:ibn "), - new Ia32Syscall ("write", 4, 3, "i:isn "), - new Ia32Syscall ("open", 5, 3, "i:siv "), - new Ia32Syscall ("close", 6, 1, "i:i "), - new Ia32Syscall ("waitpid", 7, 3, "i:ipi "), - new Ia32Syscall ("creat", 8, 2, "i:sv"), - new Ia32Syscall ("link", 9, 2, "i:ss "), - new Ia32Syscall ("unlink", 10, 1, "i:s "), - new Ia32Syscall ("execve", 11, 3, "i:ppp "), - new Ia32Syscall ("chdir", 12, 1, "i:s "), - new Ia32Syscall ("time", 13, 1, "i:P "), - new Ia32Syscall ("mknod", 14, 3, "i:sii "), - new Ia32Syscall ("chmod", 15, 2, "i:si "), - new Ia32Syscall ("lchown", 16, 3, "i:sii "), - new Ia32Syscall ("break", 17), - new Ia32Syscall ("oldstat", 18, 3, "i:pp "), - new Ia32Syscall ("lseek", 19, 3, "i:iii "), - new Ia32Syscall ("getpid", 20, 0, "i: "), - new Ia32Syscall ("mount", 21, 5, "i:sssip "), - new Ia32Syscall ("umount", 22, 1, "i:s "), - new Ia32Syscall ("setuid", 23, 1, "i:i "), - new Ia32Syscall ("getuid", 24, 0, "i: "), - new Ia32Syscall ("stime", 25, 1, "i:p "), - new Ia32Syscall ("ptrace", 26, 4, "i:iiii "), - new Ia32Syscall ("alarm", 27, 1, "i:i "), - new Ia32Syscall ("oldfstat", 28, 2, "i:ip "), - new Ia32Syscall ("pause", 29, 0, "i: "), - new Ia32Syscall ("utime", 30, 2, "i:sP "), - new Ia32Syscall ("stty", 31), - new Ia32Syscall ("gtty", 32), - new Ia32Syscall ("access", 33, 2, "i:si "), - new Ia32Syscall ("nice", 34, 1, "i:i "), - new Ia32Syscall ("ftime", 35, 1, "i:p "), - new Ia32Syscall ("sync", 36, 0, "i: "), - new Ia32Syscall ("kill", 37, 2, "i:ii "), - new Ia32Syscall ("rename", 38, 2, "i:ss "), - new Ia32Syscall ("mkdir", 39, 2, "i:si "), - new Ia32Syscall ("rmdir", 40, 1, "i:s "), - new Ia32Syscall ("dup", 41, 1, "i:i "), - new Ia32Syscall ("pipe", 42, 1, "i:f "), - new Ia32Syscall ("times", 43, 1, "i:p "), - new Ia32Syscall ("prof", 44), - new Ia32Syscall ("brk", 45, 1, "i:p "), - new Ia32Syscall ("setgid", 46, 1, "i:i "), - new Ia32Syscall ("getgid", 47, 0, "i: "), - new Ia32Syscall ("signal", 48, 2, "i:ii "), - new Ia32Syscall ("geteuid", 49, 0, "i: "), - new Ia32Syscall ("getegid", 50, 0, "i: "), - new Ia32Syscall ("acct", 51, 1, "i:S "), - new Ia32Syscall ("umount2", 52, 2, "i:si "), - new Ia32Syscall ("lock", 53), - new Ia32Syscall ("ioctl", 54, 3, "i:iiI "), - new Ia32Syscall ("fcntl", 55, 3, "i:iiF "), - new Ia32Syscall ("mpx", 56), - new Ia32Syscall ("setpgid", 57, 2, "i:ii "), - new Ia32Syscall ("ulimit", 58, 2, "i:ii "), - new Ia32Syscall ("oldolduname", 59), - new Ia32Syscall ("umask", 60, 1, "i:i "), - new Ia32Syscall ("chroot", 61, 1, "i:s "), - new Ia32Syscall ("ustat", 62, 2, "i:ip "), - new Ia32Syscall ("dup2", 63, 2, "i:ii "), - new Ia32Syscall ("getppid", 64, 0, "i: "), - new Ia32Syscall ("getpgrp", 65, 0, "i: "), - new Ia32Syscall ("setsid", 66, 0, "i: "), - new Ia32Syscall ("sigaction", 67, 3, "i:ipp "), - new Ia32Syscall ("sgetmask", 68), - new Ia32Syscall ("ssetmask", 69), - new Ia32Syscall ("setreuid", 70, 2, "i:ii "), - new Ia32Syscall ("setregid", 71, 2, "i:ii "), - new Ia32Syscall ("sigsuspend", 72, 1, "i:p "), - new Ia32Syscall ("sigpending", 73, 1, "i:p "), - new Ia32Syscall ("sethostname", 74, 2, "i:pi "), - new Ia32Syscall ("setrlimit", 75, 2, "i:ip "), - new Ia32Syscall ("getrlimit", 76, 2, "i:ip "), - new Ia32Syscall ("getrusage", 77, 2, "i:ip "), - new Ia32Syscall ("gettimeofday", 78, 2, "i:PP "), - new Ia32Syscall ("settimeofday", 79, 2, "i:PP "), - new Ia32Syscall ("getgroups", 80, 2, "i:ip "), - new Ia32Syscall ("setgroups", 81, 2, "i:ip "), - new Ia32Syscall ("select", 82, 5, "i:iPPPP "), - new Ia32Syscall ("symlink", 83, 2, "i:ss "), - new Ia32Syscall ("oldlstat", 84, 2, "i:pp "), - new Ia32Syscall ("readlink", 85, 3, "i:spi "), - new Ia32Syscall ("uselib", 86, 1, "i:s "), - new Ia32Syscall ("swapon", 87, 2, "i:si "), - new Ia32Syscall ("reboot", 88, 1, "i:i "), - new Ia32Syscall ("readdir",89,3,"i:ipi"), - new Ia32Syscall ("mmap", 90, 6, "b:aniiii "), - new Ia32Syscall ("munmap", 91, 2, "i:ai "), - new Ia32Syscall ("truncate", 92, 2, "i:si "), - new Ia32Syscall ("ftruncate", 93, 2, "i:ii "), - new Ia32Syscall ("fchmod", 94, 2, "i:ii "), - new Ia32Syscall ("fchown", 95, 3, "i:iii "), - new Ia32Syscall ("getpriority", 96, 2, "i:ii "), - new Ia32Syscall ("setpriority", 97, 3, "i:iii "), - new Ia32Syscall ("profil", 98, 4, "i:piii "), - new Ia32Syscall ("statfs", 99, 2, "i:sp "), - new Ia32Syscall ("fstatfs", 100, 2, "i:ip "), - new Ia32Syscall ("ioperm", 101, 3, "i:iii "), - new Ia32Syscall ("socketcall", 102, 2, "i:ip "), - new Ia32Syscall ("syslog", 103, 3, "i:isi "), - new Ia32Syscall ("setitimer", 104, 3, "i:ipp "), - new Ia32Syscall ("getitimer", 105, 2, "i:ip "), - new Ia32Syscall ("stat", 106, 2, "i:sp "), - new Ia32Syscall ("lstat", 107, 2, "i:sp "), - new Ia32Syscall ("fstat", 108, 2, "i:ip "), - new Ia32Syscall ("olduname", 109, 1, "i:p "), - new Ia32Syscall ("iopl", 110, 1, "i:i "), - new Ia32Syscall ("vhangup", 111, 1, "i:i "), - new Ia32Syscall ("idle", 112, 0, "i: "), - new Ia32Syscall ("vm86old", 113, 1, "i:p"), - new Ia32Syscall ("wait4", 114, 4, "i:iWiP "), - new Ia32Syscall ("swapoff", 115, 1, "i:s "), - new Ia32Syscall ("sysinfo", 116, 1, "i:p "), - new Ia32Syscall ("ipc", 117, 6, "i:iiiipi "), - new Ia32Syscall ("fsync", 118, 1, "i:i "), - new Ia32Syscall ("sigreturn", 119), - new Ia32Syscall ("clone", 120, 2, "i:ip "), - new Ia32Syscall ("setdomainname", 121, 2, "i:si "), - new Ia32Syscall ("uname", 122, 1, "i:p "), - new Ia32Syscall ("modify_ldt", 123, 3, "i:ipi "), - new Ia32Syscall ("adjtimex", 124, 1, "i:p "), - new Ia32Syscall ("mprotect", 125, 3, "i:aii "), - new Ia32Syscall ("sigprocmask", 126, 3, "i:ipp "), - new Ia32Syscall ("create_module", 127, 3), - new Ia32Syscall ("init_module", 128, 5), - new Ia32Syscall ("delete_module", 129, 3), - new Ia32Syscall ("get_kernel_syms", 130, 1, "i:p "), - new Ia32Syscall ("quotactl", 131, 4, "i:isip "), - new Ia32Syscall ("getpgid", 132, 1, "i:i "), - new Ia32Syscall ("fchdir", 133, 1, "i:i "), - new Ia32Syscall ("bdflush", 134, 2, "i:ii "), - new Ia32Syscall ("sysfs", 135, 1, "i:i "), - new Ia32Syscall ("personality", 136, 1, "i:i "), - new Ia32Syscall ("afs_syscall", 137), - new Ia32Syscall ("setfsuid", 138, 1, "i:i "), - new Ia32Syscall ("setfsgid", 139, 1, "i:i "), - new Ia32Syscall ("_llseek", 140, 5, "i:iuupi "), - new Ia32Syscall ("getdents", 141, 3, "i:ipi "), - new Ia32Syscall ("_newselect", 142, 5, "i:iPPPP "), - new Ia32Syscall ("flock", 143, 2, "i:ii "), - new Ia32Syscall ("msync", 144, 3, "i:aii "), - new Ia32Syscall ("readv", 145, 3, "i:ipi "), - new Ia32Syscall ("writev", 146, 3, "i:ipi "), - new Ia32Syscall ("getsid", 147, 1, "i:i "), - new Ia32Syscall ("fdatasync", 148, 1, "i:i "), - new Ia32Syscall ("_sysctl", 149, 1, "i:p "), - new Ia32Syscall ("mlock", 150, 2, "i:bn "), - new Ia32Syscall ("munlock", 151, 2, "i:ai "), - new Ia32Syscall ("mlockall", 152, 1, "i:i "), - new Ia32Syscall ("munlockall", 153, 0, "i: "), - new Ia32Syscall ("sched_setparam", 154, 2, "i:ip "), - new Ia32Syscall ("sched_getparam", 155, 2, "i:ip "), - new Ia32Syscall ("sched_setscheduler", 156, 3, "i:iip "), - new Ia32Syscall ("sched_getscheduler", 157, 1, "i:i "), - new Ia32Syscall ("sched_yield", 158, 0, "i: "), - new Ia32Syscall ("sched_get_priority_max", 159, 1, "i:i "), - new Ia32Syscall ("sched_get_priority_min", 160, 1, "i:i "), - new Ia32Syscall ("sched_rr_get_interval", 161, 2, "i:ip "), - new Ia32Syscall ("nanosleep", 162, 2, "i:pp "), - new Ia32Syscall ("mremap", 163, 4, "b:aini "), - new Ia32Syscall ("setresuid", 164, 3, "i:iii "), - new Ia32Syscall ("getresuid", 165, 3, "i:ppp "), - new Ia32Syscall ("vm86", 166, 1, "i:p "), - new Ia32Syscall ("query_module", 167, 5, "i:sipip "), - new Ia32Syscall ("poll", 168, 3, "i:pii "), - new Ia32Syscall ("nfsservctl", 169, 3, "i:ipp "), - new Ia32Syscall ("setresgid", 170, 3, "i:iii "), - new Ia32Syscall ("getresgid", 171, 3, "i:ppp "), - new Ia32Syscall ("prctl", 172, 5, "i:iiiii "), - new Ia32Syscall ("rt_sigreturn", 173), - new Ia32Syscall ("rt_sigaction", 174), - new Ia32Syscall ("rt_sigprocmask", 175), - new Ia32Syscall ("rt_sigpending", 176), - new Ia32Syscall ("rt_sigtimedwait", 177), - new Ia32Syscall ("rt_sigqueueinfo", 178), - new Ia32Syscall ("rt_sigsuspend", 179), - new Ia32Syscall ("pread64", 180), - new Ia32Syscall ("pwrite64", 181), - new Ia32Syscall ("chown", 182, 3, "i:sii "), - new Ia32Syscall ("getcwd", 183, 2, "i:bi "), - new Ia32Syscall ("capget", 184, 2, "i:pp "), - new Ia32Syscall ("capset", 185, 2, "i:pp "), - new Ia32Syscall ("sigaltstack", 186, 2, "i:PP "), - new Ia32Syscall ("sendfile", 187, 4, "i:iipi "), - new Ia32Syscall ("getpmsg", 188), - new Ia32Syscall ("putpmsg", 189), - new Ia32Syscall ("vfork", 190, 0, "i: "), - new Ia32Syscall ("ugetrlimit", 191), - new Ia32Syscall ("mmap2", 192, 6, "b:aniiii "), - new Ia32Syscall ("truncate64", 193, 3, "i:shl "), - new Ia32Syscall ("ftruncate64", 194, 3, "i:ihl "), - new Ia32Syscall ("stat64", 195, 2, "i:sp "), - new Ia32Syscall ("lstat64", 196, 2, "i:sp "), - new Ia32Syscall ("fstat64", 197, 2, "i:ip "), - new Ia32Syscall ("lchown32", 198, 3, "i:sii "), - new Ia32Syscall ("getuid32", 199), - new Ia32Syscall ("getgid32", 200), - new Ia32Syscall ("geteuid32", 201), - new Ia32Syscall ("getegid32", 202), - new Ia32Syscall ("setreuid32", 203, 2, "i:ii "), - new Ia32Syscall ("setregid32", 204, 2, "i:ii "), - new Ia32Syscall ("getgroups32", 205, 2, "i:ip "), - new Ia32Syscall ("setgroups32", 206, 2, "i:ip "), - new Ia32Syscall ("fchown32", 207, 3, "i:iii "), - new Ia32Syscall ("setresuid32", 208, 3, "i:iii "), - new Ia32Syscall ("getresuid32", 209, 3, "i:ppp "), - new Ia32Syscall ("setresgid32", 210, 3, "i:iii "), - new Ia32Syscall ("getresgid32", 211, 3, "i:ppp "), - new Ia32Syscall ("chown32", 212, 3, "i:sii "), - new Ia32Syscall ("setuid32", 213, 1, "i:i "), - new Ia32Syscall ("setgid32", 214, 1, "i:i "), - new Ia32Syscall ("setfsuid32", 215, 1, "i:i "), - new Ia32Syscall ("setfsgid32", 216, 1, "i:i "), - new Ia32Syscall ("pivot_root", 217, 2, "i:ss "), - new Ia32Syscall ("mincore", 218, 3, "i:anV "), - new Ia32Syscall ("madvise", 219, 3, "i:pii "), - new Ia32Syscall ("getdents64", 220, 3, "i:ipi "), - new Ia32Syscall ("fcntl64", 221, 3, "i:iip "), - new Ia32Syscall (222), - new Ia32Syscall (223), - new Ia32Syscall ("gettid", 224, 0), - new Ia32Syscall ("readahead", 225, 4, "i:ihli "), - new Ia32Syscall ("setxattr", 226), - new Ia32Syscall ("lsetxattr", 227), - new Ia32Syscall ("fsetxattr", 228), - new Ia32Syscall ("getxattr", 229), - new Ia32Syscall ("lgetxattr", 230), - new Ia32Syscall ("fgetxattr", 231), - new Ia32Syscall ("listxattr", 232), - new Ia32Syscall ("llistxattr", 233), - new Ia32Syscall ("flistxattr", 234), - new Ia32Syscall ("removexattr", 235), - new Ia32Syscall ("lremovexattr", 236), - new Ia32Syscall ("fremovexattr", 237), - new Ia32Syscall ("tkill", 238, 2, "i:ii "), - new Ia32Syscall ("sendfile64", 239, 4, "i:iipi "), - new Ia32Syscall ("futex", 240, 4, "i:piip "), - new Ia32Syscall ("sched_setaffinity", 241), - new Ia32Syscall ("sched_getaffinity", 242), - new Ia32Syscall ("set_thread_area", 243, 1, "i:p "), - new Ia32Syscall ("get_thread_area", 244, 1, "i:p "), - new Ia32Syscall ("io_setup", 245, 2, "i:ip "), - new Ia32Syscall ("io_destroy", 246, 1, "i:i "), - new Ia32Syscall ("io_getevents", 247, 5, "i:iiipp "), - new Ia32Syscall ("io_submit", 248, 3, "i:iip "), - new Ia32Syscall ("io_cancel", 249, 3, "i:ipp "), - new Ia32Syscall ("fadvise64", 250), - new Ia32Syscall (251), - new Ia32Syscall ("exit_group", 252, 1, " :i ", true), - new Ia32Syscall ("lookup_dcookie", 253), - new Ia32Syscall ("epoll_create", 254), - new Ia32Syscall ("epoll_ctl", 255), - new Ia32Syscall ("epoll_wait", 256), - new Ia32Syscall ("remap_file_pages", 257), - new Ia32Syscall ("set_tid_address", 258), - new Ia32Syscall ("timer_create", 259), - new Ia32Syscall ("timer_settime", 260), - new Ia32Syscall ("timer_gettime", 261), - new Ia32Syscall ("timer_getoverrun", 262), - new Ia32Syscall ("timer_delete", 263), hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 27 18:25:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 27 Dec 2007 18:25:00 -0000 Subject: [SCM] master: Move iterateSyscallByName to SyscallTable. Message-ID: <20071227182504.16026.qmail@sourceware.org> The branch, master has been updated via 313740045e4275ac1cef9e089e3042cff90d6d0e (commit) from f011804026b47ceca7d3298da68ac71152271e18 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 313740045e4275ac1cef9e089e3042cff90d6d0e Author: Andrew Cagney Date: Thu Dec 27 13:06:05 2007 -0500 Move iterateSyscallByName to SyscallTable. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Syscall.java (iterateSyscallByName(String,Syscall[])): Move to ... * SyscallTable.java (iterateSyscallByName(String,Syscall[])): New. * LinuxX8664Syscall.java: Update. * LinuxPPC32Syscall.java: Update. * LinuxIa32Syscall.java: Update. * LinuxPPC64Syscall.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 7 +++++++ frysk-core/frysk/proc/LinuxIa32Syscall.java | 7 +++---- frysk-core/frysk/proc/LinuxPPC32Syscall.java | 6 +++--- frysk-core/frysk/proc/LinuxPPC64Syscall.java | 6 +++--- frysk-core/frysk/proc/LinuxX8664Syscall.java | 2 +- frysk-core/frysk/proc/Syscall.java | 15 --------------- frysk-core/frysk/proc/SyscallTable.java | 14 ++++++++++++++ 7 files changed, 31 insertions(+), 26 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 14ae7c6..5c8202c 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,12 @@ 2007-12-27 Andrew Cagney + * Syscall.java (iterateSyscallByName(String,Syscall[])): Move to ... + * SyscallTable.java (iterateSyscallByName(String,Syscall[])): New. + * LinuxX8664Syscall.java: Update. + * LinuxPPC32Syscall.java: Update. + * LinuxIa32Syscall.java: Update. + * LinuxPPC64Syscall.java: Update. + * Syscall.java (syscallByName(String,Task)): Delete. * TestSyscallRunning.java: Use SyscallTableFactory. * TestTaskSyscallObserver.java: Ditto. diff --git a/frysk-core/frysk/proc/LinuxIa32Syscall.java b/frysk-core/frysk/proc/LinuxIa32Syscall.java index f4c3f7d..121eb00 100644 --- a/frysk-core/frysk/proc/LinuxIa32Syscall.java +++ b/frysk-core/frysk/proc/LinuxIa32Syscall.java @@ -540,15 +540,14 @@ public class LinuxIa32Syscall extends SyscallTable { public Syscall syscallByName(String name) { Syscall syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxIa32Syscall.syscallList); + syscall = iterateSyscallByName(name, LinuxIa32Syscall.syscallList); if (syscall != null) return syscall; - - syscall = Syscall.iterateSyscallByName(name, LinuxIa32Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, LinuxIa32Syscall.socketSubcallList); if (syscall != null) return syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxIa32Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, LinuxIa32Syscall.ipcSubcallList); if (syscall != null) return syscall; diff --git a/frysk-core/frysk/proc/LinuxPPC32Syscall.java b/frysk-core/frysk/proc/LinuxPPC32Syscall.java index 397a1d1..c467326 100644 --- a/frysk-core/frysk/proc/LinuxPPC32Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC32Syscall.java @@ -528,13 +528,13 @@ public class LinuxPPC32Syscall extends SyscallTable { public Syscall syscallByName(String name) { Syscall syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC32Syscall.syscallList); + syscall = iterateSyscallByName(name, LinuxPPC32Syscall.syscallList); if (syscall != null) return syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC32Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, LinuxPPC32Syscall.socketSubcallList); if (syscall != null) return syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC32Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, LinuxPPC32Syscall.ipcSubcallList); if (syscall != null) return syscall; return null; diff --git a/frysk-core/frysk/proc/LinuxPPC64Syscall.java b/frysk-core/frysk/proc/LinuxPPC64Syscall.java index 25b2f4a..f9507c1 100644 --- a/frysk-core/frysk/proc/LinuxPPC64Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC64Syscall.java @@ -534,13 +534,13 @@ public class LinuxPPC64Syscall extends SyscallTable { public Syscall syscallByName(String name) { Syscall syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC64Syscall.syscallList); + syscall = iterateSyscallByName(name, LinuxPPC64Syscall.syscallList); if (syscall != null) return syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC64Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, LinuxPPC64Syscall.socketSubcallList); if (syscall != null) return syscall; - syscall = Syscall.iterateSyscallByName(name, LinuxPPC64Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, LinuxPPC64Syscall.ipcSubcallList); if (syscall != null) return syscall; return null; diff --git a/frysk-core/frysk/proc/LinuxX8664Syscall.java b/frysk-core/frysk/proc/LinuxX8664Syscall.java index e80ac40..3f8e825 100644 --- a/frysk-core/frysk/proc/LinuxX8664Syscall.java +++ b/frysk-core/frysk/proc/LinuxX8664Syscall.java @@ -389,6 +389,6 @@ public class LinuxX8664Syscall extends SyscallTable { } public Syscall syscallByName (String name) { - return Syscall.iterateSyscallByName(name, LinuxX8664Syscall.syscallList); + return iterateSyscallByName(name, LinuxX8664Syscall.syscallList); } } diff --git a/frysk-core/frysk/proc/Syscall.java b/frysk-core/frysk/proc/Syscall.java index 409d7ee..c6f26fd 100644 --- a/frysk-core/frysk/proc/Syscall.java +++ b/frysk-core/frysk/proc/Syscall.java @@ -237,21 +237,6 @@ public abstract class Syscall { } /** - * Given a system call's name, this will return the corresponding - * Syscall object. If no predefined system call with that name - * is available, this will return null. - * @param name the name of the system call - * @param syscallList system calls list - * @return the Syscall object, or null - */ - static Syscall iterateSyscallByName (String name, Syscall[] syscallList) { - for (int i = 0; i < syscallList.length; ++i) - if (name.equals(syscallList[i].name)) - return syscallList[i]; - return null; - } - - /** * Given a system call's number, this will return the corresponding * Syscall object. Note that system call numbers are platform * dependent. This will return a Syscall object in all cases; if diff --git a/frysk-core/frysk/proc/SyscallTable.java b/frysk-core/frysk/proc/SyscallTable.java index 4f799ec..cc582b6 100644 --- a/frysk-core/frysk/proc/SyscallTable.java +++ b/frysk-core/frysk/proc/SyscallTable.java @@ -62,4 +62,18 @@ public abstract class SyscallTable { */ public abstract Syscall syscallByName (String Name); + /** + * Given a system call's name, this will return the corresponding + * Syscall object. If no predefined system call with that name is + * available, this will return null. + * @param name the name of the system call + * @param syscallList system calls list + * @return the Syscall object, or null + */ + Syscall iterateSyscallByName (String name, Syscall[] syscallList) { + for (int i = 0; i < syscallList.length; ++i) + if (name.equals(syscallList[i].getName())) + return syscallList[i]; + return null; + } } hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Thu Dec 27 20:54:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Thu, 27 Dec 2007 20:54:00 -0000 Subject: [SCM] master: Delete SyscallEventInfo.number(). Message-ID: <20071227205449.10172.qmail@sourceware.org> The branch, master has been updated via 90b3799ab0d02de462524c4d60a66a9b3e51fa0c (commit) from 313740045e4275ac1cef9e089e3042cff90d6d0e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 90b3799ab0d02de462524c4d60a66a9b3e51fa0c Author: Andrew Cagney Date: Thu Dec 27 15:31:52 2007 -0500 Delete SyscallEventInfo.number(). frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Syscall.java (INVALID): New. * SyscallEventInfo.java (number(Task)): Delete. (ENTER, EXIT, UNKNOWN): Delete. * Task.java (notifySyscallExit()): Update. (notifySyscallEnter()): Update. * TestSyscallSignal.java: Update. * TestTaskSyscallObserver.java: Update. * LinuxIa32.java: Update. * LinuxPPC32.java: Update. * LinuxX8664.java: Update. * LinuxPPC64.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 12 +++ frysk-core/frysk/proc/LinuxIa32.java | 2 +- frysk-core/frysk/proc/LinuxPPC32.java | 2 +- frysk-core/frysk/proc/LinuxPPC64.java | 2 +- frysk-core/frysk/proc/LinuxX8664.java | 2 +- frysk-core/frysk/proc/Syscall.java | 11 +++- frysk-core/frysk/proc/SyscallEventInfo.java | 36 +++------- frysk-core/frysk/proc/SyscallTable.java | 1 + frysk-core/frysk/proc/Task.java | 76 ++++++++----------- frysk-core/frysk/proc/TestSyscallSignal.java | 3 - frysk-core/frysk/proc/TestTaskSyscallObserver.java | 13 ---- 11 files changed, 69 insertions(+), 91 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 5c8202c..c877298 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,17 @@ 2007-12-27 Andrew Cagney + * Syscall.java (INVALID): New. + * SyscallEventInfo.java (number(Task)): Delete. + (ENTER, EXIT, UNKNOWN): Delete. + * Task.java (notifySyscallExit()): Update. + (notifySyscallEnter()): Update. + * TestSyscallSignal.java: Update. + * TestTaskSyscallObserver.java: Update. + * LinuxIa32.java: Update. + * LinuxPPC32.java: Update. + * LinuxX8664.java: Update. + * LinuxPPC64.java: Update. + * Syscall.java (iterateSyscallByName(String,Syscall[])): Move to ... * SyscallTable.java (iterateSyscallByName(String,Syscall[])): New. * LinuxX8664Syscall.java: Update. diff --git a/frysk-core/frysk/proc/LinuxIa32.java b/frysk-core/frysk/proc/LinuxIa32.java index b488ff8..695b3db 100644 --- a/frysk-core/frysk/proc/LinuxIa32.java +++ b/frysk-core/frysk/proc/LinuxIa32.java @@ -170,7 +170,7 @@ class LinuxIa32 implements SyscallEventDecoder, Isa { public SyscallEventInfo getSyscallEventInfo() { if (info == null) info = new SyscallEventInfo() { - public int number (Task task) { + private int number(Task task) { return (int)task.getRegister(IA32Registers.ORIG_EAX); } public Syscall getSyscall(Task task) { diff --git a/frysk-core/frysk/proc/LinuxPPC32.java b/frysk-core/frysk/proc/LinuxPPC32.java index 149b0c0..83f6836 100644 --- a/frysk-core/frysk/proc/LinuxPPC32.java +++ b/frysk-core/frysk/proc/LinuxPPC32.java @@ -68,7 +68,7 @@ class LinuxPPC32 extends IsaPowerPC implements SyscallEventDecoder { public SyscallEventInfo getSyscallEventInfo () { if (info == null) info = new SyscallEventInfo () { - public int number (Task task) { + private int number(Task task) { logger.log (Level.FINE, "Get GPR0\n"); return (int)task.getRegister(PPC32Registers.GPR0); } diff --git a/frysk-core/frysk/proc/LinuxPPC64.java b/frysk-core/frysk/proc/LinuxPPC64.java index b6c2e83..e793660 100644 --- a/frysk-core/frysk/proc/LinuxPPC64.java +++ b/frysk-core/frysk/proc/LinuxPPC64.java @@ -68,7 +68,7 @@ class LinuxPPC64 extends IsaPowerPC implements SyscallEventDecoder public SyscallEventInfo getSyscallEventInfo () { if (info == null) info = new SyscallEventInfo () { - public int number (Task task) { + private int number(Task task) { logger.log (Level.FINE, "Get GPR0\n"); return (int)task.getRegister(PPC64Registers.GPR0); } diff --git a/frysk-core/frysk/proc/LinuxX8664.java b/frysk-core/frysk/proc/LinuxX8664.java index 2fa440f..7bd8ff8 100644 --- a/frysk-core/frysk/proc/LinuxX8664.java +++ b/frysk-core/frysk/proc/LinuxX8664.java @@ -174,7 +174,7 @@ class LinuxX8664 implements SyscallEventDecoder, Isa { public SyscallEventInfo getSyscallEventInfo () { if (info == null) info = new SyscallEventInfo () { - public int number (Task task) { + private int number(Task task) { return (int)task.getRegister(X8664Registers.ORIG_RAX); } public Syscall getSyscall(Task task) { diff --git a/frysk-core/frysk/proc/Syscall.java b/frysk-core/frysk/proc/Syscall.java index c6f26fd..ac012da 100644 --- a/frysk-core/frysk/proc/Syscall.java +++ b/frysk-core/frysk/proc/Syscall.java @@ -49,6 +49,15 @@ import java.util.HashMap; */ public abstract class Syscall { + public static final Syscall INVALID = new Syscall("", -1) { + public long getArguments(Task task, int n) { + return 0; + } + public long getReturnCode(Task task) { + return 0; + } + }; + private final int number; private final int numArgs; private final String name; @@ -257,7 +266,7 @@ public abstract class Syscall { unknownSyscalls = syscallTable.getUnknownSyscalls(); if (num < 0) { - throw new RuntimeException ("Negative syscall number: " + num); + return INVALID; } else if (num >= syscallList.length) { synchronized (unknownSyscalls) { Integer key = new Integer(num); diff --git a/frysk-core/frysk/proc/SyscallEventInfo.java b/frysk-core/frysk/proc/SyscallEventInfo.java index fa6e5fd..9873250 100644 --- a/frysk-core/frysk/proc/SyscallEventInfo.java +++ b/frysk-core/frysk/proc/SyscallEventInfo.java @@ -42,31 +42,15 @@ package frysk.proc; * An object that retrieves syscall info from a task. Used in combination * with Syscall and a Task object to retrieve information. */ -public abstract class SyscallEventInfo -{ - public final static int ENTER = 0; - public final static int EXIT = 1; - public final static int UNKNOWN = -1; - - /** - * Returns the syscall number of the system call the the - * given task just made. - * This function assumes that the given task is currently - * in the system call. This function should not be called - * otherwise. - * @param task the task which made the system call - * @return the number of the system call that was made - */ - public abstract int number (Task task); - - /** - * getSyscall does everything on the assumption that there is a - * system, and programmer want to know the information about this - * system call. A meaningless Syscall object is returned when - * getSyscall is called at the moment no system call occurs. - * @param task the task that system call occurred - * @return the Syscall object - */ - public abstract Syscall getSyscall (Task task); +public abstract class SyscallEventInfo { + /** + * getSyscall does everything on the assumption that there is a + * system, and programmer want to know the information about this + * system call. A meaningless Syscall object is returned when + * getSyscall is called at the moment no system call occurs. + * @param task the task that system call occurred + * @return the Syscall object + */ + public abstract Syscall getSyscall (Task task); } diff --git a/frysk-core/frysk/proc/SyscallTable.java b/frysk-core/frysk/proc/SyscallTable.java index cc582b6..245fb42 100644 --- a/frysk-core/frysk/proc/SyscallTable.java +++ b/frysk-core/frysk/proc/SyscallTable.java @@ -46,6 +46,7 @@ import java.util.HashMap; */ public abstract class SyscallTable { + /** * @return Syscall[] return system call list for this Linux. */ diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index f22b1b0..2d5f4b3 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -758,51 +758,39 @@ public abstract class Task logger.log(Level.FINE, "{0} requestDeleteSyscallObserver\n", this); } - /** - * Notify all Syscall observers of this Task's entry into a system call. - * Return the number of blocking observers. - * - * XXX: Should not be public. - */ - public int notifySyscallEnter () - { - logger.log(Level.FINE, - "{0} notifySyscallEnter {1}\n", - new Object[] - { this, - new Integer(this.getSyscallEventInfo().number(this)) - }); - for (Iterator i = syscallObservers.iterator(); i.hasNext();) - { - TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); - if (observer.updateSyscallEnter(this) == Action.BLOCK) - blockers.add(observer); - } - return blockers.size(); - } + /** + * Notify all Syscall observers of this Task's entry into a system + * call. Return the number of blocking observers. + * + * XXX: Should not be public. + */ + public int notifySyscallEnter () { + logger.log(Level.FINE, + "{0} notifySyscallEnter\n", this); + for (Iterator i = syscallObservers.iterator(); i.hasNext();) { + TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); + if (observer.updateSyscallEnter(this) == Action.BLOCK) + blockers.add(observer); + } + return blockers.size(); + } - /** - * Notify all Syscall observers of this Task's exit from a system - * call. Return the number of blocking observers. - * - * XXX: Should not be public. - */ - public int notifySyscallExit () - { - logger.log(Level.FINE, - "{0} notifySyscallExit {1}\n", - new Object[] - { this, - new Integer(this.getSyscallEventInfo().number(this)) - }); - for (Iterator i = syscallObservers.iterator(); i.hasNext();) - { - TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); - if (observer.updateSyscallExit(this) == Action.BLOCK) - blockers.add(observer); - } - return blockers.size(); - } + /** + * Notify all Syscall observers of this Task's exit from a system + * call. Return the number of blocking observers. + * + * XXX: Should not be public. + */ + public int notifySyscallExit () { + logger.log(Level.FINE, + "{0} notifySyscallExit {1}\n", this); + for (Iterator i = syscallObservers.iterator(); i.hasNext();) { + TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); + if (observer.updateSyscallExit(this) == Action.BLOCK) + blockers.add(observer); + } + return blockers.size(); + } /** * Set of Signaled observers. diff --git a/frysk-core/frysk/proc/TestSyscallSignal.java b/frysk-core/frysk/proc/TestSyscallSignal.java index 44cfbaf..737b832 100644 --- a/frysk-core/frysk/proc/TestSyscallSignal.java +++ b/frysk-core/frysk/proc/TestSyscallSignal.java @@ -273,9 +273,6 @@ public class TestSyscallSignal public Action updateSyscallExit(Task task) { SyscallEventInfo syscallEventInfo = getSyscallEventInfo(task); - // XXX - workaround for broken syscall detection on exit - if (syscallEventInfo.number(task) == -1) - return Action.CONTINUE; frysk.proc.Syscall syscall = syscallEventInfo.getSyscall(task); if (opensys.equals(syscall) || closesys.equals(syscall)) { exited++; diff --git a/frysk-core/frysk/proc/TestTaskSyscallObserver.java b/frysk-core/frysk/proc/TestTaskSyscallObserver.java index d212969..05d008c 100644 --- a/frysk-core/frysk/proc/TestTaskSyscallObserver.java +++ b/frysk-core/frysk/proc/TestTaskSyscallObserver.java @@ -100,10 +100,6 @@ public class TestTaskSyscallObserver enter++; SyscallEventInfo syscallEventInfo = getSyscallEventInfo(task); - // XXX - workaround for broken syscall detection on exit - if (syscallEventInfo.number(task) == - 1) - return Action.CONTINUE; - frysk.proc.Syscall syscall = syscallEventInfo.getSyscall(task); if (execvesys.equals(syscall)) { @@ -420,12 +416,6 @@ public class TestTaskSyscallObserver public Action updateSyscallExit (Task task) { super.updateSyscallExit(task); - SyscallEventInfo syscallEventInfo = getSyscallEventInfo(task); - - // XXX - workaround for broken syscall detection on exit - if (syscallEventInfo.number(task) == - 1) - return Action.CONTINUE; - frysk.proc.Syscall syscall = (frysk.proc.Syscall) syscallCache.remove(task); if (opensys.equals(syscall) && openingTestFile) @@ -535,9 +525,6 @@ public class TestTaskSyscallObserver { super.updateSyscallExit(task); SyscallEventInfo syscallEventInfo = getSyscallEventInfo(task); - // XXX - workaround for broken syscall detection on exit - if (syscallEventInfo.number(task) == - 1) - return Action.CONTINUE; frysk.proc.Syscall syscall = syscallEventInfo.getSyscall(task); if (readsys.equals(syscall)) { hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 01:31:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 01:31:00 -0000 Subject: [SCM] master: Replace Task.getSyscallEventInfo() with .getSyscallTable(). Message-ID: <20071228013059.21968.qmail@sourceware.org> The branch, master has been updated via e68f1caacd4cd7353ae700ca964e3127f6512975 (commit) via 372d1faf476e5dcdd31d26bccf8f0cdb8d628aea (commit) via 31925084aeeb004fc3626aaea599cd6b91e9c11b (commit) via bd7f62167671d79f56e675342f0e90b99bfbfc2b (commit) via 4c882a67462277b14fc0f018b9eb9145444ee345 (commit) from 90b3799ab0d02de462524c4d60a66a9b3e51fa0c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit e68f1caacd4cd7353ae700ca964e3127f6512975 Author: Andrew Cagney Date: Thu Dec 27 20:29:00 2007 -0500 Replace Task.getSyscallEventInfo() with .getSyscallTable(). frysk-core/frysk/ftrace/ChangeLog 2007-12-27 Andrew Cagney * Ftrace.java: Update; use Task.getSyscallTable(). * MappingGuard.java: Ditto. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Task.java (getSyscallTable()): New. (getSyscallEventInfo()): Delete. * TestTaskSyscallObserver.java: Update. * TestSyscallRunning.java: Update. * TestSyscallSignal.java: Update. frysk-gui/frysk/gui/monitor/ChangeLog 2007-12-27 Andrew Cagney * observers/SysCallUtilyInfo.java: Update; use Task.getSyscallTable(). commit 372d1faf476e5dcdd31d26bccf8f0cdb8d628aea Author: Andrew Cagney Date: Thu Dec 27 19:03:22 2007 -0500 Rename SyscallTable.syscallByName(String) to getSyscall(String). frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallTable.java (getSyscall(String)): Rename syscallByName(String). * TestTaskSyscallObserver.java: Update. * TestSyscallsWithAudit.java: Update. * TestSyscallSignal.java: Update. * TestSyscallRunning.java: Update. * LinuxPPC32Syscall.java: Update. * LinuxIa32Syscall.java: Update. * LinuxPPC64Syscall.java: Update. * LinuxX8664Syscall.java: Update. commit 31925084aeeb004fc3626aaea599cd6b91e9c11b Author: Andrew Cagney Date: Thu Dec 27 18:50:36 2007 -0500 Add SyscallTable.getSyscall(Task). frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallTable.java (getSyscall(Task)): Declare. (getSyscall(long)): New. (unknownSyscall(long)): Replace unknownSyscall(int). * LinuxX8664Syscall.java (getSyscall(Task)): New. * LinuxPPC32Syscall.java (getSyscall(Task)): New. * LinuxIa32Syscall.java (getSyscall(Task)): New. * LinuxPPC64Syscall.java (getSyscall(Task)): New. commit bd7f62167671d79f56e675342f0e90b99bfbfc2b Author: Andrew Cagney Date: Thu Dec 27 18:10:55 2007 -0500 Delete SyscallEventDecoder. frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * Isa.java (getSyscallEventInfo()): Declare. * SyscallEventDecoder.java: Delete. * Task.java (getSyscallEventInfo): Update. * LinuxIa32.java: Do not implement SyscallEventDecoder. * LinuxPPC64.java: Ditto. * LinuxPPC32.java: Ditto. * LinuxX8664.java: Ditto. commit 4c882a67462277b14fc0f018b9eb9145444ee345 Author: Andrew Cagney Date: Thu Dec 27 18:02:15 2007 -0500 Replace getUnknownSyscalls() with unknownSyscall(int). frysk-core/frysk/proc/ChangeLog 2007-12-27 Andrew Cagney * SyscallTable.java (getUnknownSyscalls()): Delete. (unknownSyscall(int)): New. * LinuxIa32Syscall.java (getUnknownSyscalls()): Delete. * LinuxPPC32Syscall.java: Ditto. * LinuxX8664Syscall.java: Ditto. * Syscall.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 5 ++ frysk-core/frysk/ftrace/Ftrace.java | 2 +- frysk-core/frysk/ftrace/MappingGuard.java | 6 +- frysk-core/frysk/proc/ChangeLog | 40 +++++++++++++++++ frysk-core/frysk/proc/Isa.java | 2 + frysk-core/frysk/proc/LinuxIa32.java | 2 +- frysk-core/frysk/proc/LinuxIa32Syscall.java | 32 ++++++++++---- frysk-core/frysk/proc/LinuxPPC32.java | 2 +- frysk-core/frysk/proc/LinuxPPC32Syscall.java | 26 +++++++---- frysk-core/frysk/proc/LinuxPPC64.java | 3 +- frysk-core/frysk/proc/LinuxPPC64Syscall.java | 26 +++++++---- frysk-core/frysk/proc/LinuxX8664.java | 2 +- frysk-core/frysk/proc/LinuxX8664Syscall.java | 15 +++---- frysk-core/frysk/proc/Syscall.java | 27 +----------- frysk-core/frysk/proc/SyscallEventDecoder.java | 45 -------------------- frysk-core/frysk/proc/SyscallTable.java | 43 ++++++++++++++++++- frysk-core/frysk/proc/Task.java | 10 +++-- frysk-core/frysk/proc/TestSyscallRunning.java | 10 ++-- frysk-core/frysk/proc/TestSyscallSignal.java | 16 ++++---- frysk-core/frysk/proc/TestSyscallsWithAudit.java | 2 +- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 26 ++++++------ frysk-gui/frysk/gui/monitor/ChangeLog | 5 ++ .../gui/monitor/observers/SysCallUtilyInfo.java | 20 ++++---- 23 files changed, 208 insertions(+), 159 deletions(-) delete mode 100644 frysk-core/frysk/proc/SyscallEventDecoder.java First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index c39f510..a27caee 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,8 @@ +2007-12-27 Andrew Cagney + + * Ftrace.java: Update; use Task.getSyscallTable(). + * MappingGuard.java: Ditto. + 2007-12-21 Andrew Cagney * Ftrace.java: Use Syscall.isNoReturn(). diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java index fee19da..943f497 100644 --- a/frysk-core/frysk/ftrace/Ftrace.java +++ b/frysk-core/frysk/ftrace/Ftrace.java @@ -434,7 +434,7 @@ public class Ftrace public Action updateSyscallEnter(Task task) { frysk.proc.Syscall syscall - = task.getSyscallEventInfo().getSyscall(task); + = task.getSyscallTable().getSyscall(task); String name = syscall.getName(); if (syscall.isNoReturn()) reporter.eventSingle(task, "syscall " + name, diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index 8236237..adc5516 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -289,9 +289,9 @@ class MappingGuard task.requestAddSyscallObserver(this); } - public Action updateSyscallEnter (Task task) - { - frysk.proc.Syscall syscall = task.getSyscallEventInfo().getSyscall(task); + public Action updateSyscallEnter(Task task) { + frysk.proc.Syscall syscall + = task.getSyscallTable().getSyscall(task); syscallCache = syscall; return Action.CONTINUE; } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index c877298..f77d4f8 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,45 @@ 2007-12-27 Andrew Cagney + * Task.java (getSyscallTable()): New. + (getSyscallEventInfo()): Delete. + * TestTaskSyscallObserver.java: Update. + * TestSyscallRunning.java: Update. + * TestSyscallSignal.java: Update. + + * SyscallTable.java (getSyscall(String)): Rename + syscallByName(String). + * TestTaskSyscallObserver.java: Update. + * TestSyscallsWithAudit.java: Update. + * TestSyscallSignal.java: Update. + * TestSyscallRunning.java: Update. + * LinuxPPC32Syscall.java: Update. + * LinuxIa32Syscall.java: Update. + * LinuxPPC64Syscall.java: Update. + * LinuxX8664Syscall.java: Update. + + * SyscallTable.java (getSyscall(Task)): Declare. + (getSyscall(long)): New. + (unknownSyscall(long)): Replace unknownSyscall(int). + * LinuxX8664Syscall.java (getSyscall(Task)): New. + * LinuxPPC32Syscall.java (getSyscall(Task)): New. + * LinuxIa32Syscall.java (getSyscall(Task)): New. + * LinuxPPC64Syscall.java (getSyscall(Task)): New. + + * Isa.java (getSyscallEventInfo()): Declare. + * SyscallEventDecoder.java: Delete. + * Task.java (getSyscallEventInfo): Update. + * LinuxIa32.java: Do not implement SyscallEventDecoder. + * LinuxPPC64.java: Ditto. + * LinuxPPC32.java: Ditto. + * LinuxX8664.java: Ditto. + + * SyscallTable.java (getUnknownSyscalls()): Delete. + (unknownSyscall(int)): New. + * LinuxIa32Syscall.java (getUnknownSyscalls()): Delete. + * LinuxPPC32Syscall.java: Ditto. + * LinuxX8664Syscall.java: Ditto. + * Syscall.java: Update. + * Syscall.java (INVALID): New. * SyscallEventInfo.java (number(Task)): Delete. (ENTER, EXIT, UNKNOWN): Delete. diff --git a/frysk-core/frysk/proc/Isa.java b/frysk-core/frysk/proc/Isa.java index 814a4bf..a22f9f9 100644 --- a/frysk-core/frysk/proc/Isa.java +++ b/frysk-core/frysk/proc/Isa.java @@ -117,4 +117,6 @@ public interface Isa * the sig return system call. */ boolean isAtSyscallSigReturn(Task task); + + SyscallEventInfo getSyscallEventInfo (); } diff --git a/frysk-core/frysk/proc/LinuxIa32.java b/frysk-core/frysk/proc/LinuxIa32.java index 695b3db..c069c10 100644 --- a/frysk-core/frysk/proc/LinuxIa32.java +++ b/frysk-core/frysk/proc/LinuxIa32.java @@ -44,7 +44,7 @@ import inua.eio.ByteBuffer; import java.util.List; import java.util.LinkedList; -class LinuxIa32 implements SyscallEventDecoder, Isa { +class LinuxIa32 implements Isa { private static final Instruction IA32Breakpoint = new Instruction(new byte[] { (byte)0xcc }, false); diff --git a/frysk-core/frysk/proc/LinuxIa32Syscall.java b/frysk-core/frysk/proc/LinuxIa32Syscall.java index 121eb00..b0087e3 100644 --- a/frysk-core/frysk/proc/LinuxIa32Syscall.java +++ b/frysk-core/frysk/proc/LinuxIa32Syscall.java @@ -39,20 +39,12 @@ package frysk.proc; -import java.util.HashMap; import frysk.isa.IA32Registers; public class LinuxIa32Syscall extends SyscallTable { static final int SOCKET_NUM = 102; static final int IPC_NUM = 117; - // This is used to keep track of syscalls whose number we do not - // know. - static HashMap unknownSyscalls = new HashMap(); - public HashMap getUnknownSyscalls() { - return unknownSyscalls; - } - static class Ia32Syscall extends Syscall { Ia32Syscall(String name, int number, int numArgs, String argList, boolean noreturn) { @@ -538,7 +530,29 @@ public class LinuxIa32Syscall extends SyscallTable { } } - public Syscall syscallByName(String name) { + public Syscall getSyscall(Task task) { + long number = task.getRegister(IA32Registers.ORIG_EAX); + if (number != SOCKET_NUM && number != IPC_NUM) + return getSyscall(number); + else { + /** sub syscall number is in %ebx. */ + int subSyscallNumber = (int) task.getRegister(IA32Registers.EBX); + + if (number == SOCKET_NUM) { + if (subSyscallNumber < socketSubcallList.length) + return socketSubcallList[subSyscallNumber]; + else + return unknownSocketSubSyscall; + } else { + if (subSyscallNumber < ipcSubcallList.length) + return ipcSubcallList[subSyscallNumber]; + else + return unknownIpcSubSyscall; + } + } + } + + public Syscall getSyscall(String name) { Syscall syscall; syscall = iterateSyscallByName(name, LinuxIa32Syscall.syscallList); if (syscall != null) diff --git a/frysk-core/frysk/proc/LinuxPPC32.java b/frysk-core/frysk/proc/LinuxPPC32.java index 83f6836..212c8e7 100644 --- a/frysk-core/frysk/proc/LinuxPPC32.java +++ b/frysk-core/frysk/proc/LinuxPPC32.java @@ -45,7 +45,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import frysk.isa.PPC32Registers; -class LinuxPPC32 extends IsaPowerPC implements SyscallEventDecoder { +class LinuxPPC32 extends IsaPowerPC { LinuxPPC32() { //In Power32 the PC will be in Link Register diff --git a/frysk-core/frysk/proc/LinuxPPC32Syscall.java b/frysk-core/frysk/proc/LinuxPPC32Syscall.java index c467326..81610eb 100644 --- a/frysk-core/frysk/proc/LinuxPPC32Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC32Syscall.java @@ -40,7 +40,6 @@ package frysk.proc; -import java.util.HashMap; import frysk.isa.PPC32Registers; /** @@ -53,13 +52,6 @@ public class LinuxPPC32Syscall extends SyscallTable { private static final int SOCKET_NUM = 102; private static final int IPC_NUM = 117; - // This is used to keep track of syscalls whose number we do not - // know. - static final HashMap unknownSyscalls = new HashMap(); - public HashMap getUnknownSyscalls() { - return unknownSyscalls; - } - static private class PowerPCSyscall extends Syscall { PowerPCSyscall(String name, int number, int numArgs, String argList, boolean noreturn) { @@ -526,7 +518,7 @@ public class LinuxPPC32Syscall extends SyscallTable { } } - public Syscall syscallByName(String name) { + public Syscall getSyscall(String name) { Syscall syscall; syscall = iterateSyscallByName(name, LinuxPPC32Syscall.syscallList); if (syscall != null) @@ -540,4 +532,20 @@ public class LinuxPPC32Syscall extends SyscallTable { return null; } + public Syscall getSyscall(Task task) { + long number = task.getRegister(PPC32Registers.GPR0); + if (number != SOCKET_NUM && number != IPC_NUM) + return getSyscall(number); + else { + /** sub syscall number is in . */ + int subSyscallNumber = 0; + subSyscallNumber = (int) task.getRegister(PPC32Registers.ORIGR3); + if (number == SOCKET_NUM) { + return socketSubcallList[subSyscallNumber]; + } else { + return ipcSubcallList[subSyscallNumber]; + } + } + } + } diff --git a/frysk-core/frysk/proc/LinuxPPC64.java b/frysk-core/frysk/proc/LinuxPPC64.java index e793660..f082ea6 100644 --- a/frysk-core/frysk/proc/LinuxPPC64.java +++ b/frysk-core/frysk/proc/LinuxPPC64.java @@ -44,8 +44,7 @@ import java.util.logging.Level; import java.util.logging.Logger; import frysk.isa.PPC64Registers; -class LinuxPPC64 extends IsaPowerPC implements SyscallEventDecoder -{ +class LinuxPPC64 extends IsaPowerPC { LinuxPPC64() { super(PPC64Registers.NIP); } diff --git a/frysk-core/frysk/proc/LinuxPPC64Syscall.java b/frysk-core/frysk/proc/LinuxPPC64Syscall.java index f9507c1..76072c8 100644 --- a/frysk-core/frysk/proc/LinuxPPC64Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC64Syscall.java @@ -40,7 +40,6 @@ package frysk.proc; -import java.util.HashMap; import frysk.isa.PPC64Registers; /** @@ -53,13 +52,6 @@ public class LinuxPPC64Syscall extends SyscallTable { private static final int SOCKET_NUM = 102; private static final int IPC_NUM = 117; - // This is used to keep track of syscalls whose number we do not - // know. - static final HashMap unknownSyscalls = new HashMap(); - public HashMap getUnknownSyscalls() { - return unknownSyscalls; - } - static private class PowerPCSyscall extends Syscall { @@ -532,7 +524,7 @@ public class LinuxPPC64Syscall extends SyscallTable { } } - public Syscall syscallByName(String name) { + public Syscall getSyscall(String name) { Syscall syscall; syscall = iterateSyscallByName(name, LinuxPPC64Syscall.syscallList); if (syscall != null) @@ -546,4 +538,20 @@ public class LinuxPPC64Syscall extends SyscallTable { return null; } + public Syscall getSyscall(Task task) { + long number = task.getRegister(PPC64Registers.GPR0); + if (number != SOCKET_NUM && number != IPC_NUM) + return getSyscall(number); + else { + /** sub syscall number is in . */ + int subSyscallNumber = 0; + subSyscallNumber = (int) task.getRegister(PPC64Registers.ORIGR3); + if (number == SOCKET_NUM) { + return socketSubcallList[subSyscallNumber]; + } else { + return ipcSubcallList[subSyscallNumber]; + } + } + } + } diff --git a/frysk-core/frysk/proc/LinuxX8664.java b/frysk-core/frysk/proc/LinuxX8664.java index 7bd8ff8..8ab5030 100644 --- a/frysk-core/frysk/proc/LinuxX8664.java +++ b/frysk-core/frysk/proc/LinuxX8664.java @@ -45,7 +45,7 @@ import java.util.List; import inua.eio.ByteBuffer; import frysk.isa.X8664Registers; -class LinuxX8664 implements SyscallEventDecoder, Isa { +class LinuxX8664 implements Isa { private static final Instruction X8664Breakpoint = new Instruction(new byte[] { (byte)0xcc }, false); diff --git a/frysk-core/frysk/proc/LinuxX8664Syscall.java b/frysk-core/frysk/proc/LinuxX8664Syscall.java index 3f8e825..17039d0 100644 --- a/frysk-core/frysk/proc/LinuxX8664Syscall.java +++ b/frysk-core/frysk/proc/LinuxX8664Syscall.java @@ -39,18 +39,10 @@ package frysk.proc; -import java.util.HashMap; import frysk.isa.X8664Registers; public class LinuxX8664Syscall extends SyscallTable { - // This is used to keep track of syscalls whose number we do not - // know. - static HashMap unknownSyscalls = new HashMap(); - public HashMap getUnknownSyscalls() { - return unknownSyscalls; - } - static class X8664Syscall extends Syscall { X8664Syscall(String name, int number, int numArgs, String argList, boolean noreturn) { @@ -388,7 +380,12 @@ public class LinuxX8664Syscall extends SyscallTable { return Syscall.syscallByNum(number, task); } - public Syscall syscallByName (String name) { + public Syscall getSyscall(String name) { return iterateSyscallByName(name, LinuxX8664Syscall.syscallList); } + + public Syscall getSyscall(Task task) { + long number = task.getRegister(X8664Registers.ORIG_RAX); + return getSyscall(number); + } } diff --git a/frysk-core/frysk/proc/Syscall.java b/frysk-core/frysk/proc/Syscall.java index ac012da..902e721 100644 --- a/frysk-core/frysk/proc/Syscall.java +++ b/frysk-core/frysk/proc/Syscall.java @@ -40,7 +40,6 @@ package frysk.proc; import inua.util.PrintWriter; -import java.util.HashMap; /** * A class that holds static information about a system call. It is @@ -258,39 +257,15 @@ public abstract class Syscall { */ public static Syscall syscallByNum(int num, Task task) { Syscall[] syscallList; - HashMap unknownSyscalls; SyscallTable syscallTable = SyscallTableFactory.getSyscallTable(task.getISA()); syscallList = syscallTable.getSyscallList(); - unknownSyscalls = syscallTable.getUnknownSyscalls(); if (num < 0) { return INVALID; } else if (num >= syscallList.length) { - synchronized (unknownSyscalls) { - Integer key = new Integer(num); - if (unknownSyscalls.containsKey(key)) - return (Syscall) unknownSyscalls.get(key); - - class UnknownSyscall extends Syscall { - UnknownSyscall (String name, int number) { - super (name, number); - } - - public long getArguments (Task task, int n) { - return 0; - } - public long getReturnCode (Task task) { - return 0; - } - } - Syscall result = new UnknownSyscall("UNKNOWN SYSCALL " + num, num); - - unknownSyscalls.put(key, result); - - return result; - } + return syscallTable.unknownSyscall(num); } else { return syscallList[num]; } diff --git a/frysk-core/frysk/proc/SyscallEventDecoder.java b/frysk-core/frysk/proc/SyscallEventDecoder.java deleted file mode 100644 index 0edfad8..0000000 --- a/frysk-core/frysk/proc/SyscallEventDecoder.java +++ /dev/null @@ -1,45 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2006, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. - -package frysk.proc; - -interface SyscallEventDecoder -{ - SyscallEventInfo getSyscallEventInfo (); -} diff --git a/frysk-core/frysk/proc/SyscallTable.java b/frysk-core/frysk/proc/SyscallTable.java index 245fb42..51c70a3 100644 --- a/frysk-core/frysk/proc/SyscallTable.java +++ b/frysk-core/frysk/proc/SyscallTable.java @@ -55,13 +55,31 @@ public abstract class SyscallTable { /** * @return HashMap return a HashMap for unknown system calls. */ - public abstract HashMap getUnknownSyscalls (); + public Syscall unknownSyscall(long num) { + synchronized (unknownSyscalls) { + Long key = new Long(num); + Syscall syscall = (Syscall)unknownSyscalls.get(key); + if (syscall == null) { + syscall = new Syscall("UNKNOWN SYSCALL " + num, (int)num) { + public long getArguments (Task task, int n) { + return 0; + } + public long getReturnCode (Task task) { + return 0; + } + }; + unknownSyscalls.put(key, syscall); + } + return syscall; + } + } + private HashMap unknownSyscalls = new HashMap(); /** * @return Syscall return system call object if the name could be * found in syscallList, otherwise return null. */ - public abstract Syscall syscallByName (String Name); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 15:14:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 15:14:00 -0000 Subject: [SCM] master: Make things private. Message-ID: <20071228151434.25494.qmail@sourceware.org> The branch, master has been updated via adefecf38be1a74c30c2323a5443196f56580341 (commit) via b71179e3788b37e6c4b3208732ad6e2946528e0a (commit) via 4fbf637ec87dba04f29bbe1c830904f097d9beef (commit) via c39b1b161af512bbd14ca3d2376269cc57cf6ce1 (commit) from e68f1caacd4cd7353ae700ca964e3127f6512975 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit adefecf38be1a74c30c2323a5443196f56580341 Author: Andrew Cagney Date: Fri Dec 28 10:13:51 2007 -0500 Make things private. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * LinuxIa32Syscall.java: Privatize. (getSyscallList()): Delete * LinuxX8664Syscall.java: Ditto. * LinuxPPC64Syscall.java: Ditto. * LinuxPPC64Syscall.java: Ditto. commit b71179e3788b37e6c4b3208732ad6e2946528e0a Author: Andrew Cagney Date: Fri Dec 28 10:06:53 2007 -0500 Make SyscallTable implementation details private. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * SyscallTable.java (getSyscallList()): Delete. (getSyscall(long)): New. (findSubcall(Syscall[],long)): New. (findSubcall(Syscall[],long,Syscall)): New. * LinuxIa32Syscall.java (getSyscall(Task)): Update. (getSyscall(long)): New. * LinuxPPC32Syscall.java (getSyscall(Task)): Update. (getSyscall(long)): New. * LinuxPPC64Syscall.java (getSyscall(Task)): Update. (getSyscall(long)): New. * LinuxX8664Syscall.java (getSyscall(Task)): Update. (getSyscall(long)): New. * TestSyscallsWithAudit.java (syscallTest(int,ISA)): Update. commit 4fbf637ec87dba04f29bbe1c830904f097d9beef Author: Andrew Cagney Date: Fri Dec 28 09:06:42 2007 -0500 Make unknown syscall table 'weak'. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * SyscallTable.java (unknownSyscalls): Change to a static WeakHashMap. (unknownSyscall(long)): Make package private. commit c39b1b161af512bbd14ca3d2376269cc57cf6ce1 Author: Andrew Cagney Date: Fri Dec 28 09:02:26 2007 -0500 Delete code made dead by SyscallTable. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * LinuxX8664.java (getSyscallEventInfo()): Delete. (unknownSyscalls): Delete. * LinuxX8664Syscall.java (syscallByNum(Task,int)): Delete. * LinuxPPC64.java (getSyscallEventInfo()): Delete. (unknownSyscalls): Delete. * LinuxPPC32.java (getSyscallEventInfo()): Delete. (unknownSyscalls): Delete. * Isa.java (getSyscallEventInfo()): Delete. * LinuxPPC64Syscall.java (syscallByNum(Task,int)): Delete. * LinuxPPC32Syscall.java (syscallByNum(Task,int)): Delete. * LinuxIa32.java (getSyscallEventInfo()): Delelete. * LinuxIa32Syscall.java (syscallByNum(Task,int)): Delete. * Syscall.java (syscallByNum(int,Task)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 40 +++++++++ frysk-core/frysk/proc/Isa.java | 2 - frysk-core/frysk/proc/LinuxIa32.java | 15 ---- frysk-core/frysk/proc/LinuxIa32Syscall.java | 74 ++++++----------- frysk-core/frysk/proc/LinuxPPC32.java | 26 ------ frysk-core/frysk/proc/LinuxPPC32Syscall.java | 64 +++++++-------- frysk-core/frysk/proc/LinuxPPC64.java | 24 ------ frysk-core/frysk/proc/LinuxPPC64Syscall.java | 65 +++++++--------- frysk-core/frysk/proc/LinuxX8664.java | 20 ----- frysk-core/frysk/proc/LinuxX8664Syscall.java | 20 ++--- frysk-core/frysk/proc/Syscall.java | 27 ------ frysk-core/frysk/proc/SyscallTable.java | 39 ++++++---- frysk-core/frysk/proc/TestSyscallsWithAudit.java | 95 +++++++++------------- 13 files changed, 190 insertions(+), 321 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index f77d4f8..58b7492 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,43 @@ +2007-12-28 Andrew Cagney + + * LinuxIa32Syscall.java: Privatize. + (getSyscallList()): Delete + * LinuxX8664Syscall.java: Ditto. + * LinuxPPC64Syscall.java: Ditto. + * LinuxPPC64Syscall.java: Ditto. + + * SyscallTable.java (getSyscallList()): Delete. + (getSyscall(long)): New. + (findSubcall(Syscall[],long)): New. + (findSubcall(Syscall[],long,Syscall)): New. + * LinuxIa32Syscall.java (getSyscall(Task)): Update. + (getSyscall(long)): New. + * LinuxPPC32Syscall.java (getSyscall(Task)): Update. + (getSyscall(long)): New. + * LinuxPPC64Syscall.java (getSyscall(Task)): Update. + (getSyscall(long)): New. + * LinuxX8664Syscall.java (getSyscall(Task)): Update. + (getSyscall(long)): New. + * TestSyscallsWithAudit.java (syscallTest(int,ISA)): Update. + + * SyscallTable.java (unknownSyscalls): Change to a static + WeakHashMap. + (unknownSyscall(long)): Make package private. + + * LinuxX8664.java (getSyscallEventInfo()): Delete. + (unknownSyscalls): Delete. + * LinuxX8664Syscall.java (syscallByNum(Task,int)): Delete. + * LinuxPPC64.java (getSyscallEventInfo()): Delete. + (unknownSyscalls): Delete. + * LinuxPPC32.java (getSyscallEventInfo()): Delete. + (unknownSyscalls): Delete. + * Isa.java (getSyscallEventInfo()): Delete. + * LinuxPPC64Syscall.java (syscallByNum(Task,int)): Delete. + * LinuxPPC32Syscall.java (syscallByNum(Task,int)): Delete. + * LinuxIa32.java (getSyscallEventInfo()): Delelete. + * LinuxIa32Syscall.java (syscallByNum(Task,int)): Delete. + * Syscall.java (syscallByNum(int,Task)): Delete. + 2007-12-27 Andrew Cagney * Task.java (getSyscallTable()): New. diff --git a/frysk-core/frysk/proc/Isa.java b/frysk-core/frysk/proc/Isa.java index a22f9f9..814a4bf 100644 --- a/frysk-core/frysk/proc/Isa.java +++ b/frysk-core/frysk/proc/Isa.java @@ -117,6 +117,4 @@ public interface Isa * the sig return system call. */ boolean isAtSyscallSigReturn(Task task); - - SyscallEventInfo getSyscallEventInfo (); } diff --git a/frysk-core/frysk/proc/LinuxIa32.java b/frysk-core/frysk/proc/LinuxIa32.java index c069c10..eb74bd1 100644 --- a/frysk-core/frysk/proc/LinuxIa32.java +++ b/frysk-core/frysk/proc/LinuxIa32.java @@ -165,19 +165,4 @@ class LinuxIa32 implements Isa { isa = new LinuxIa32 (); return isa; } - - private SyscallEventInfo info; - public SyscallEventInfo getSyscallEventInfo() { - if (info == null) - info = new SyscallEventInfo() { - private int number(Task task) { - return (int)task.getRegister(IA32Registers.ORIG_EAX); - } - public Syscall getSyscall(Task task) { - int number = this.number(task); - return LinuxIa32Syscall.syscallByNum (task, number); - } - }; - return info; - } } diff --git a/frysk-core/frysk/proc/LinuxIa32Syscall.java b/frysk-core/frysk/proc/LinuxIa32Syscall.java index b0087e3..b2ad684 100644 --- a/frysk-core/frysk/proc/LinuxIa32Syscall.java +++ b/frysk-core/frysk/proc/LinuxIa32Syscall.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006 Red Hat Inc. +// Copyright 2006, 2007 Red Hat Inc. // // FRYSK is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by @@ -42,10 +42,10 @@ package frysk.proc; import frysk.isa.IA32Registers; public class LinuxIa32Syscall extends SyscallTable { - static final int SOCKET_NUM = 102; - static final int IPC_NUM = 117; + private static final int SOCKET_NUM = 102; + private static final int IPC_NUM = 117; - static class Ia32Syscall extends Syscall { + private static class Ia32Syscall extends Syscall { Ia32Syscall(String name, int number, int numArgs, String argList, boolean noreturn) { super(name, number, numArgs, argList, noreturn); @@ -88,7 +88,7 @@ public class LinuxIa32Syscall extends SyscallTable { } } - static Syscall[] syscallList = { + private static Syscall[] syscallList = { new Ia32Syscall("restart_syscall", 0), new Ia32Syscall("exit", 1, 1), new Ia32Syscall("fork", 2, 0, "i: "), @@ -417,7 +417,7 @@ public class LinuxIa32Syscall extends SyscallTable { }; - static class SocketSubSyscall extends Ia32Syscall { + private static class SocketSubSyscall extends Ia32Syscall { SocketSubSyscall(String name, int number) { super(name, number); } @@ -433,11 +433,8 @@ public class LinuxIa32Syscall extends SyscallTable { return task.getMemory().getInt(base + (n-1) * 4); } } - public Syscall[] getSyscallList() { - return syscallList; - } - static Syscall[] socketSubcallList = { + private static Syscall[] socketSubcallList = { new SocketSubSyscall("", SOCKET_NUM), new SocketSubSyscall("socket", SOCKET_NUM, 3, "i:iii"), new SocketSubSyscall("bind", SOCKET_NUM, 3, "i:ipi "), @@ -461,7 +458,7 @@ public class LinuxIa32Syscall extends SyscallTable { private static final SocketSubSyscall unknownSocketSubSyscall = new SocketSubSyscall("", SOCKET_NUM); - static class IpcSubSyscall extends Ia32Syscall { + private static class IpcSubSyscall extends Ia32Syscall { IpcSubSyscall(String name, int number) { super(name, number); } @@ -478,7 +475,7 @@ public class LinuxIa32Syscall extends SyscallTable { } /**FIXME: No argument list here.*/ - static Syscall[] ipcSubcallList = { + private static Syscall[] ipcSubcallList = { new IpcSubSyscall("", IPC_NUM), new IpcSubSyscall("semop", IPC_NUM), new IpcSubSyscall("semget", IPC_NUM), @@ -509,47 +506,20 @@ public class LinuxIa32Syscall extends SyscallTable { private static final IpcSubSyscall unknownIpcSubSyscall = new IpcSubSyscall("", IPC_NUM); - public static Syscall syscallByNum(Task task, int number) { - if (number != SOCKET_NUM && number != IPC_NUM) - return Syscall.syscallByNum(number, task); - else { - /** sub syscall number is in %ebx. */ - int subSyscallNumber = (int) task.getRegister(IA32Registers.EBX); - - if (number == SOCKET_NUM) { - if (subSyscallNumber < socketSubcallList.length) - return socketSubcallList[subSyscallNumber]; - else - return unknownSocketSubSyscall; - } else { - if (subSyscallNumber < ipcSubcallList.length) - return ipcSubcallList[subSyscallNumber]; - else - return unknownIpcSubSyscall; - } - } + private long subcall(Task task) { + return task.getRegister(IA32Registers.EBX); } public Syscall getSyscall(Task task) { - long number = task.getRegister(IA32Registers.ORIG_EAX); - if (number != SOCKET_NUM && number != IPC_NUM) - return getSyscall(number); - else { - /** sub syscall number is in %ebx. */ - int subSyscallNumber = (int) task.getRegister(IA32Registers.EBX); - - if (number == SOCKET_NUM) { - if (subSyscallNumber < socketSubcallList.length) - return socketSubcallList[subSyscallNumber]; - else - return unknownSocketSubSyscall; - } else { - if (subSyscallNumber < ipcSubcallList.length) - return ipcSubcallList[subSyscallNumber]; - else - return unknownIpcSubSyscall; - } - } + long syscall = task.getRegister(IA32Registers.ORIG_EAX); + if (syscall == SOCKET_NUM) + return findSubcall(socketSubcallList, subcall(task), + unknownSocketSubSyscall); + else if (syscall != IPC_NUM) + return findSubcall(ipcSubcallList, subcall(task), + unknownIpcSubSyscall); + else + return getSyscall(syscall); } public Syscall getSyscall(String name) { @@ -568,4 +538,8 @@ public class LinuxIa32Syscall extends SyscallTable { return null; } + Syscall getSyscall(long num) { + return findSyscall(syscallList, num); + } + } diff --git a/frysk-core/frysk/proc/LinuxPPC32.java b/frysk-core/frysk/proc/LinuxPPC32.java index 212c8e7..a4806d6 100644 --- a/frysk-core/frysk/proc/LinuxPPC32.java +++ b/frysk-core/frysk/proc/LinuxPPC32.java @@ -39,10 +39,6 @@ package frysk.proc; -import java.util.HashMap; - -import java.util.logging.Level; -import java.util.logging.Logger; import frysk.isa.PPC32Registers; class LinuxPPC32 extends IsaPowerPC { @@ -52,32 +48,10 @@ class LinuxPPC32 extends IsaPowerPC { super(PPC32Registers.LR); } - private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); private static LinuxPPC32 isa; static LinuxPPC32 isaSingleton () { if (isa == null) isa = new LinuxPPC32 (); return isa; } - - // This is used to keep track of syscalls whose number we do not - // know. - static HashMap unknownSyscalls = new HashMap(); - - private SyscallEventInfo info; - public SyscallEventInfo getSyscallEventInfo () { - if (info == null) - info = new SyscallEventInfo () { - private int number(Task task) { - logger.log (Level.FINE, "Get GPR0\n"); - return (int)task.getRegister(PPC32Registers.GPR0); - } - public Syscall getSyscall(Task task) { - int number = this.number(task); - return LinuxPPC32Syscall.syscallByNum (task, number); - } - }; - return info; - } - } diff --git a/frysk-core/frysk/proc/LinuxPPC32Syscall.java b/frysk-core/frysk/proc/LinuxPPC32Syscall.java index 81610eb..670f281 100644 --- a/frysk-core/frysk/proc/LinuxPPC32Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC32Syscall.java @@ -101,7 +101,7 @@ public class LinuxPPC32Syscall extends SyscallTable { } } - static Syscall[] syscallList = { + static private Syscall[] syscallList = { new PowerPCSyscall(0), new PowerPCSyscall("exit", 1, 1), new PowerPCSyscall("fork", 2, 0, "i: "), @@ -413,11 +413,8 @@ public class LinuxPPC32Syscall extends SyscallTable { new PowerPCSyscall("sync_file_range2", 308), new PowerPCSyscall("fallocate", 309) }; - public Syscall[] getSyscallList() { - return syscallList; - } - static class SocketSubSyscall extends PowerPCSyscall { + static private class SocketSubSyscall extends PowerPCSyscall { SocketSubSyscall(String name, int number) { super(name, number); } @@ -432,7 +429,7 @@ public class LinuxPPC32Syscall extends SyscallTable { } } - static Syscall[] socketSubcallList = { + private static Syscall[] socketSubcallList = { new SocketSubSyscall("", SOCKET_NUM), new SocketSubSyscall("socket", SOCKET_NUM, 3, "i:iii"), new SocketSubSyscall("bind", SOCKET_NUM, 3, "i:ipi "), @@ -454,7 +451,7 @@ public class LinuxPPC32Syscall extends SyscallTable { }; - static class IpcSubSyscall + private static class IpcSubSyscall extends PowerPCSyscall { IpcSubSyscall(String name, int number) @@ -476,7 +473,7 @@ public class LinuxPPC32Syscall extends SyscallTable { } } - static Syscall[] ipcSubcallList = { + private static Syscall[] ipcSubcallList = { new IpcSubSyscall("semop", IPC_NUM), new IpcSubSyscall("semget", IPC_NUM), new IpcSubSyscall("semctl", IPC_NUM), @@ -503,21 +500,6 @@ public class LinuxPPC32Syscall extends SyscallTable { new IpcSubSyscall("shmctl", IPC_NUM) }; - public static Syscall syscallByNum(Task task, int number) { - if (number != SOCKET_NUM && number != IPC_NUM) - return Syscall.syscallByNum(number, task); - else { - /** sub syscall number is in . */ - int subSyscallNumber = 0; - subSyscallNumber = (int) task.getRegister(PPC32Registers.ORIGR3); - if (number == SOCKET_NUM) { - return socketSubcallList[subSyscallNumber]; - } else { - return ipcSubcallList[subSyscallNumber]; - } - } - } - public Syscall getSyscall(String name) { Syscall syscall; syscall = iterateSyscallByName(name, LinuxPPC32Syscall.syscallList); @@ -532,20 +514,30 @@ public class LinuxPPC32Syscall extends SyscallTable { return null; } + private static final SocketSubSyscall unknownSocketSubSyscall = + new SocketSubSyscall("", SOCKET_NUM); + + private static final IpcSubSyscall unknownIpcSubSyscall = + new IpcSubSyscall("", IPC_NUM); + + private long subcall(Task task) { + return task.getRegister(PPC32Registers.ORIGR3); + } + public Syscall getSyscall(Task task) { - long number = task.getRegister(PPC32Registers.GPR0); - if (number != SOCKET_NUM && number != IPC_NUM) - return getSyscall(number); - else { - /** sub syscall number is in . */ - int subSyscallNumber = 0; - subSyscallNumber = (int) task.getRegister(PPC32Registers.ORIGR3); - if (number == SOCKET_NUM) { - return socketSubcallList[subSyscallNumber]; - } else { - return ipcSubcallList[subSyscallNumber]; - } - } + long syscall = task.getRegister(PPC32Registers.GPR0); + if (syscall == SOCKET_NUM) + return findSubcall(socketSubcallList, subcall(task), + unknownSocketSubSyscall); + else if (syscall != IPC_NUM) + return findSubcall(ipcSubcallList, subcall(task), + unknownIpcSubSyscall); + else + return getSyscall(syscall); + } + + Syscall getSyscall(long num) { + return findSyscall(syscallList, num); } } diff --git a/frysk-core/frysk/proc/LinuxPPC64.java b/frysk-core/frysk/proc/LinuxPPC64.java index f082ea6..444ebb0 100644 --- a/frysk-core/frysk/proc/LinuxPPC64.java +++ b/frysk-core/frysk/proc/LinuxPPC64.java @@ -39,9 +39,6 @@ package frysk.proc; -import java.util.HashMap; -import java.util.logging.Level; -import java.util.logging.Logger; import frysk.isa.PPC64Registers; class LinuxPPC64 extends IsaPowerPC { @@ -49,7 +46,6 @@ class LinuxPPC64 extends IsaPowerPC { super(PPC64Registers.NIP); } - private static Logger logger = Logger.getLogger(ProcLogger.LOGGER_ID); private static LinuxPPC64 isa; static LinuxPPC64 isaSingleton () @@ -58,24 +54,4 @@ class LinuxPPC64 extends IsaPowerPC { isa = new LinuxPPC64 (); return isa; } - - // This is used to keep track of syscalls whose number we do not - // know. - static HashMap unknownSyscalls = new HashMap(); - - private SyscallEventInfo info; - public SyscallEventInfo getSyscallEventInfo () { - if (info == null) - info = new SyscallEventInfo () { - private int number(Task task) { - logger.log (Level.FINE, "Get GPR0\n"); - return (int)task.getRegister(PPC64Registers.GPR0); - } - public Syscall getSyscall(Task task) { - int number = this.number(task); - return LinuxPPC64Syscall.syscallByNum (task, number); - } - }; - return info; - } } diff --git a/frysk-core/frysk/proc/LinuxPPC64Syscall.java b/frysk-core/frysk/proc/LinuxPPC64Syscall.java index 76072c8..f4ed89f 100644 --- a/frysk-core/frysk/proc/LinuxPPC64Syscall.java +++ b/frysk-core/frysk/proc/LinuxPPC64Syscall.java @@ -107,7 +107,7 @@ public class LinuxPPC64Syscall extends SyscallTable { } } - static Syscall[] syscallList = { + private static Syscall[] syscallList = { new PowerPCSyscall (0), new PowerPCSyscall ("exit", 1, 1), new PowerPCSyscall ("fork", 2, 0, "i: "), @@ -419,11 +419,8 @@ public class LinuxPPC64Syscall extends SyscallTable { new PowerPCSyscall ("sync_file_range2", 308), new PowerPCSyscall ("fallocate", 309) }; - public Syscall[] getSyscallList() { - return syscallList; - } - static class SocketSubSyscall extends PowerPCSyscall { + private static class SocketSubSyscall extends PowerPCSyscall { SocketSubSyscall (String name, int number) { super (name, number); } @@ -438,7 +435,7 @@ public class LinuxPPC64Syscall extends SyscallTable { } } - static Syscall[] socketSubcallList = { + private static Syscall[] socketSubcallList = { new SocketSubSyscall ("", SOCKET_NUM), new SocketSubSyscall ("socket", SOCKET_NUM, 3, "i:iii"), new SocketSubSyscall ("bind", SOCKET_NUM, 3, "i:ipi "), @@ -459,8 +456,7 @@ public class LinuxPPC64Syscall extends SyscallTable { new SocketSubSyscall ("recvmsg", SOCKET_NUM, 5, "i:iiipp ") }; - - static class IpcSubSyscall + private static class IpcSubSyscall extends PowerPCSyscall { IpcSubSyscall (String name, int number) @@ -482,7 +478,7 @@ public class LinuxPPC64Syscall extends SyscallTable { } } - static Syscall[] ipcSubcallList = { + private static Syscall[] ipcSubcallList = { new IpcSubSyscall ("semop", IPC_NUM), new IpcSubSyscall("semget", IPC_NUM), new IpcSubSyscall("semctl", IPC_NUM), @@ -509,21 +505,6 @@ public class LinuxPPC64Syscall extends SyscallTable { new IpcSubSyscall("shmctl", IPC_NUM) }; - public static Syscall syscallByNum (Task task, int number) { - if (number != SOCKET_NUM && number != IPC_NUM) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 15:22:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 15:22:00 -0000 Subject: [SCM] master: Delete SyscallEventInfo. Message-ID: <20071228152159.27245.qmail@sourceware.org> The branch, master has been updated via a50244a412c7f06308163bebda890ce124240fcb (commit) from adefecf38be1a74c30c2323a5443196f56580341 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a50244a412c7f06308163bebda890ce124240fcb Author: Andrew Cagney Date: Fri Dec 28 10:22:06 2007 -0500 Delete SyscallEventInfo. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * SyscallEventInfo.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 2 + frysk-core/frysk/proc/SyscallEventInfo.java | 56 --------------------------- 2 files changed, 2 insertions(+), 56 deletions(-) delete mode 100644 frysk-core/frysk/proc/SyscallEventInfo.java First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 58b7492..9654c74 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,7 @@ 2007-12-28 Andrew Cagney + * SyscallEventInfo.java: Delete. + * LinuxIa32Syscall.java: Privatize. (getSyscallList()): Delete * LinuxX8664Syscall.java: Ditto. diff --git a/frysk-core/frysk/proc/SyscallEventInfo.java b/frysk-core/frysk/proc/SyscallEventInfo.java deleted file mode 100644 index 9873250..0000000 --- a/frysk-core/frysk/proc/SyscallEventInfo.java +++ /dev/null @@ -1,56 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2005, Red Hat Inc. -// -// FRYSK is free software; you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// -// In addition, as a special exception, Red Hat, Inc. gives You the -// additional right to link the code of FRYSK with code not covered -// under the GNU General Public License ("Non-GPL Code") and to -// distribute linked combinations including the two, subject to the -// limitations in this paragraph. Non-GPL Code permitted under this -// exception must only link to the code of FRYSK through those well -// defined interfaces identified in the file named EXCEPTION found in -// the source code files (the "Approved Interfaces"). The files of -// Non-GPL Code may instantiate templates or use macros or inline -// functions from the Approved Interfaces without causing the -// resulting work to be covered by the GNU General Public -// License. Only Red Hat, Inc. may make changes or additions to the -// list of Approved Interfaces. You must obey the GNU General Public -// License in all respects for all of the FRYSK code and other code -// used in conjunction with FRYSK except the Non-GPL Code covered by -// this exception. If you modify this file, you may extend this -// exception to your version of the file, but you are not obligated to -// do so. If you do not wish to provide this exception without -// modification, you must delete this exception statement from your -// version and license this file solely under the GPL without -// exception. -package frysk.proc; - -/** - * An object that retrieves syscall info from a task. Used in combination - * with Syscall and a Task object to retrieve information. - */ -public abstract class SyscallEventInfo { - /** - * getSyscall does everything on the assumption that there is a - * system, and programmer want to know the information about this - * system call. A meaningless Syscall object is returned when - * getSyscall is called at the moment no system call occurs. - * @param task the task that system call occurred - * @return the Syscall object - */ - public abstract Syscall getSyscall (Task task); - -} hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 16:03:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 16:03:00 -0000 Subject: [SCM] master: Move frysk.proc.Syscall to new frysk.syscall package. Message-ID: <20071228160350.4028.qmail@sourceware.org> The branch, master has been updated via 4179fb79a3673f3bafc5d06cb4a5cc479377634f (commit) from a50244a412c7f06308163bebda890ce124240fcb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4179fb79a3673f3bafc5d06cb4a5cc479377634f Author: Andrew Cagney Date: Fri Dec 28 11:03:38 2007 -0500 Move frysk.proc.Syscall to new frysk.syscall package. frysk-core/frysk/syscall/ChangeLog 2007-12-28 Andrew Cagney * package.html: New. * Syscall.java: Move from frysk.proc. * SyscallTable.java: Move from frysk.proc. * SyscallTableFactory.java: Move from frysk.proc. * TestSyscallSithAudit.java: Move from frysk.proc. * LinuxIA32SyscallTable.java: Move from frysk.proc. * LinuxX8664SyscallTable.java: Move from frysk.proc. * LinuxPPC32SyscallTable.java: Move from frysk.proc. * LinuxPPC64SyscallTable.java: Move from frysk.proc. frysk-core/frysk/ftrace/ChangeLog 2007-12-28 Andrew Cagney frysk.proc.Syscall moved to frysk.syscall.Syscall. * Ftrace.java: Update. * MappingGuard.java: Update. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * Syscall.java: Move to frysk.syscall. * SyscallTable.java: Move to frysk.syscall. * SyscallTableFactory.java: Move to frysk.syscall. * TestSyscallSithAudit.java: Move to frysk.syscall. * LinuxIa32Syscall.java: Move to frysk.syscall. * LinuxX8664Syscall.java: Move to frysk.syscall. * LinuxPPC32Syscall.java: Move to frysk.syscall. * LinuxPPC64Syscall.java: Move to frysk.syscall. * TestSyscallRunning.java: Update. * Task.java: Update. * TestSyscallSignal.java: Update. * TestTaskSyscallObserver.java: Update. frysk-gui/frysk/gui/monitor/ChangeLog 2007-12-28 Andrew Cagney frysk.proc.Syscall moved to frysk.syscall.Syscall. * observers/SysCallUtilyInfo.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 6 ++++++ frysk-core/frysk/ftrace/Ftrace.java | 6 +++--- frysk-core/frysk/ftrace/MappingGuard.java | 6 +++--- frysk-core/frysk/proc/ChangeLog | 15 ++++++++++++++- frysk-core/frysk/proc/Task.java | 3 +++ frysk-core/frysk/proc/TestSyscallRunning.java | 4 +++- frysk-core/frysk/proc/TestSyscallSignal.java | 10 ++++++---- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 18 ++++++++++-------- frysk-core/frysk/syscall/ChangeLog | 18 ++++++++++++++++++ .../LinuxIA32SyscallTable.java} | 13 ++++++------- .../LinuxPPC32SyscallTable.java} | 11 ++++++----- .../LinuxPPC64SyscallTable.java} | 11 ++++++----- .../LinuxX8664SyscallTable.java} | 7 ++++--- frysk-core/frysk/{proc => syscall}/Syscall.java | 3 ++- .../frysk/{proc => syscall}/SyscallTable.java | 3 ++- .../{proc => syscall}/SyscallTableFactory.java | 10 +++++----- .../{proc => syscall}/TestSyscallsWithAudit.java | 2 +- frysk-core/frysk/syscall/package.html | 7 +++++++ frysk-gui/frysk/gui/monitor/ChangeLog | 5 +++++ .../gui/monitor/observers/SysCallUtilyInfo.java | 4 ++-- 20 files changed, 112 insertions(+), 50 deletions(-) create mode 100644 frysk-core/frysk/syscall/ChangeLog rename frysk-core/frysk/{proc/LinuxIa32Syscall.java => syscall/LinuxIA32SyscallTable.java} (98%) rename frysk-core/frysk/{proc/LinuxPPC32Syscall.java => syscall/LinuxPPC32SyscallTable.java} (98%) rename frysk-core/frysk/{proc/LinuxPPC64Syscall.java => syscall/LinuxPPC64SyscallTable.java} (98%) rename frysk-core/frysk/{proc/LinuxX8664Syscall.java => syscall/LinuxX8664SyscallTable.java} (99%) rename frysk-core/frysk/{proc => syscall}/Syscall.java (99%) rename frysk-core/frysk/{proc => syscall}/SyscallTable.java (98%) rename frysk-core/frysk/{proc => syscall}/SyscallTableFactory.java (91%) rename frysk-core/frysk/{proc => syscall}/TestSyscallsWithAudit.java (99%) create mode 100644 frysk-core/frysk/syscall/package.html First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index a27caee..238a4bc 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,9 @@ +2007-12-28 Andrew Cagney + + frysk.proc.Syscall moved to frysk.syscall.Syscall. + * Ftrace.java: Update. + * MappingGuard.java: Update. + 2007-12-27 Andrew Cagney * Ftrace.java: Update; use Task.getSyscallTable(). diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java index 943f497..19b3ebe 100644 --- a/frysk-core/frysk/ftrace/Ftrace.java +++ b/frysk-core/frysk/ftrace/Ftrace.java @@ -424,7 +424,7 @@ public class Ftrace implements TaskObserver.Syscall { Reporter reporter; - frysk.proc.Syscall syscallCache = null; + frysk.syscall.Syscall syscallCache = null; MySyscallObserver(Reporter reporter) { @@ -433,7 +433,7 @@ public class Ftrace public Action updateSyscallEnter(Task task) { - frysk.proc.Syscall syscall + frysk.syscall.Syscall syscall = task.getSyscallTable().getSyscall(task); String name = syscall.getName(); if (syscall.isNoReturn()) @@ -455,7 +455,7 @@ public class Ftrace public Action updateSyscallExit (Task task) { - frysk.proc.Syscall syscall = syscallCache; + frysk.syscall.Syscall syscall = syscallCache; String name = syscall.getName(); reporter.eventLeave(task, syscall, diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index adc5516..ee32785 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -282,7 +282,7 @@ class MappingGuard extends MappingGuardB implements TaskObserver.Syscall { - private frysk.proc.Syscall syscallCache = null; + private frysk.syscall.Syscall syscallCache = null; public SyscallMappingGuard(Task task) { super(task); @@ -290,7 +290,7 @@ class MappingGuard } public Action updateSyscallEnter(Task task) { - frysk.proc.Syscall syscall + frysk.syscall.Syscall syscall = task.getSyscallTable().getSyscall(task); syscallCache = syscall; return Action.CONTINUE; @@ -298,7 +298,7 @@ class MappingGuard public Action updateSyscallExit (Task task) { - frysk.proc.Syscall syscall = syscallCache; + frysk.syscall.Syscall syscall = syscallCache; syscallCache = null; if (syscall != null) { diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 9654c74..5f3f5eb 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,7 +1,20 @@ 2007-12-28 Andrew Cagney - * SyscallEventInfo.java: Delete. + * Syscall.java: Move to frysk.syscall. + * SyscallTable.java: Move to frysk.syscall. + * SyscallTableFactory.java: Move to frysk.syscall. + * TestSyscallSithAudit.java: Move to frysk.syscall. + * LinuxIa32Syscall.java: Move to frysk.syscall. + * LinuxX8664Syscall.java: Move to frysk.syscall. + * LinuxPPC32Syscall.java: Move to frysk.syscall. + * LinuxPPC64Syscall.java: Move to frysk.syscall. + * TestSyscallRunning.java: Update. + * Task.java: Update. + * TestSyscallSignal.java: Update. + * TestTaskSyscallObserver.java: Update. + * SyscallEventInfo.java: Delete. + * LinuxIa32Syscall.java: Privatize. (getSyscallList()): Delete * LinuxX8664Syscall.java: Ditto. diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index 3b2c13d..df769e3 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -39,6 +39,8 @@ package frysk.proc; +import frysk.syscall.SyscallTable; +import frysk.syscall.SyscallTableFactory; import java.util.LinkedList; import inua.eio.ByteBuffer; import java.util.Set; @@ -1093,6 +1095,7 @@ public abstract class Task isa = null; memory = null; registerBanks = null; + syscallTable = null; currentISA = null; } diff --git a/frysk-core/frysk/proc/TestSyscallRunning.java b/frysk-core/frysk/proc/TestSyscallRunning.java index a305ce3..017dd3b 100644 --- a/frysk-core/frysk/proc/TestSyscallRunning.java +++ b/frysk-core/frysk/proc/TestSyscallRunning.java @@ -50,6 +50,8 @@ import frysk.testbed.TestLib; import frysk.testbed.TearDownProcess; import frysk.Config; import frysk.sys.DaemonPipePair; +import frysk.syscall.SyscallTable; +import frysk.syscall.SyscallTableFactory; /** * XXX: This code should be simplified, eliminating local parallelism @@ -169,7 +171,7 @@ public class TestSyscallRunning private boolean added; private boolean removed; - private final frysk.proc.Syscall syscall; + private final frysk.syscall.Syscall syscall; SyscallObserver(String call, Task task, boolean entered) { SyscallTable syscallTable diff --git a/frysk-core/frysk/proc/TestSyscallSignal.java b/frysk-core/frysk/proc/TestSyscallSignal.java index 1aacdca..72850d9 100644 --- a/frysk-core/frysk/proc/TestSyscallSignal.java +++ b/frysk-core/frysk/proc/TestSyscallSignal.java @@ -46,6 +46,8 @@ import java.io.InputStreamReader; import frysk.sys.Signal; import frysk.sys.DaemonPipePair; import frysk.testbed.TestLib; +import frysk.syscall.SyscallTable; +import frysk.syscall.SyscallTableFactory; import frysk.testbed.TearDownProcess; import frysk.Config; import frysk.sys.ProcessIdentifier; @@ -247,8 +249,8 @@ public class TestSyscallSignal private boolean added; private boolean removed; - private final frysk.proc.Syscall opensys; - private final frysk.proc.Syscall closesys; + private final frysk.syscall.Syscall opensys; + private final frysk.syscall.Syscall closesys; SyscallObserver(int stophits, Task task) { SyscallTable syscallTable @@ -260,7 +262,7 @@ public class TestSyscallSignal public Action updateSyscallEnter(Task task) { SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); if (opensys.equals(syscall) || closesys.equals(syscall)) { entered++; if (entered == stophits) { @@ -273,7 +275,7 @@ public class TestSyscallSignal public Action updateSyscallExit(Task task) { SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); if (opensys.equals(syscall) || closesys.equals(syscall)) { exited++; } diff --git a/frysk-core/frysk/proc/TestTaskSyscallObserver.java b/frysk-core/frysk/proc/TestTaskSyscallObserver.java index c82b250..c72b05a 100644 --- a/frysk-core/frysk/proc/TestTaskSyscallObserver.java +++ b/frysk-core/frysk/proc/TestTaskSyscallObserver.java @@ -40,6 +40,8 @@ package frysk.proc; +import frysk.syscall.SyscallTable; +import frysk.syscall.SyscallTableFactory; import frysk.Config; import java.util.HashMap; import java.util.Iterator; @@ -75,11 +77,11 @@ public class TestTaskSyscallObserver boolean caughtExec = false; - final frysk.proc.Syscall execvesys; + final frysk.syscall.Syscall execvesys; - final frysk.proc.Syscall opensys; + final frysk.syscall.Syscall opensys; - final frysk.proc.Syscall readsys; + final frysk.syscall.Syscall readsys; SyscallObserver (Task task) { SyscallTable syscallTable @@ -100,7 +102,7 @@ public class TestTaskSyscallObserver enter++; SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); if (execvesys.equals(syscall)) { caughtExec = true; @@ -395,7 +397,7 @@ public class TestTaskSyscallObserver { super.updateSyscallEnter(task); SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); syscallCache.put(task, syscall); if ((opensys.equals(syscall))) @@ -416,7 +418,7 @@ public class TestTaskSyscallObserver public Action updateSyscallExit (Task task) { super.updateSyscallExit(task); - frysk.proc.Syscall syscall = (frysk.proc.Syscall) syscallCache.remove(task); + frysk.syscall.Syscall syscall = (frysk.syscall.Syscall) syscallCache.remove(task); if (opensys.equals(syscall) && openingTestFile) { @@ -505,7 +507,7 @@ public class TestTaskSyscallObserver { super.updateSyscallEnter(task); SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); // verify that read attempted if (readsys.equals(syscall)) @@ -525,7 +527,7 @@ public class TestTaskSyscallObserver { super.updateSyscallExit(task); SyscallTable syscallTable = getSyscallTable(task); - frysk.proc.Syscall syscall = syscallTable.getSyscall(task); + frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); if (readsys.equals(syscall)) { logger.log(Level.FINE, "{0} updateSyscallExit READ\n", this); diff --git a/frysk-core/frysk/syscall/ChangeLog b/frysk-core/frysk/syscall/ChangeLog new file mode 100644 index 0000000..3a25b0f --- /dev/null +++ b/frysk-core/frysk/syscall/ChangeLog @@ -0,0 +1,18 @@ +2007-12-28 Andrew Cagney + + * package.html: New. + * Syscall.java: Move from frysk.proc. + * SyscallTable.java: Move from frysk.proc. + * SyscallTableFactory.java: Move from frysk.proc. + * TestSyscallSithAudit.java: Move from frysk.proc. + * LinuxIA32SyscallTable.java: Move from frysk.proc. + * LinuxX8664SyscallTable.java: Move from frysk.proc. + * LinuxPPC32SyscallTable.java: Move from frysk.proc. + * LinuxPPC64SyscallTable.java: Move from frysk.proc. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/frysk-core/frysk/proc/LinuxIa32Syscall.java b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java similarity index 98% rename from frysk-core/frysk/proc/LinuxIa32Syscall.java rename to frysk-core/frysk/syscall/LinuxIA32SyscallTable.java index b2ad684..328b7ed 100644 --- a/frysk-core/frysk/proc/LinuxIa32Syscall.java +++ b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java @@ -37,11 +37,12 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import frysk.isa.IA32Registers; +import frysk.proc.Task; -public class LinuxIa32Syscall extends SyscallTable { +class LinuxIA32SyscallTable extends SyscallTable { private static final int SOCKET_NUM = 102; private static final int IPC_NUM = 117; @@ -524,17 +525,15 @@ public class LinuxIa32Syscall extends SyscallTable { public Syscall getSyscall(String name) { Syscall syscall; - syscall = iterateSyscallByName(name, LinuxIa32Syscall.syscallList); + syscall = iterateSyscallByName(name, syscallList); if (syscall != null) return syscall; - syscall = iterateSyscallByName(name, LinuxIa32Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, socketSubcallList); if (syscall != null) return syscall; - - syscall = iterateSyscallByName(name, LinuxIa32Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, ipcSubcallList); if (syscall != null) return syscall; - return null; } diff --git a/frysk-core/frysk/proc/LinuxPPC32Syscall.java b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java similarity index 98% rename from frysk-core/frysk/proc/LinuxPPC32Syscall.java rename to frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java index 670f281..2115f29 100644 --- a/frysk-core/frysk/proc/LinuxPPC32Syscall.java +++ b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java @@ -38,9 +38,10 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import frysk.isa.PPC32Registers; +import frysk.proc.Task; /** * 32-bit PowerPC system calls. @@ -48,7 +49,7 @@ import frysk.isa.PPC32Registers; * XXX: There is much duplication between this and LinuxPPC64Syscall. */ -public class LinuxPPC32Syscall extends SyscallTable { +class LinuxPPC32SyscallTable extends SyscallTable { private static final int SOCKET_NUM = 102; private static final int IPC_NUM = 117; @@ -502,13 +503,13 @@ public class LinuxPPC32Syscall extends SyscallTable { public Syscall getSyscall(String name) { Syscall syscall; - syscall = iterateSyscallByName(name, LinuxPPC32Syscall.syscallList); + syscall = iterateSyscallByName(name, syscallList); if (syscall != null) return syscall; - syscall = iterateSyscallByName(name, LinuxPPC32Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, socketSubcallList); if (syscall != null) return syscall; - syscall = iterateSyscallByName(name, LinuxPPC32Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, ipcSubcallList); if (syscall != null) return syscall; return null; diff --git a/frysk-core/frysk/proc/LinuxPPC64Syscall.java b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java similarity index 98% rename from frysk-core/frysk/proc/LinuxPPC64Syscall.java rename to frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java index f4ed89f..a2bb342 100644 --- a/frysk-core/frysk/proc/LinuxPPC64Syscall.java +++ b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java @@ -38,9 +38,10 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import frysk.isa.PPC64Registers; +import frysk.proc.Task; /** * 32-bit PowerPC system calls. @@ -48,7 +49,7 @@ import frysk.isa.PPC64Registers; * XXX: There is much duplication between this and LinuxPPC64Syscall. */ -public class LinuxPPC64Syscall extends SyscallTable { +class LinuxPPC64SyscallTable extends SyscallTable { private static final int SOCKET_NUM = 102; private static final int IPC_NUM = 117; @@ -507,13 +508,13 @@ public class LinuxPPC64Syscall extends SyscallTable { public Syscall getSyscall(String name) { Syscall syscall; - syscall = iterateSyscallByName(name, LinuxPPC64Syscall.syscallList); + syscall = iterateSyscallByName(name, syscallList); if (syscall != null) return syscall; - syscall = iterateSyscallByName(name, LinuxPPC64Syscall.socketSubcallList); + syscall = iterateSyscallByName(name, socketSubcallList); if (syscall != null) return syscall; - syscall = iterateSyscallByName(name, LinuxPPC64Syscall.ipcSubcallList); + syscall = iterateSyscallByName(name, ipcSubcallList); if (syscall != null) return syscall; return null; diff --git a/frysk-core/frysk/proc/LinuxX8664Syscall.java b/frysk-core/frysk/syscall/LinuxX8664SyscallTable.java similarity index 99% rename from frysk-core/frysk/proc/LinuxX8664Syscall.java rename to frysk-core/frysk/syscall/LinuxX8664SyscallTable.java index 051847a..4665a7e 100644 --- a/frysk-core/frysk/proc/LinuxX8664Syscall.java +++ b/frysk-core/frysk/syscall/LinuxX8664SyscallTable.java @@ -37,11 +37,12 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import frysk.isa.X8664Registers; +import frysk.proc.Task; -public class LinuxX8664Syscall extends SyscallTable { +class LinuxX8664SyscallTable extends SyscallTable { private static class X8664Syscall extends Syscall { X8664Syscall(String name, int number, int numArgs, @@ -374,7 +375,7 @@ public class LinuxX8664Syscall extends SyscallTable { }; public Syscall getSyscall(String name) { - return iterateSyscallByName(name, LinuxX8664Syscall.syscallList); + return iterateSyscallByName(name, syscallList); } public Syscall getSyscall(Task task) { diff --git a/frysk-core/frysk/proc/Syscall.java b/frysk-core/frysk/syscall/Syscall.java similarity index 99% rename from frysk-core/frysk/proc/Syscall.java rename to frysk-core/frysk/syscall/Syscall.java index 53496ec..2eaa370 100644 --- a/frysk-core/frysk/proc/Syscall.java +++ b/frysk-core/frysk/syscall/Syscall.java @@ -37,9 +37,10 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import inua.util.PrintWriter; +import frysk.proc.Task; /** * A class that holds static information about a system call. It is diff --git a/frysk-core/frysk/proc/SyscallTable.java b/frysk-core/frysk/syscall/SyscallTable.java similarity index 98% rename from frysk-core/frysk/proc/SyscallTable.java rename to frysk-core/frysk/syscall/SyscallTable.java index 0115352..4a1cc60 100644 --- a/frysk-core/frysk/proc/SyscallTable.java +++ b/frysk-core/frysk/syscall/SyscallTable.java @@ -37,9 +37,10 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; import java.util.WeakHashMap; +import frysk.proc.Task; /** * System call database. diff --git a/frysk-core/frysk/proc/SyscallTableFactory.java b/frysk-core/frysk/syscall/SyscallTableFactory.java similarity index 91% rename from frysk-core/frysk/proc/SyscallTableFactory.java rename to frysk-core/frysk/syscall/SyscallTableFactory.java index 2f47b6e..4890356 100644 --- a/frysk-core/frysk/proc/SyscallTableFactory.java +++ b/frysk-core/frysk/syscall/SyscallTableFactory.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.syscall; hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 17:55:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 17:55:00 -0000 Subject: [SCM] master: Restore removed super call. Message-ID: <20071228175529.9237.qmail@sourceware.org> The branch, master has been updated via 538aac5c9ea9ce0bef2147a4088259a2b9d316ae (commit) via a8989462e9b68576df8b34359c81e5d9bc37d84f (commit) from 4179fb79a3673f3bafc5d06cb4a5cc479377634f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 538aac5c9ea9ce0bef2147a4088259a2b9d316ae Author: Andrew Cagney Date: Fri Dec 28 12:55:28 2007 -0500 Restore removed super call. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * TestTaskSyscallObserver.java (SyscallInterruptObserver): In updateSyscallEnter call super. commit a8989462e9b68576df8b34359c81e5d9bc37d84f Author: Andrew Cagney Date: Fri Dec 28 12:39:08 2007 -0500 Rename frysk.proc.TaskObserver.Syscall to .Syscalls; add Syscall parameter. frysk-core/frysk/ftrace/ChangeLog 2007-12-28 Andrew Cagney frysk.proc.TaskObserver.Syscall reanmed to .Syscalls. Syscall parameter added. * Ftrace.java (MySyscallObserver): Update. * MappingGuard.java (SyscallMappingGuard): Update. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * TaskObserver.java (Syscalls): Rename Syscall; add Syscall parameter to updateSyscallEnter. * TestTaskSyscallObserver.java: Update. * TestSyscallSignal.java: Update. * SyscallExaminer.java: Update. * Task.java: Update. * TestSyscallRunning.java: Update. frysk-gui/frysk/gui/monitor/ChangeLog 2007-12-28 Andrew Cagney frysk.proc.TaskObserver.Syscall renamed to .Syscalls. * observers/TaskSyscallObserver.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 5 + frysk-core/frysk/ftrace/Ftrace.java | 22 +-- frysk-core/frysk/ftrace/MappingGuard.java | 19 +- frysk-core/frysk/proc/ChangeLog | 11 + frysk-core/frysk/proc/SyscallExaminer.java | 45 ++-- frysk-core/frysk/proc/Task.java | 14 +- frysk-core/frysk/proc/TaskObserver.java | 8 +- frysk-core/frysk/proc/TestSyscallRunning.java | 20 +- frysk-core/frysk/proc/TestSyscallSignal.java | 15 +- frysk-core/frysk/proc/TestTaskSyscallObserver.java | 216 +++++++++----------- frysk-gui/frysk/gui/monitor/ChangeLog | 3 + .../gui/monitor/observers/TaskSyscallObserver.java | 47 +++-- 12 files changed, 203 insertions(+), 222 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index 238a4bc..06c163e 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,5 +1,10 @@ 2007-12-28 Andrew Cagney + frysk.proc.TaskObserver.Syscall reanmed to .Syscalls. Syscall + parameter added. + * Ftrace.java (MySyscallObserver): Update. + * MappingGuard.java (SyscallMappingGuard): Update. + frysk.proc.Syscall moved to frysk.syscall.Syscall. * Ftrace.java: Update. * MappingGuard.java: Update. diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java index 19b3ebe..621054e 100644 --- a/frysk-core/frysk/ftrace/Ftrace.java +++ b/frysk-core/frysk/ftrace/Ftrace.java @@ -49,7 +49,7 @@ import frysk.proc.ProcObserver; import frysk.proc.ProcTasksObserver; import frysk.proc.Task; import frysk.proc.TaskObserver; - +import frysk.syscall.Syscall; import frysk.sys.Signal; import inua.util.PrintWriter; @@ -252,7 +252,7 @@ public class Ftrace Proc proc = task.getProc(); if (traceSyscalls) { - task.requestAddSyscallObserver(new MySyscallObserver(reporter)); + task.requestAddSyscallsObserver(new MySyscallObserver(reporter)); observationRequested(task); } @@ -420,21 +420,15 @@ public class Ftrace /** * The syscallObserver added to the traced proc. */ - class MySyscallObserver - implements TaskObserver.Syscall - { - Reporter reporter; - frysk.syscall.Syscall syscallCache = null; + private class MySyscallObserver implements TaskObserver.Syscalls { + private final Reporter reporter; + private Syscall syscallCache = null; - MySyscallObserver(Reporter reporter) - { + MySyscallObserver(Reporter reporter) { this.reporter = reporter; } - public Action updateSyscallEnter(Task task) - { - frysk.syscall.Syscall syscall - = task.getSyscallTable().getSyscall(task); + public Action updateSyscallEnter(Task task, Syscall syscall) { String name = syscall.getName(); if (syscall.isNoReturn()) reporter.eventSingle(task, "syscall " + name, @@ -455,7 +449,7 @@ public class Ftrace public Action updateSyscallExit (Task task) { - frysk.syscall.Syscall syscall = syscallCache; + Syscall syscall = syscallCache; String name = syscall.getName(); reporter.eventLeave(task, syscall, diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index ee32785..5b14999 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -45,7 +45,7 @@ import java.util.Map; import java.util.List; import java.util.logging.*; import java.io.File; - +import frysk.syscall.Syscall; import frysk.proc.Action; import frysk.proc.Task; import frysk.proc.TaskObserver; @@ -278,27 +278,24 @@ class MappingGuard } } - private static class SyscallMappingGuard - extends MappingGuardB - implements TaskObserver.Syscall + private static class SyscallMappingGuard extends MappingGuardB + implements TaskObserver.Syscalls { - private frysk.syscall.Syscall syscallCache = null; + private Syscall syscallCache = null; public SyscallMappingGuard(Task task) { super(task); - task.requestAddSyscallObserver(this); + task.requestAddSyscallsObserver(this); } - public Action updateSyscallEnter(Task task) { - frysk.syscall.Syscall syscall - = task.getSyscallTable().getSyscall(task); + public Action updateSyscallEnter(Task task, Syscall syscall) { syscallCache = syscall; return Action.CONTINUE; } public Action updateSyscallExit (Task task) { - frysk.syscall.Syscall syscall = syscallCache; + Syscall syscall = syscallCache; syscallCache = null; if (syscall != null) { @@ -315,7 +312,7 @@ class MappingGuard } public void remove() { - task.requestDeleteSyscallObserver(this); + task.requestDeleteSyscallsObserver(this); } } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 5f3f5eb..cd9abdc 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,16 @@ 2007-12-28 Andrew Cagney + * TestTaskSyscallObserver.java (SyscallInterruptObserver): In + updateSyscallEnter call super. + + * TaskObserver.java (Syscalls): Rename Syscall; add Syscall + parameter to updateSyscallEnter. + * TestTaskSyscallObserver.java: Update. + * TestSyscallSignal.java: Update. + * SyscallExaminer.java: Update. + * Task.java: Update. + * TestSyscallRunning.java: Update. + * Syscall.java: Move to frysk.syscall. * SyscallTable.java: Move to frysk.syscall. * SyscallTableFactory.java: Move to frysk.syscall. diff --git a/frysk-core/frysk/proc/SyscallExaminer.java b/frysk-core/frysk/proc/SyscallExaminer.java index a4dd838..4b3a631 100644 --- a/frysk-core/frysk/proc/SyscallExaminer.java +++ b/frysk-core/frysk/proc/SyscallExaminer.java @@ -44,6 +44,7 @@ import java.util.Observable; import java.util.logging.Level; import frysk.testbed.TestLib; import frysk.testbed.TaskObserverBase; +import frysk.syscall.Syscall; /** * Superclass for tests that examine process state at a system call. @@ -66,31 +67,29 @@ public class SyscallExaminer volatile boolean exited; volatile int exitedTaskEventStatus; - // Need to add task observers to the process the moment it is - // created, otherwize the creation of the very first task is - // missed (giving a mismatch of task created and deleted - // notifications.) - - class TaskEventObserver - extends TaskObserverBase - implements TaskObserver.Syscall, TaskObserver.Signaled - { - public Action updateSyscallEnter (Task task) - { - syscallState = 1; - return Action.CONTINUE; - } - public Action updateSyscallExit (Task task) + /** + * Need to add task observers to the process the moment it is + * created, otherwize the creation of the very first task is + * missed (giving a mismatch of task created and deleted + * notifications.) + */ + class TaskEventObserver + extends TaskObserverBase + implements TaskObserver.Syscalls, TaskObserver.Signaled { - syscallState = 0; - return Action.CONTINUE; + public Action updateSyscallEnter (Task task, Syscall syscall) { + syscallState = 1; + return Action.CONTINUE; + } + public Action updateSyscallExit (Task task) { + syscallState = 0; + return Action.CONTINUE; + } + public Action updateSignaled (Task task, int sig) { + stoppedTaskEventCount++; + return Action.CONTINUE; + } } - public Action updateSignaled (Task task, int sig) - { - stoppedTaskEventCount++; - return Action.CONTINUE; - } - } class ProcDestroyedObserver implements Observer diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index df769e3..9acc59e 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -39,6 +39,7 @@ package frysk.proc; +import frysk.syscall.Syscall; import frysk.syscall.SyscallTable; import frysk.syscall.SyscallTableFactory; import java.util.LinkedList; @@ -745,9 +746,9 @@ public abstract class Task public TaskObservable syscallObservers = new TaskObservable(this); /** - * Add TaskObserver.Syscall to the TaskObserver pool. + * Add TaskObserver.Syscalls to the TaskObserver pool. */ - public void requestAddSyscallObserver (TaskObserver.Syscall o) + public void requestAddSyscallsObserver (TaskObserver.Syscalls o) { logger.log(Level.FINE, "{0} requestAddSyscallObserver\n", this); proc.requestAddSyscallObserver(this, syscallObservers, o); @@ -756,7 +757,7 @@ public abstract class Task /** * Delete TaskObserver.Syscall. */ - public void requestDeleteSyscallObserver (TaskObserver.Syscall o) + public void requestDeleteSyscallsObserver (TaskObserver.Syscalls o) { proc.requestDeleteSyscallObserver(this, syscallObservers, o); logger.log(Level.FINE, "{0} requestDeleteSyscallObserver\n", this); @@ -771,9 +772,10 @@ public abstract class Task public int notifySyscallEnter () { logger.log(Level.FINE, "{0} notifySyscallEnter\n", this); + Syscall syscall = getSyscallTable().getSyscall(this); for (Iterator i = syscallObservers.iterator(); i.hasNext();) { - TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); - if (observer.updateSyscallEnter(this) == Action.BLOCK) + TaskObserver.Syscalls observer = (TaskObserver.Syscalls) i.next(); + if (observer.updateSyscallEnter(this, syscall) == Action.BLOCK) blockers.add(observer); } return blockers.size(); @@ -789,7 +791,7 @@ public abstract class Task logger.log(Level.FINE, "{0} notifySyscallExit {1}\n", this); for (Iterator i = syscallObservers.iterator(); i.hasNext();) { - TaskObserver.Syscall observer = (TaskObserver.Syscall) i.next(); + TaskObserver.Syscalls observer = (TaskObserver.Syscalls) i.next(); if (observer.updateSyscallExit(this) == Action.BLOCK) blockers.add(observer); } diff --git a/frysk-core/frysk/proc/TaskObserver.java b/frysk-core/frysk/proc/TaskObserver.java index f958722..f475979 100644 --- a/frysk-core/frysk/proc/TaskObserver.java +++ b/frysk-core/frysk/proc/TaskObserver.java @@ -39,6 +39,8 @@ package frysk.proc; +import frysk.syscall.Syscall; + /** * Observable events generated by a Task. */ @@ -160,14 +162,12 @@ public interface TaskObserver * Interface used to notify of a Task either entering, or exiting * a system call. */ - public interface Syscall - extends TaskObserver - { + public interface Syscalls extends TaskObserver { /** * The Task is entering a system call. Return Action.BLOCK to * block the task's further execution. */ - Action updateSyscallEnter (Task task); + Action updateSyscallEnter (Task task, Syscall syscall); /** * The task is exiting a system call. Return Action.BLOCK to * block the task's further execution. diff --git a/frysk-core/frysk/proc/TestSyscallRunning.java b/frysk-core/frysk/proc/TestSyscallRunning.java index 017dd3b..1e73ad7 100644 --- a/frysk-core/frysk/proc/TestSyscallRunning.java +++ b/frysk-core/frysk/proc/TestSyscallRunning.java @@ -39,6 +39,7 @@ package frysk.proc; +import frysk.syscall.Syscall; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.DataOutputStream; @@ -113,7 +114,7 @@ public class TestSyscallRunning final Task procTask = proc.getMainTask(); final SyscallObserver syso = new SyscallObserver("accept", procTask, false); - procTask.requestAddSyscallObserver(syso); + procTask.requestAddSyscallsObserver(syso); // Make sure the observer is properly installed. while (! syso.isAdded()) @@ -135,7 +136,7 @@ public class TestSyscallRunning // Continue running (inside syscall), while attaching // another syscall observer procTask.requestUnblock(syso); - procTask.requestAddSyscallObserver(syso2); + procTask.requestAddSyscallsObserver(syso2); } }); @@ -165,24 +166,23 @@ public class TestSyscallRunning * Observer that looks for open and close syscalls. * After a given number of calls it will BLOCK from the syscall enter. */ - class SyscallObserver implements TaskObserver.Syscall { + private final class SyscallObserver implements TaskObserver.Syscalls { private boolean entered; private boolean exited; private boolean added; private boolean removed; - private final frysk.syscall.Syscall syscall; + private final Syscall expected; SyscallObserver(String call, Task task, boolean entered) { SyscallTable syscallTable = SyscallTableFactory.getSyscallTable(task.getISA()); - syscall = syscallTable.getSyscall(call); + this.expected = syscallTable.getSyscall(call); this.entered = entered; } - public Action updateSyscallEnter(Task task) { - SyscallTable syscallTable = getSyscallTable(task); - if (syscallTable.getSyscall(task).equals(syscall)) { + public Action updateSyscallEnter(Task task, Syscall syscall) { + if (syscall.equals(expected)) { entered = true; Manager.eventLoop.requestStop(); return Action.BLOCK; @@ -230,9 +230,5 @@ public class TestSyscallRunning public boolean isRemoved() { return removed; } - - private SyscallTable getSyscallTable(Task task) { - return task.getSyscallTable(); - } } } diff --git a/frysk-core/frysk/proc/TestSyscallSignal.java b/frysk-core/frysk/proc/TestSyscallSignal.java index 72850d9..6170eff 100644 --- a/frysk-core/frysk/proc/TestSyscallSignal.java +++ b/frysk-core/frysk/proc/TestSyscallSignal.java @@ -46,6 +46,7 @@ import java.io.InputStreamReader; import frysk.sys.Signal; import frysk.sys.DaemonPipePair; import frysk.testbed.TestLib; +import frysk.syscall.Syscall; import frysk.syscall.SyscallTable; import frysk.syscall.SyscallTableFactory; import frysk.testbed.TearDownProcess; @@ -116,7 +117,7 @@ public class TestSyscallSignal final SignalObserver sigo = new SignalObserver(Signal.HUP); task.requestAddSignaledObserver(sigo); final SyscallObserver syso = new SyscallObserver(42, task); - task.requestAddSyscallObserver(syso); + task.requestAddSyscallsObserver(syso); // Make sure the observers are properly installed. while (! sigo.isAdded() || ! syso.isAdded()) @@ -241,7 +242,7 @@ public class TestSyscallSignal * Observer that looks for open and close syscalls. * After a given number of calls it will BLOCK from the syscall enter. */ - class SyscallObserver implements TaskObserver.Syscall { + private class SyscallObserver implements TaskObserver.Syscalls { private final int stophits; private int entered; @@ -249,8 +250,8 @@ public class TestSyscallSignal private boolean added; private boolean removed; - private final frysk.syscall.Syscall opensys; - private final frysk.syscall.Syscall closesys; + private final Syscall opensys; + private final Syscall closesys; SyscallObserver(int stophits, Task task) { SyscallTable syscallTable @@ -260,9 +261,7 @@ public class TestSyscallSignal this.closesys = syscallTable.getSyscall("close"); } - public Action updateSyscallEnter(Task task) { - SyscallTable syscallTable = getSyscallTable(task); - frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); + public Action updateSyscallEnter(Task task, Syscall syscall) { if (opensys.equals(syscall) || closesys.equals(syscall)) { entered++; if (entered == stophits) { @@ -275,7 +274,7 @@ public class TestSyscallSignal public Action updateSyscallExit(Task task) { SyscallTable syscallTable = getSyscallTable(task); - frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); + Syscall syscall = syscallTable.getSyscall(task); if (opensys.equals(syscall) || closesys.equals(syscall)) { exited++; } diff --git a/frysk-core/frysk/proc/TestTaskSyscallObserver.java b/frysk-core/frysk/proc/TestTaskSyscallObserver.java index c72b05a..bb73dd3 100644 --- a/frysk-core/frysk/proc/TestTaskSyscallObserver.java +++ b/frysk-core/frysk/proc/TestTaskSyscallObserver.java @@ -40,6 +40,7 @@ package frysk.proc; +import frysk.syscall.Syscall; import frysk.syscall.SyscallTable; import frysk.syscall.SyscallTableFactory; import frysk.Config; @@ -66,8 +67,9 @@ import frysk.testbed.DaemonBlockedAtEntry; public class TestTaskSyscallObserver extends TestLib { - class SyscallObserver extends TaskObserverBase - implements TaskObserver.Syscall { + private static class SyscallObserver extends TaskObserverBase + implements TaskObserver.Syscalls + { int enter = 0; int exit = 0; @@ -77,11 +79,9 @@ public class TestTaskSyscallObserver boolean caughtExec = false; - final frysk.syscall.Syscall execvesys; - - final frysk.syscall.Syscall opensys; - - final frysk.syscall.Syscall readsys; + private final Syscall execvesys; + final Syscall opensys; + final Syscall readsys; SyscallObserver (Task task) { SyscallTable syscallTable @@ -96,14 +96,11 @@ public class TestTaskSyscallObserver Manager.eventLoop.requestStop(); } - public Action updateSyscallEnter (Task task) { + public Action updateSyscallEnter (Task task, Syscall syscall) { assertFalse("inSyscall", inSyscall); inSyscall = true; enter++; - SyscallTable syscallTable = getSyscallTable(task); - frysk.syscall.Syscall syscall = syscallTable.getSyscall(task); - if (execvesys.equals(syscall)) { caughtExec = true; } @@ -133,7 +130,7 @@ public class TestTaskSyscallObserver // called indicating that the attach succeeded. Task task = child.findTaskUsingRefresh(true); SyscallObserver syscallObserver = new SyscallObserver(task); - task.requestAddSyscallObserver(syscallObserver); + task.requestAddSyscallsObserver(syscallObserver); assertRunUntilStop("adding exec observer causing attach"); // Do the exec; this call keeps the event loop running until @@ -158,7 +155,7 @@ public class TestTaskSyscallObserver // called indicating that the attach succeeded. Task task = child.findTaskUsingRefresh(true); SyscallObserver syscallObserver = new SyscallObserver(task); - task.requestAddSyscallObserver(syscallObserver); hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Fri Dec 28 20:56:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Fri, 28 Dec 2007 20:56:00 -0000 Subject: [SCM] master: Sort unresolved test results. Message-ID: <20071228205616.23702.qmail@sourceware.org> The branch, master has been updated via cb8bb46ddd11fa1b1521e2bdd4349172c36a23e6 (commit) via f9ffab0d6d6a383b62fc0325939c67ada5240f34 (commit) via e9596a3b32f19aeb87b2172c3887da3aade3d053 (commit) from 538aac5c9ea9ce0bef2147a4088259a2b9d316ae (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit cb8bb46ddd11fa1b1521e2bdd4349172c36a23e6 Author: Andrew Cagney Date: Fri Dec 28 15:56:00 2007 -0500 Sort unresolved test results. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * Result.java (Problem.compareTo(Object)): New. * Results.java: Replace HashSet with TreeSet. commit f9ffab0d6d6a383b62fc0325939c67ada5240f34 Author: Andrew Cagney Date: Fri Dec 28 15:34:47 2007 -0500 Add TestCase.skip32on64() method. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * TestIsa.java (test64To32To64()): Use skip32on64(). frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * Result.java (unresolved(String)): Replace unresolved(int). (pass(String)): Replace pass(int). (Problem(String[],String)): Replace Problem(String[],int). * Runner.java (unresolved(String,boolean)): New. (unresolved(int)): Use. * Results.java (addUnresolved(String)): Replace addUnresolved(int). (addResolved(String)): Replace addResolved(int). * TestCase.java (skip32on64()): New. commit e9596a3b32f19aeb87b2172c3887da3aade3d053 Author: Andrew Cagney Date: Fri Dec 28 15:00:38 2007 -0500 Include 32-on-64 tests by default; --arch overrides this. frysk-common/ChangeLog 2007-12-28 Andrew Cagney * TestRunner.java-in: Pass native, 32- and 64-bit configs to Runner. frysk-gui/frysk/pkglibdir/ChangeLog 2007-12-28 Andrew Cagney * funit.java: Pass all possible Config's to Runner. frysk-sys/frysk/ChangeLog 2007-12-28 Andrew Cagney * cni/Config.cxx-in (Config::createInstall32On64Config): Delete. (Config::createBuild32On64Config): Delete. (Config::createInstallConfig): When 64-bit, set 32- and 64- bit paths. (Config::createBuildConfig): Ditto. * Config.java (createBuild32On64Config(String,String)): Delete. (createInstall32On64Config()): Delete. * TestConfig.java (testInstall32On64Dirs()): Delete. (testBuild32On64Dirs()): Delete. (testInstallDirs(), testBuildDirs()): Update. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * Runner.java (Runner(String,String[],Config,Config,Config)): Replace Runner(String,String[]). (ARCH32, ARCH64): Delete. (runArch32Cases(Collection)): Delete. (runTestCases(Collection)): Replace runTestCases(Collection,Config,Collection,Config). (runArchCases(Collection)): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 + frysk-common/TestRunner.java-in | 11 ++- frysk-core/frysk/proc/ChangeLog | 2 + frysk-core/frysk/proc/TestIsa.java | 9 +-- frysk-gui/frysk/pkglibdir/ChangeLog | 4 + frysk-gui/frysk/pkglibdir/funit.java | 24 +++--- frysk-sys/frysk/ChangeLog | 12 +++ frysk-sys/frysk/Config.java | 36 +++------ frysk-sys/frysk/TestConfig.java | 63 +++++++-------- frysk-sys/frysk/cni/Config.cxx-in | 45 +++++------ frysk-sys/frysk/junit/ChangeLog | 22 +++++ frysk-sys/frysk/junit/Result.java | 23 ++--- frysk-sys/frysk/junit/Results.java | 14 ++-- frysk-sys/frysk/junit/Runner.java | 150 +++++++++++---------------------- frysk-sys/frysk/junit/TestCase.java | 18 ++++ 15 files changed, 209 insertions(+), 229 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 3391c74..8122a80 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2007-12-28 Andrew Cagney + + * TestRunner.java-in: Pass native, 32- and 64-bit configs to + Runner. + 2007-12-07 Andrew Cagney * mkenum.sh (map): Construct the String to Enum table using the diff --git a/frysk-common/TestRunner.java-in b/frysk-common/TestRunner.java-in index e0ca636..9181874 100755 --- a/frysk-common/TestRunner.java-in +++ b/frysk-common/TestRunner.java-in @@ -54,12 +54,13 @@ public class TestRunner String ABS_BUILDDIR = "@abs_builddir@"; String ABS_SRCDIR = "@abs_srcdir@"; - Config config = Config.createBuildConfig (ABS_SRCDIR, ABS_BUILDDIR); - Config config32 = Config.createBuild32On64Config (ABS_SRCDIR, ABS_BUILDDIR); + Config configAll = Config.createBuildConfig(ABS_SRCDIR, ABS_BUILDDIR); + Config config32 = Config.createBuildConfig32(ABS_SRCDIR, ABS_BUILDDIR); + Config config64 = Config.createBuildConfig64(ABS_SRCDIR, ABS_BUILDDIR); - Runner testRunner = new Runner ("TestRunner", args); - int status = testRunner.runTestCases (JUnitTests.get (), config, - JUnitTests.get (), config32); + Runner testRunner = new Runner("TestRunner", args, + configAll, config32, config64); + int status = testRunner.runTestCases(JUnitTests.get()); System.exit (status); } } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index cd9abdc..5aa3bc6 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,7 @@ 2007-12-28 Andrew Cagney + * TestIsa.java (test64To32To64()): Use skip32on64(). + * TestTaskSyscallObserver.java (SyscallInterruptObserver): In updateSyscallEnter call super. diff --git a/frysk-core/frysk/proc/TestIsa.java b/frysk-core/frysk/proc/TestIsa.java index 3d6b5fb..4eab6f2 100644 --- a/frysk-core/frysk/proc/TestIsa.java +++ b/frysk-core/frysk/proc/TestIsa.java @@ -43,8 +43,6 @@ import java.util.Observable; import lib.dwfl.ElfEMachine; import frysk.testbed.TestLib; import frysk.testbed.TaskObserverBase; -import java.io.File; -import frysk.Config; import frysk.testbed.ExecOffspring; import frysk.testbed.SlaveOffspring; import frysk.testbed.ExecCommand; @@ -260,11 +258,8 @@ public class TestIsa } - public void test64To32To64 () - { - File exec32 = Config.getPkgLib32File(null); - File exec64 = Config.getPkgLib64File(null); - if (unsupported ("32-on-64", exec32 == null && exec64 == null)) + public void test64To32To64 () { + if (skip32on64()) return; ExecCommand invoke64 = new ExecCommand(ExecCommand.Executable.BIT64); diff --git a/frysk-gui/frysk/pkglibdir/ChangeLog b/frysk-gui/frysk/pkglibdir/ChangeLog index 72dc820..7471d45 100644 --- a/frysk-gui/frysk/pkglibdir/ChangeLog +++ b/frysk-gui/frysk/pkglibdir/ChangeLog @@ -1,3 +1,7 @@ +2007-12-28 Andrew Cagney + + * funit.java: Pass all possible Config's to Runner. + 2007-07-17 Andrew Cagney Move CNI code from frysk-imports/ to frysk-sys/ diff --git a/frysk-gui/frysk/pkglibdir/funit.java b/frysk-gui/frysk/pkglibdir/funit.java index 56aa635..f6d5d86 100755 --- a/frysk-gui/frysk/pkglibdir/funit.java +++ b/frysk-gui/frysk/pkglibdir/funit.java @@ -50,22 +50,20 @@ import java.util.LinkedList; public class funit { - public static void main (String[] args) - { - Runner testRunner = new Runner ("funit", args); + public static void main (String[] args) { + Config configAll = Config.createInstallConfig(); + Config config32 = Config.createInstallConfig32(); + Config config64 = Config.createInstallConfig64(); + Runner testRunner = new Runner("funit", args, configAll, + config32, config64); LinkedList tests = new LinkedList (); - tests.addAll (frysk.sys.JUnitTests.get ()); - tests.addAll (frysk.core.JUnitTests.get ()); - Config config = Config.createInstallConfig (); - - // It's unnecessary for other modules(such as frysk-import) to - // do arch32 test, so just add the frysk-core's JUnitTests. - LinkedList tests32 = new LinkedList(); - tests32.addAll (frysk.core.JUnitTests.get ()); - Config config32 = Config.createInstallConfig (); + tests.addAll(frysk.sys.JUnitTests.get()); + tests.addAll(frysk.core.JUnitTests.get()); + // tests.addAll(frysk.gtk.JunitTests.get()); + // tests.addAll(frysk.gui.JunitTests.get()); - int status = testRunner.runTestCases (tests, config, tests32, config32); + int status = testRunner.runTestCases(tests); System.exit (status); } } diff --git a/frysk-sys/frysk/ChangeLog b/frysk-sys/frysk/ChangeLog index 2e094d8..d81f20e 100644 --- a/frysk-sys/frysk/ChangeLog +++ b/frysk-sys/frysk/ChangeLog @@ -1,3 +1,15 @@ +2007-12-28 Andrew Cagney + + * cni/Config.cxx-in (Config::createInstall32On64Config): Delete. + (Config::createBuild32On64Config): Delete. + (Config::createInstallConfig): When 64-bit, set 32- and 64- bit paths. + (Config::createBuildConfig): Ditto. + * Config.java (createBuild32On64Config(String,String)): Delete. + (createInstall32On64Config()): Delete. + * TestConfig.java (testInstall32On64Dirs()): Delete. + (testBuild32On64Dirs()): Delete. + (testInstallDirs(), testBuildDirs()): Update. + 2007-12-17 cagney * EventLogger.java (addConsoleOptions(Parser)): Add LogOption. diff --git a/frysk-sys/frysk/Config.java b/frysk-sys/frysk/Config.java index 81013e6..45af890 100644 --- a/frysk-sys/frysk/Config.java +++ b/frysk-sys/frysk/Config.java @@ -79,11 +79,10 @@ public class Config } /** - * Create the default install tree configuration. - * - * The 32-bit and 64-bit specific library paths are set to NULL. + * Create the "native" install tree configuration; all possible + * paths, including 32-on-64 when applicable, are defined. */ - public static native final Config createInstallConfig (); + public static native final Config createInstallConfig(); /** * Create a 32-bit specific install configuration; return NULL if @@ -98,37 +97,24 @@ public class Config public static native final Config createInstallConfig64(); /** - * Create the 32-bit install tree configuration (used when running - * 32-bit tests on a 64-bit install tree). - */ - public static native final Config createInstall32On64Config (); - - /** - * Create the standard build-tree configuration. - * - * The 32-bit and 64-bit specific library paths are set to NULL. + * Create the "native" build-tree configuration; all possible + * paths, including 32-on-64 when applicable, are enabled. */ - public static native final Config createBuildConfig (String absSrcDir, - String absBuildDir); + public static native final Config createBuildConfig(String absSrcDir, + String absBuildDir); /** * Create a 32-bit specific build-tree configuration; return NULL * if this is not supported by this build. */ - public static native final Config createBuildConfig32 (String absSrcDir, - String absBuildDir); + public static native final Config createBuildConfig32(String absSrcDir, + String absBuildDir); /** * Create a 64-bit specific build-tree configuration; return NULL * if this is not supported by this build. */ - public static native final Config createBuildConfig64 (String absSrcDir, - String absBuildDir); - - /** - * Create the 32-bit on 64-bit build-tree configuration. - */ - public static native final Config createBuild32On64Config (String absSrcDir, - String absBuildDir); + public static native final Config createBuildConfig64(String absSrcDir, + String absBuildDir); /** * Return either the file or directory. diff --git a/frysk-sys/frysk/TestConfig.java b/frysk-sys/frysk/TestConfig.java index 0bb86b9..bf87364 100644 --- a/frysk-sys/frysk/TestConfig.java +++ b/frysk-sys/frysk/TestConfig.java @@ -65,24 +65,23 @@ public class TestConfig Config.set (old); } - private void validate (boolean pure) - { + private void validate(boolean pure) { // The expected paths are valid. - assertNotNull ("getGladeDir", Config.getGladeDir ()); - assertNotNull ("getHelpDir", Config.getHelpDir ()); - assertNotNull ("getImagesDir", Config.getImagesDir ()); - assertNotNull ("getBinFile", Config.getBinFile (null)); - assertNotNull ("getPkgDataFile", Config.getPkgDataFile (null)); - assertNotNull ("getPkgLibFile", Config.getPkgLibFile (null)); + assertNotNull("getGladeDir", Config.getGladeDir ()); + assertNotNull("getHelpDir", Config.getHelpDir ()); + assertNotNull("getImagesDir", Config.getImagesDir ()); + assertNotNull("getBinFile", Config.getBinFile (null)); + assertNotNull("getPkgDataFile", Config.getPkgDataFile (null)); + assertNotNull("getPkgLibFile", Config.getPkgLibFile (null)); if (pure) { assertNull("getPkgLib32File", Config.getPkgLib32File(null)); assertNull("getPkgLib64File", Config.getPkgLib64File(null)); } else { assertNotNull("getPkgLib32File", Config.getPkgLib32File(null)); assertNotNull("getPkgLib64File", Config.getPkgLib64File(null)); - assertSame("getPkgLibFile is getPkgLib32File", - Config.getPkgLibFile(null), - Config.getPkgLib32File(null)); + assertEquals("getPkgLibFile is getPkgLib64File", + Config.getPkgLibFile(null), + Config.getPkgLib64File(null)); } } @@ -93,17 +92,16 @@ public class TestConfig public void testInstallDirs () { Config.set (Config.createInstallConfig ()); - validate (true); - } - - /** - * Perform basic validation on the 32-bit on 64-bit - * install-directory configuration. - */ - public void testInstall32On64Dirs () - { - Config.set (Config.createInstall32On64Config ()); - validate (false); + switch (Config.getWordSize()) { + case 32: + validate(true); + break; + case 64: + validate(false); + break; + default: + fail("unknown word size"); + } } /** @@ -113,17 +111,16 @@ public class TestConfig public void testBuildDirs () { Config.set (Config.createBuildConfig ("src-dir", "build-dir")); - validate (true); - } - - /** - * Perform basic validation of the 32-bit on 64-bit build-tree - * configuration. - */ - public void testBuild32On64Dirs () - { - Config.set (Config.createBuild32On64Config ("src-dir", "build-dir")); - validate (false); + switch (Config.getWordSize()) { + case 32: + validate(true); + break; + case 64: + validate(false); + break; + default: + fail("unknown word size"); + } } public void testBuild32() { diff --git a/frysk-sys/frysk/cni/Config.cxx-in b/frysk-sys/frysk/cni/Config.cxx-in index fbb2e04..23bd626 100644 --- a/frysk-sys/frysk/cni/Config.cxx-in +++ b/frysk-sys/frysk/cni/Config.cxx-in @@ -101,9 +101,17 @@ frysk::Config::createInstallConfig () config->theImagesDir = JvNewStringUTF ("@imagesdir@")->intern (); config->theBinDir = asFile ("@bindir@"); config->thePkgDataDir = asFile ("@pkgdatadir@"); - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; config->thePkgLibDir = asFile ("@pkglibdir@"); + switch (sizeof(void*)) { + case 4: + config->thePkgLib32Dir = NULL; + config->thePkgLib64Dir = NULL; + break; + case 8: + config->thePkgLib32Dir = asFile ("@pkglib32dir@"); + config->thePkgLib64Dir = asFile ("@pkglib64dir@"); + break; + } return config; } @@ -153,16 +161,6 @@ frysk::Config::createInstallConfig64 () } frysk::Config* -frysk::Config::createInstall32On64Config () -{ - frysk::Config* config = createInstallConfig (); - config->thePkgLib32Dir = asFile ("@pkglib32dir@"); - config->thePkgLib64Dir = asFile ("@pkglib64dir@"); - config->thePkgLibDir = config->thePkgLib32Dir; - return config; -} - -frysk::Config* frysk::Config::createBuildConfig (jstring absSrcDir, jstring absBuildDir) { @@ -172,9 +170,17 @@ frysk::Config::createBuildConfig (jstring absSrcDir, config->theImagesDir = absSrcDir->concat (JvNewStringUTF ("/frysk/gui/imagesdir"))->intern (); config->theBinDir = asFile (absBuildDir, "/frysk/bindir/"); config->thePkgDataDir = asFile (absBuildDir, "/frysk/pkgdatadir/"); - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; config->thePkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); + switch (sizeof(void*)) { + case 4: + config->thePkgLib32Dir = NULL; + config->thePkgLib64Dir = NULL; + break; + case 8: + config->thePkgLib32Dir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); + config->thePkgLib64Dir = asFile (absBuildDir, "/frysk/pkglibdir/"); + break; + } return config; } @@ -227,14 +233,3 @@ frysk::Config::createBuildConfig64 (jstring absSrcDir, config->thePkgLib64Dir = NULL; return config; } - -frysk::Config* -frysk::Config::createBuild32On64Config (jstring absSrcDir, - jstring absBuildDir) -{ - frysk::Config* config = createBuildConfig (absSrcDir, absBuildDir); - config->thePkgLib32Dir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); - config->thePkgLib64Dir = asFile (absBuildDir, "/frysk/pkglibdir/"); - config->thePkgLibDir = config->thePkgLib32Dir; - return config; -} diff --git a/frysk-sys/frysk/junit/ChangeLog b/frysk-sys/frysk/junit/ChangeLog index 37f2fb7..96d485c 100644 --- a/frysk-sys/frysk/junit/ChangeLog +++ b/frysk-sys/frysk/junit/ChangeLog @@ -1,3 +1,25 @@ +2007-12-28 Andrew Cagney + + * Result.java (Problem.compareTo(Object)): New. + * Results.java: Replace HashSet with TreeSet. + + * Result.java (unresolved(String)): Replace unresolved(int). + (pass(String)): Replace pass(int). + (Problem(String[],String)): Replace Problem(String[],int). + * Runner.java (unresolved(String,boolean)): New. + (unresolved(int)): Use. + * Results.java (addUnresolved(String)): Replace addUnresolved(int). + (addResolved(String)): Replace addResolved(int). + * TestCase.java (skip32on64()): New. + + * Runner.java (Runner(String,String[],Config,Config,Config)): + Replace Runner(String,String[]). + (ARCH32, ARCH64): Delete. + (runArch32Cases(Collection)): Delete. + (runTestCases(Collection)): Replace + runTestCases(Collection,Config,Collection,Config). + (runArchCases(Collection)): Delete. + 2007-11-28 Andrew Cagney * TestCase.java (unresolvedOnIA32(int)): New. diff --git a/frysk-sys/frysk/junit/Result.java b/frysk-sys/frysk/junit/Result.java index 93d9ee8..84b80c3 100644 --- a/frysk-sys/frysk/junit/Result.java +++ b/frysk-sys/frysk/junit/Result.java @@ -43,13 +43,11 @@ package frysk.junit; * Possible results from running a test; see POSIX and dejagnu for * definition of states. */ -class Result -{ +class Result { /** POSIX: PASS. */ static final Result PASS = new Result("PASS"); /** POSIX: PASS (RESOLVED). */ - static final Problem pass(int bug) - { + static final Problem pass(String bug) { return new Problem(new String[] { "PASS", "UNRESOLVED" }, bug); } /** POSIX: FAIL. */ @@ -63,9 +61,8 @@ class Result return new Problem (what, unresolved, t); } /** POSIX: UNRESOLVED. */ - static Problem unresolved(int bug) - { - return new Problem (new String[] { "UNRESOLVED" }, bug); + static Problem unresolved(String bug) { + return new Problem(new String[] { "UNRESOLVED" }, bug); } /** POSIX: UNSUPPORTED. */ static final Problem unsupported (String why) @@ -110,19 +107,16 @@ class Result /** * A problem result. */ - static class Problem - extends Result - { + static class Problem extends Result implements Comparable { private final String[] reasons; private Problem(String what, String reason) { super(what); reasons = new String[] { reason }; } - private Problem(String[] whats, int bug) - { + private Problem(String[] whats, String bug) { super(whats); - reasons = new String[] { "http://sourceware.org/bugzilla/show_bug.cgi?id=" + bug }; + reasons = new String[] { bug }; } private Problem(String what, Problem unresolved, Throwable t) { @@ -155,5 +149,8 @@ class Result { return getReason().hashCode(); } + public int compareTo(Object o) { + return getReason().compareTo(((Problem)o).getReason()); + } } } diff --git a/frysk-sys/frysk/junit/Results.java b/frysk-sys/frysk/junit/Results.java index 15fe568..7d3685b 100644 --- a/frysk-sys/frysk/junit/Results.java +++ b/frysk-sys/frysk/junit/Results.java @@ -47,7 +47,7 @@ import junit.framework.Test; import junit.textui.ResultPrinter; import junit.framework.TestResult; import java.util.Set; -import java.util.HashSet; +import java.util.TreeSet; import java.util.Iterator; /** @@ -61,9 +61,9 @@ class Results private static final Logger logger = Logger.getLogger("frysk"); private static Result result; - private static final Set unresolved = new HashSet(); - private static final Set resolved = new HashSet(); - private static final Set unsupported = new HashSet(); + private static final Set unresolved = new TreeSet(); + private static final Set resolved = new TreeSet(); + private static final Set unsupported = new TreeSet(); public void startTest (Test test) hooks/post-receive -- frysk system monitor/debugger From cagney@sourceware.org Sat Dec 29 03:03:00 2007 From: cagney@sourceware.org (cagney@sourceware.org) Date: Sat, 29 Dec 2007 03:03:00 -0000 Subject: [SCM] master: Fix typo; "==" vs "!=". Message-ID: <20071229030345.11089.qmail@sourceware.org> The branch, master has been updated via 9fe41592a9cf5fe5eb8c460f8b1506035eac4651 (commit) via 00aba854dfdcad4d1693f67637ecd15973c15c10 (commit) via 228bc1e2bb2efc5e10d8ab03eba853e19ea619d8 (commit) via 445f0bcd01204b750aa02e75783e80b04b3341b4 (commit) from cb8bb46ddd11fa1b1521e2bdd4349172c36a23e6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9fe41592a9cf5fe5eb8c460f8b1506035eac4651 Author: Andrew Cagney Date: Fri Dec 28 22:03:40 2007 -0500 Fix typo; "==" vs "!=". frysk-core/frysk/syscall/ChangeLog 2007-12-28 Andrew Cagney * LinuxIA32SyscallTable.java (getSyscall(Task)): Fix typo, test if equals IPC_NUM. * LinuxPPC64SyscallTable.java: Ditto. * LinuxPPC32SyscallTable.java: Ditto. commit 00aba854dfdcad4d1693f67637ecd15973c15c10 Author: Andrew Cagney Date: Fri Dec 28 21:53:56 2007 -0500 Add unresolvedOn32On64. frysk-core/frysk/util/ChangeLog 2007-12-28 Andrew Cagney * TestCoredumpAction.java (testGeneralPurposeRegisters()): Mark as unresolved on 32-on-64, bug 5525. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * TestCase.java (unresolvedOn32On64()): New. commit 228bc1e2bb2efc5e10d8ab03eba853e19ea619d8 Author: Andrew Cagney Date: Fri Dec 28 21:24:32 2007 -0500 Replace skip32on64 with missing32or64. frysk-core/frysk/proc/ChangeLog 2007-12-28 Andrew Cagney * TestIsa.java (test64To32To64()): Update; skip32on64 renamed to missing32or64. frysk-sys/frysk/junit/ChangeLog 2007-12-28 Andrew Cagney * TestCase.java (missing32or64()): Rename skip32on64(); check both 32-bit and 64-bit library paths are valid. commit 445f0bcd01204b750aa02e75783e80b04b3341b4 Author: Andrew Cagney Date: Fri Dec 28 19:39:43 2007 -0500 Set up 32-on-64 and pure 32 configs differently. frysk-sys/frysk/ChangeLog 2007-12-28 Andrew Cagney * cni/Config.cxx-in (Config::createInstallConfig) (Config::createInstallConfig32, Config::createInstallConfig64) (Config::createBuildConfig, Config::createBuildConfig32) (Config::createBuildConfig64): Set thePkgLib32Dir when 32-bit testing needed. * TestConfig.java (verify(int)): Replace verify(boolean). ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 3 + frysk-core/frysk/proc/TestIsa.java | 2 +- frysk-core/frysk/syscall/ChangeLog | 5 ++ .../frysk/syscall/LinuxIA32SyscallTable.java | 2 +- .../frysk/syscall/LinuxPPC32SyscallTable.java | 2 +- .../frysk/syscall/LinuxPPC64SyscallTable.java | 2 +- frysk-core/frysk/util/ChangeLog | 5 ++ frysk-core/frysk/util/TestCoredumpAction.java | 11 +-- frysk-sys/frysk/ChangeLog | 7 ++ frysk-sys/frysk/TestConfig.java | 71 ++++++++++++++------ frysk-sys/frysk/cni/Config.cxx-in | 54 ++++++--------- frysk-sys/frysk/junit/ChangeLog | 5 ++ frysk-sys/frysk/junit/TestCase.java | 32 +++++++-- 13 files changed, 129 insertions(+), 72 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 5aa3bc6..0bccd95 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,8 @@ 2007-12-28 Andrew Cagney + * TestIsa.java (test64To32To64()): Update; skip32on64 renamed to + missing32or64. + * TestIsa.java (test64To32To64()): Use skip32on64(). * TestTaskSyscallObserver.java (SyscallInterruptObserver): In diff --git a/frysk-core/frysk/proc/TestIsa.java b/frysk-core/frysk/proc/TestIsa.java index 4eab6f2..1ecb4e3 100644 --- a/frysk-core/frysk/proc/TestIsa.java +++ b/frysk-core/frysk/proc/TestIsa.java @@ -259,7 +259,7 @@ public class TestIsa } public void test64To32To64 () { - if (skip32on64()) + if (missing32or64()) return; ExecCommand invoke64 = new ExecCommand(ExecCommand.Executable.BIT64); diff --git a/frysk-core/frysk/syscall/ChangeLog b/frysk-core/frysk/syscall/ChangeLog index 3a25b0f..5069f24 100644 --- a/frysk-core/frysk/syscall/ChangeLog +++ b/frysk-core/frysk/syscall/ChangeLog @@ -1,5 +1,10 @@ 2007-12-28 Andrew Cagney + * LinuxIA32SyscallTable.java (getSyscall(Task)): Fix typo, test if + equals IPC_NUM. + * LinuxPPC64SyscallTable.java: Ditto. + * LinuxPPC32SyscallTable.java: Ditto. + * package.html: New. * Syscall.java: Move from frysk.proc. * SyscallTable.java: Move from frysk.proc. diff --git a/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java index 328b7ed..1f94cbd 100644 --- a/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxIA32SyscallTable.java @@ -516,7 +516,7 @@ class LinuxIA32SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java index 2115f29..13f8e52 100644 --- a/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxPPC32SyscallTable.java @@ -530,7 +530,7 @@ class LinuxPPC32SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java index a2bb342..11fd634 100644 --- a/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java +++ b/frysk-core/frysk/syscall/LinuxPPC64SyscallTable.java @@ -535,7 +535,7 @@ class LinuxPPC64SyscallTable extends SyscallTable { if (syscall == SOCKET_NUM) return findSubcall(socketSubcallList, subcall(task), unknownSocketSubSyscall); - else if (syscall != IPC_NUM) + else if (syscall == IPC_NUM) return findSubcall(ipcSubcallList, subcall(task), unknownIpcSubSyscall); else diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index 124aaac..cce17d9 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,8 @@ +2007-12-28 Andrew Cagney + + * TestCoredumpAction.java (testGeneralPurposeRegisters()): Mark as + unresolved on 32-on-64, bug 5525. + 2007-12-21 Andrew Cagney * TestCoredumpAction.java (getArch(String)): Delete. diff --git a/frysk-core/frysk/util/TestCoredumpAction.java b/frysk-core/frysk/util/TestCoredumpAction.java index 61fce34..f0ae0d4 100644 --- a/frysk-core/frysk/util/TestCoredumpAction.java +++ b/frysk-core/frysk/util/TestCoredumpAction.java @@ -64,7 +64,6 @@ import frysk.proc.dead.LinuxHost; import frysk.testbed.DaemonBlockedAtEntry; import frysk.testbed.SlaveOffspring; import frysk.testbed.TestLib; -import frysk.Config; public class TestCoredumpAction extends TestLib @@ -201,13 +200,9 @@ public class TestCoredumpAction } - public void testGeneralPurposeRegisters () - { - - File exec32 = Config.getPkgLib32File(null); - File nativeFile = Config.getPkgLibFile(null); - if (nativeFile == exec32) - return; + public void testGeneralPurposeRegisters () { + if (unresolvedOn32On64(5525)) + return; // Construct a process Proc ackProc = giveMeABlockedProc(); diff --git a/frysk-sys/frysk/ChangeLog b/frysk-sys/frysk/ChangeLog index d81f20e..9ac5273 100644 --- a/frysk-sys/frysk/ChangeLog +++ b/frysk-sys/frysk/ChangeLog @@ -1,5 +1,12 @@ 2007-12-28 Andrew Cagney + * cni/Config.cxx-in (Config::createInstallConfig) + (Config::createInstallConfig32, Config::createInstallConfig64) + (Config::createBuildConfig, Config::createBuildConfig32) + (Config::createBuildConfig64): Set thePkgLib32Dir when 32-bit + testing needed. + * TestConfig.java (verify(int)): Replace verify(boolean). + * cni/Config.cxx-in (Config::createInstall32On64Config): Delete. (Config::createBuild32On64Config): Delete. (Config::createInstallConfig): When 64-bit, set 32- and 64- bit paths. diff --git a/frysk-sys/frysk/TestConfig.java b/frysk-sys/frysk/TestConfig.java index bf87364..8f6dcf6 100644 --- a/frysk-sys/frysk/TestConfig.java +++ b/frysk-sys/frysk/TestConfig.java @@ -65,23 +65,48 @@ public class TestConfig Config.set (old); } - private void validate(boolean pure) { + private void validate(int pure) { // The expected paths are valid. - assertNotNull("getGladeDir", Config.getGladeDir ()); - assertNotNull("getHelpDir", Config.getHelpDir ()); - assertNotNull("getImagesDir", Config.getImagesDir ()); - assertNotNull("getBinFile", Config.getBinFile (null)); - assertNotNull("getPkgDataFile", Config.getPkgDataFile (null)); - assertNotNull("getPkgLibFile", Config.getPkgLibFile (null)); - if (pure) { - assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertNotNull("getGladeDir", Config.getGladeDir()); + assertNotNull("getHelpDir", Config.getHelpDir()); + assertNotNull("getImagesDir", Config.getImagesDir()); + assertNotNull("getBinFile", Config.getBinFile(null)); + assertNotNull("getPkgDataFile", Config.getPkgDataFile(null)); + assertNotNull("getPkgLibFile", Config.getPkgLibFile(null)); + + switch (pure) { + case 32: + // Testing a pure 32-bit environment; the corresponding + // 64-bit lib must be NULL. + assertSame("getPkgLib32File", Config.getPkgLibFile(null), + Config.getPkgLib32File(null)); assertNull("getPkgLib64File", Config.getPkgLib64File(null)); - } else { + break; + case 64: + // Testing a pure 64-bit environment; the corresponding + // 32-bit lib must be NULL. + assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertSame("getPkgLib64File", Config.getPkgLibFile(null), + Config.getPkgLib64File(null)); + break; + case -32: + // Testing a 32-on-64 environment. + assertNull("getPkgLib32File", Config.getPkgLib32File(null)); + assertNotNull("getPkgLib64File", Config.getPkgLib64File(null)); + assertTrue("getPkgLibFile != getPkgLib64File", + Config.getPkgLibFile(null) + != Config.getPkgLib64File(null)); + break; + case -64: + // Testing a 64-on-64 environment assertNotNull("getPkgLib32File", Config.getPkgLib32File(null)); assertNotNull("getPkgLib64File", Config.getPkgLib64File(null)); - assertEquals("getPkgLibFile is getPkgLib64File", - Config.getPkgLibFile(null), - Config.getPkgLib64File(null)); + assertSame("getPkgLibFile == getPkgLib64File", + Config.getPkgLibFile(null), + Config.getPkgLib64File(null)); + break; + default: + fail("bad switch"); } } @@ -94,10 +119,10 @@ public class TestConfig Config.set (Config.createInstallConfig ()); switch (Config.getWordSize()) { case 32: - validate(true); + validate(32); break; case 64: - validate(false); + validate(-64); break; default: fail("unknown word size"); @@ -113,10 +138,10 @@ public class TestConfig Config.set (Config.createBuildConfig ("src-dir", "build-dir")); switch (Config.getWordSize()) { case 32: - validate(true); + validate(32); break; case 64: - validate(false); + validate(-64); break; default: fail("unknown word size"); @@ -127,8 +152,10 @@ public class TestConfig Config.set (Config.createBuildConfig32("src-dir", "build-dir")); switch (Config.getWordSize()) { case 32: + validate(32); + break; case 64: - validate (true); + validate(-32); break; default: fail("unknown word size"); @@ -138,8 +165,10 @@ public class TestConfig Config.set (Config.createInstallConfig32()); switch (Config.getWordSize()) { case 32: + validate(32); + break; case 64: - validate (true); + validate(-32); break; default: fail("unknown word size"); @@ -152,7 +181,7 @@ public class TestConfig assertNull("config", Config.get()); break; case 64: - validate (true); + validate(64); break; default: fail("unknown word size"); @@ -165,7 +194,7 @@ public class TestConfig assertNull("config", Config.get()); break; case 64: - validate (true); + validate(64); break; default: fail("unknown word size"); diff --git a/frysk-sys/frysk/cni/Config.cxx-in b/frysk-sys/frysk/cni/Config.cxx-in index 23bd626..b9d176c 100644 --- a/frysk-sys/frysk/cni/Config.cxx-in +++ b/frysk-sys/frysk/cni/Config.cxx-in @@ -104,12 +104,12 @@ frysk::Config::createInstallConfig () config->thePkgLibDir = asFile ("@pkglibdir@"); switch (sizeof(void*)) { case 4: - config->thePkgLib32Dir = NULL; + config->thePkgLib32Dir = config->thePkgLibDir; config->thePkgLib64Dir = NULL; break; case 8: config->thePkgLib32Dir = asFile ("@pkglib32dir@"); - config->thePkgLib64Dir = asFile ("@pkglib64dir@"); + config->thePkgLib64Dir = config->thePkgLibDir; break; } return config; @@ -118,45 +118,40 @@ frysk::Config::createInstallConfig () frysk::Config* frysk::Config::createInstallConfig32 () { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createInstallConfig(); switch (sizeof(long)) { case 4: - pkgLibDir = asFile("@pkglibdir@"); + // default break; case 8: // Test against 32-bit binaries. - pkgLibDir = asFile ("@pkglib32dir@"); + config->thePkgLibDir = config->thePkgLib32Dir; + // Disable "native" 32-bit. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createInstallConfig(); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } frysk::Config* frysk::Config::createInstallConfig64 () { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createInstallConfig(); switch (sizeof(long)) { case 4: // 64-bit target not supported on 32-bit host. return NULL; case 8: - pkgLibDir = asFile ("@pkglibdir@"); + // disable 32-on-64 testing. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createInstallConfig(); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } @@ -173,12 +168,12 @@ frysk::Config::createBuildConfig (jstring absSrcDir, config->thePkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); switch (sizeof(void*)) { case 4: - config->thePkgLib32Dir = NULL; + config->thePkgLib32Dir = config->thePkgLibDir; config->thePkgLib64Dir = NULL; break; case 8: config->thePkgLib32Dir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); - config->thePkgLib64Dir = asFile (absBuildDir, "/frysk/pkglibdir/"); + config->thePkgLib64Dir = config->thePkgLibDir; break; } return config; @@ -188,24 +183,22 @@ frysk::Config* frysk::Config::createBuildConfig32 (jstring absSrcDir, jstring absBuildDir) { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, + absBuildDir); switch (sizeof(long)) { case 4: - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); + // default break; case 8: // Test against 32-bit binaries. - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/arch32/"); + config->thePkgLibDir = config->thePkgLib32Dir; + // disable cross testing. + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, - absBuildDir); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } @@ -213,7 +206,8 @@ frysk::Config* frysk::Config::createBuildConfig64 (jstring absSrcDir, jstring absBuildDir) { - java::io::File* pkgLibDir; + frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, + absBuildDir); switch (sizeof(long)) { case 4: @@ -221,15 +215,11 @@ frysk::Config::createBuildConfig64 (jstring absSrcDir, return NULL; break; case 8: - pkgLibDir = asFile (absBuildDir, "/frysk/pkglibdir/"); + // disable cross testing + config->thePkgLib32Dir = NULL; break; default: return NULL; } - frysk::Config* config = frysk::Config::createBuildConfig(absSrcDir, - absBuildDir); - config->thePkgLibDir = pkgLibDir; - config->thePkgLib32Dir = NULL; - config->thePkgLib64Dir = NULL; return config; } diff --git a/frysk-sys/frysk/junit/ChangeLog b/frysk-sys/frysk/junit/ChangeLog index 96d485c..1fef743 100644 --- a/frysk-sys/frysk/junit/ChangeLog +++ b/frysk-sys/frysk/junit/ChangeLog @@ -1,5 +1,10 @@ 2007-12-28 Andrew Cagney + * TestCase.java (unresolvedOn32On64()): New. + + * TestCase.java (missing32or64()): Rename skip32on64(); check both + 32-bit and 64-bit library paths are valid. + * Result.java (Problem.compareTo(Object)): New. * Results.java: Replace HashSet with TreeSet. diff --git a/frysk-sys/frysk/junit/TestCase.java b/frysk-sys/frysk/junit/TestCase.java index 9e15ef7..8ceb981 100644 --- a/frysk-sys/frysk/junit/TestCase.java +++ b/frysk-sys/frysk/junit/TestCase.java @@ -73,17 +73,21 @@ public class TestCase } /** - * A method that returns true, and reports either UNSUPPORTED - * (32-bit) or UNRESOLVED (64-bit) when 32-on-64-bit tests are not - * possible. + * The test requires both 32-bit and 64-bit executables. + * + * This method returns true, and reports either UNSUPPORTED + * (32-bit) or UNRESOLVED (64-bit), when a full 32-bit and 64-bit + * testing environment is not available. */ - protected static boolean skip32on64() { + protected static boolean missing32or64() { + String msg = "requires both 32-bit and 64-bit"; switch (Config.getWordSize()) { case 32: - return Runner.unsupported("32-on-64", true); + return Runner.unsupported(msg, true); case 64: - return Runner.unresolved("32-on-64", - Config.getPkgLib32File(null) == null); + return Runner.unresolved(msg, + Config.getPkgLib32File(null) == null + || Config.getPkgLib64File(null) == null); default: throw new RuntimeException("unknown word-size: " + Config.getWordSize()); @@ -138,6 +142,20 @@ public class TestCase } /** + * The test has problems that have not been resolved on 64-bit + * systems trying to control a 32-bit process; see BUG for more + * details. Returns true and reports UNRESOLVED when testing + * 32-bit programs on a 64-bit system. + */ + protected static boolean unresolvedOn32On64(int bug) { + // 32-on-64 sets lib32 to NULL. + return Runner.unresolved(bug, + Config.getPkgLib32File(null) == null + && (Config.getPkgLibFile(null) + != Config.getPkgLib64File(null))); + } + + /** * Results from uname(2) call. */ private static Uname uname; hooks/post-receive -- frysk system monitor/debugger