Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
80 user(s) are online (67 user(s) are browsing Forums)

Members: 1
Guests: 79

khayoz, more...

Support us!

Headlines

 
  Register To Post  

« 1 ... 15 16 17 (18) 19 20 21 ... 72 »
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@LiveForIt

Facepalms!

while(process_count > 0)
{
IExec->Wait(SIGF_CHILD);
}



Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@broadblues

Well your the experts, I'm only do what I know works.

Go to top
Re: Odyssey 1.23 progress
Just popping in
Just popping in


See User information
@LiveForIt

Quote:
“extern” does not make sense, this is what you use when, you want to tell the compiler that we have variable, but sense its a global, we can't declare it here. But its declared else where.

So drop the "extern", it does not make sense inside TimerFunc()


Hmm... if it´s the SysBase defined by the startup code, the "extern" makes perfect sense here. SysBase is defined "elsewhere", and it should not be a local (automatic) variable of TimerFunc(). That´s what "extern" means here.

But what about this code running outside the main code´s scope?

I think that´s the reason for the "SysBase = *((struct ExecBase **) 4);" thingie. SysBase is declared inside the function (as a local, and here the "extern" indeed doesn´t make any sense. "static" would be the better choice, maybe) and must therefore be initialized with something that makes sense...

But if this is a function running within the main code´s scope only, it´s total nonsense to declare SysBase over and over. Bad coding practice

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@whose

So what happens then does a local variable become global?
Way declare it as local variable, when its already global.

No it does not make sense, I never seen it used like that.

Maybe you should have read the next line I wrote not just the two first lines.

Go to top
Re: Odyssey 1.23 progress
Just popping in
Just popping in


See User information
@LiveForIt

Sometimes it depends on the source code organization. If the files containing the whole code are organized in static modules, (global) variables like SysBase might not be visible within a certain file if they are not declared "extern".

If you don´t want to mix machine dependend code with "portable" code, it´s best practice not to mess up the "portable" code with machine dependend globals.

Locals must be initialized local, if you don´t declare them "extern" (and define the variable containing the needed value elsewhere). If the "local" variable is declared "extern", this does indeed mean that it´s a global. That´s what SysBase is in most cases. A global. For OS4, it´s a variable defined by the startup code.

Here (in this function TimerFunc() ) it is a question of context, if "extern" makes sense or if the local declaration of SysBase is meant for "clean" code.

If the function is running within the scope of the startup module, "extern" makes perfect sense (and it would lead most certainly to a crash, if you discard the "extern" qualifier). But in this case the initialization is unnecessary. SysBase is initialized already (by the startup module).

If it´s running outside this scope, the correct value of SysBase should be provided by parameter and could be used directly then.

Back in 68k times it was quite usual to initialize a local SysBase by "SysBase = *((struct ExecBase **) 4); " (although most today´s compiler´s startup code provides for SysBase), but with the advent of zeropage protection, this is bad practice.

For me, this function´s code looks a bit messy. On the one hand, global SysBase is used (MOS and OS4 port), on the other hand, "bootstrap" initialization of SysBase is used (obviously, meant for 68k systems). The scope is quite unclear here...

Edit: If the code compiles without the "extern" AND without the initialization, there must be a global SysBase already somewhere within the source file. But then it should throw at least a warning about redefinition... weird.


Edited by whose on 2014/2/27 13:33:17
Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@Andy
Quote:

using ranger should anable kas1e to chack if all Odysey processes has closed after program quit.

Via ranger all i can see, is that on first run it creates (as usuall, and same for 1.16) those process:

Quote:

[owb] javascritpcore::blockfree
[owb] icondatabase
[owb] timer


When i exit, all of them exit too. All seems fine.

Then i run second instance from shell : dsi, ignoring of which run those processes again fine and browser works. Just after i ignore DSI i have on serial:

Quote:

Task 0x65E793E0 (Shell Process) bad access @ 0x63B94608, pc = 0x018200A8, lr = 0x0182012C,


Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
From that info you ought to be able to see in ranger which app that task belongs too.

Does the DSI not give any kind of stack trace? Maybe you posted allready and I missed it.

Have you tried running this from gdb? I know it has it's limitations but it might still catch something...


Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@Andy
Quote:

From that info you ought to be able to see in ranger which app that task belongs too.


http://kas1e.mikendezign.com/temp/ranger.jpg

Quote:

Does the DSI not give any kind of stack trace? Maybe you posted allready and I missed it.


Dump of context at 0xEFC10BA0 
Trap type
DSI exception 
Machine State 
(raw): 0x0200F030 
Machine State 
(verbose): [ExtInt on] [User] [FPU on] [IAT on] [DAT on
Instruction pointerin module kernel+0x0002009C (0x0182009C
Crashed processowb (0x6335EA50
DSI verbose error descriptionAccess not found in hash or BAT (page fault
Access was a load operation 
 0
65ABF604 64475950 020C2BEC 65ABF600 60534B60 60534B60 00000108 60534B70 
 8
000000D3 020C2BEC 00000100 021D69A6 FFFFFFF7 64915BE0 00000000 65FF26C0 
16
7D4C9040 00000000 63368090 64475C08 02290000 02290000 00000000 00000001 
24
62ADF7D0 62ADF7D0 00000000 020A0000 7EC96FBC 60534B60 65ABF600 020C2BEC 
CR
22842B84   XER60008F50  CTR: 018200B0  LR: 0182012
DSISR
40000000  DAR65ABF608 

FP0 
FFF8000082024000 3FF0000000000000 3FEFFFEB000DC7F7 41D4C3A5BC5E0CF2 
FP4 
0000000000000000 4048E66660000000 405FF33340000000 41E0000000000000 
FP8 
0000000000000000 BF60182436517A27 3ED0306CD997DDE4 BF701ACDBB94A830 
FP12
3FF0000000000000 4052000000000000 0000000000000000 0000000000000000 
FP16
0000000000000000 0000000000000000 0000000000000000 0000000000000000 
FP20
0000000000000000 0000000000000000 0000000000000000 0000000000000000 
FP24
0000000000000000 0000000000000000 0000000000000000 0000000000000000 
FP28
0000000000000000 0000000000000000 0000000000000000 0000000000000000 
FPSCR
82024000 

V0 
00000000000000000000000000000000 00000000000000000000000000000000 
V2 
FE0113ECFE0124DBFE013FC0FE013FC0 FE0113ECFE0124DBFE013FC0FE013FC0 
V4 
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 01000100010001000100010001000100 
V6 
00000000000000000000000000000000 00000000000000000000000000000000 
V8 
00000000000000000000000000000000 00000000000000000000000000000000 
V10
01010101010101010101010101010101 00000000000000000000000000000000 
V12
00000000000000000000000000000000 00000000000000000000000000000000 
V14
: 001002120414061608180A1A0C1C0E1E 01000100010001000100010001000100 
V16
FF000000FF000000FF000000FF000000 FF49140FFF8B251CFFEE4030FFEE4030 
V18
00000000000000000000000000000000 00000000000000000000000000000000 
V20
00000000000000000000000000000000 00000000000000000000000000000000 
V22
00000000000000000000000000000000 00000000000000000000000000000000 
V24
00000000000000000000000000000000 00000000000000000000000000000000 
V26
00000000000000000000000000000000 00000000000000000000000000000000 
V28
00000000000000000000000000000000 00000000000000000000000000000000 
V30
00000000000000000000000000000000 00000000000000000000000000000000 
VSCR
00000000 VRSAVE00000000 

Kernel command line
serial munge 

Registers pointing to code

r2 native kernel module kernel+0x008c2bec 
r9 
native kernel module kernel+0x008c2bec 
r11
native kernel module kernel+0x009d69a6 
r13
_ZGVZN7WebCore22InspectorDebuggerAgent21sourceMapURLForScriptERKNS_19ScriptDebugListener6ScriptEE29sourceMapHTTPHeaderDeprecated()+0x0 (section 22 0x54F4)
r16main()+0x0 (section 1 0x101C
r23module owb at 0x00000001 (section 0 0xFFFFFFDC
r27native kernel module kernel+0x008a0000 
r28
_ZN3WTF23threadSpecificKeyCreateEPPNS_18ThreadSpecificNodeEPFvPvE()+0xac (section 1 0x17CEF98
r31native kernel module kernel+0x008c2bec 
ip 
native kernel module kernel+0x0002009c 
lr 
native kernel module kernel+0x0002012c 
ctr
native kernel module kernel+0x000200b0 

Stack trace

(
0x64475950native kernel module kernel+0x0002009c 
(0x64475980native kernel module kernel+0x0002012c 
(0x644759A0_ZN3WTF19initializeThreadingEv()+0x3a4 (section 1 0x17A9F30
(
0x64475A10_ZN3JSC19initializeThreadingEv()+0x64 (section 1 0x150B12C
(
0x64475A20_ZL12handleOM_NEWP6IClassPmP5opSet()+0x134 (section 1 0x95F8
(
0x64475AE0_ZL8dispatchP6IClassPmP4_Msg()+0x438 (section 1 0xF554
(
0x64475B20native kernel module intuition.library.kmod+0x0001824c 
(0x64475B80native kernel module intuition.library.kmod+0x00018470 
(0x64475C00native kernel module intuition.library.kmod+0x0000839c 
(0x64475C30native kernel module intuition.library.kmod+0x00008130 
(0x64475CA0_Z18create_applicationPc()+0xd4 (section 1 0x628
(
0x64475CD0main()+0x144 (section 1 0x1160
(
0x64475D00native kernel module newlib.library.kmod+0x000020a4 
(0x64475D70native kernel module newlib.library.kmod+0x00002d0c 
(0x64475F10native kernel module newlib.library.kmod+0x00002ee8 
(0x64475F50_start()+0x170 (section 1 0x16C
(
0x64475F90native kernel module dos.library.kmod+0x00025208 
(0x64475FC0native kernel module kernel+0x0006acdc 
(0x64475FD0native kernel module kernel+0x0006ad5c 

Disassembly of crash site

 0182008
C7FE00008   trap 
 
01820090: 4BFFFEB4   b                 0x181FF44 
 
01820094: 38030004   addi              r0,r3,
 
01820098: 90040000   stw               r0,0(r4
>0182009
C81230008   lwz               r9,8(r3
 018200
A090890000   stw               r4,0(r9
 018200
A491240004   stw               r9,4(r4
 018200
A890830008   stw               r4,8(r3
 018200
AC4E800020   blr 
 
018200B07C0802A6   mflr              r0 
Stack pointer 
(0x64475950is inside bounds 
Redzone is OK 
(4)



Also do check this way: i just run odyssey from shell, exit, close that shell window, spawn new one, run odyssey : all works (but that expected, as it kind of new instance).

Running second time in new tab : works too.
Running third time in another tab: works too.

"endcli" in all tabs after i run second or third instance works fine, i can exit from them, etc (so no locked or whatever).

Only problem is exactly in the same shell window run/exit/run again.

Quote:

Have you tried running this from gdb? I know it has it's limitations but it might still catch something...


Well , as it will be inside of gdb, it will spawn for every new run new process and there will be no crash :) (as it didn't crashes for as in all places, only direct run from the same shell window in the same tab). Or you mean attach to gdb when its already crashed ? Tried as well, backtrace / bt just show some mess. Or if you mean to do so because dind't see crashlog : nope, our reaper catch it fine, i even post it before and recopy it in that post again.

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@whose

Quote:

Edit: If the code compiles without the "extern" AND without the initialization, there must be a global SysBase already somewhere within the source file. But then it should throw at least a warning about redefinition... weird.


It'll quite happily compile without error that way under OS4 as the SysBase variable is not access directly ( functuion calls are using IExec) (if -wall is in use it might throw up an warning about it being unused)


Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@Fab
Quote:

Probably your threading backend has an issue with the startup/end message handling. It might only appear now in 1,23 because more threads are involved (garbage collector thread, localstorage thread and, all the mediaplayer threads and so on...).


But it just happens when i only run odyssey , do nothing (so only about: page), quit, and run it again. At thise moment imho only few threads involved (those which was in 1.16 as well) ?

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
Quote:

(0x644759A0) _ZN3WTF19initializeThreadingEv()+0x3a4 (section 1 @ 0x17A9F30)
(0x64475A10) _ZN3JSC19initializeThreadingEv()+0x64 (section 1 @ 0x150B12C)


What does this correspond too in the source?

How come your trace has no line numbers? Are you not building with -gstabs? Unless that (linenumber in trace) doesn't work for c++ code?

New tabs (*cough*) correspond to new shells so will not crash. It really seems that Odyssey is trashing something in the shell.

If you run a different program afer odyssey do you get a crash? Perhaps try one that uses pthreads. (OWB or blender or something).


Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@Andy

Quote:

What does this correspond too in the source?


http://kas1e.mikendezign.com/temp/threading/BCThreadingMorphOS.cpp

(check for void initializeThreading() ).


Quote:

How come your trace has no line numbers? Are you not building with -gstabs? Unless that (linenumber in trace) doesn't work for c++ code?


Enabling -gstabs lead to 1gb binary or something, 700 or 800mb do not remember => unpossible to works with, as all very uber slow and co (compiling, linking, etc)

Quote:

f you run a different program afer odyssey do you get a crash? Perhaps try one that uses pthreads. (OWB or blender or something).


Yep, have crash if i just run odyssey, then close, and then run joerg's owb for example. Crashlog:

Dump of context at 0xEFD8EBA0
Trap type
DSI exception
Machine State 
(raw): 0x0200F030
Machine State 
(verbose): [ExtInt on] [User] [FPU on] [IAT on] [DAT on]
Instruction pointer0x7EC3A9C0
Crashed process
owb (0x65F737E0)
DSI verbose error descriptionAccess not found in hash or BAT (page fault)
Access was a load operation
 0
00004000 63689310 63F552D0 021D69A6 00004000 00000000 00000000 0181CC00
 8
FFFFFFFF 00000000 00000001 80000017 63689320 63F6FC58 00000000 6526A6C0
16
7EC45B44 00000001 68293420 63647400 00004000 00000000 00000000 00000001
24
6FF90000 00000001 020A0000 00000000 00004000 020A0000 020C2BEC 021D69A6
CR
55953E59   XERC000BE6F  CTR00000000  LR: 0181CC00
DSISR
40000000  DAR00000000

FP0 
FFF8000082002000 0000000000000000 41D4C403FE9270B9 41D4C403FE9270B9
FP4 
0000000000000000 4048E66660000000 405FF33340000000 41E0000000000000
FP8 
4060000000000000 402A000000000000 4001100000000000 FFF8000000022200
FP12
4028000000000000 7FF0000000000000 0000000000000000 0000000000000000
FP16
0000000000000000 0000000000000000 0000000000000000 0000000000000000
FP20
0000000000000000 0000000000000000 0000000000000000 0000000000000000
FP24
0000000000000000 0000000000000000 0000000000000000 0000000000000000
FP28
0000000000000000 0000000000000000 0000000000000000 0000000000000000
FPSCR
82002000

V0 
00000000000000000000000000000000 FFDBDBDBFFDBDBDBFFDBDBDBFFDBDBDB
V2 
FE01DA25FE01DA25FE01DA25FE01DA25 FE01DA25FE01DA25FE01DA25FE01DA25
V4 
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DB25DB25DB25DB25DB25DB25DB25DB25
V6 
FE01DA25FE01DA25FE01DA25FE01DA25 00000000010101010202020203030303
V8 
00000000000000000000000000000000 DA25DA25DA25DA25DA25DA25DA25DA25
V10
FFDBDBDBFFDBDBDBFFDBDBDBFFDBDBDB 00000000010101010202020203030303
V12
FE01DA25FE01DA25FE01DA25FE01DA25 00000000000000000000000000000000
V14
: 001002120414061608180A1A0C1C0E1E 01000100010001000100010001000100
V16
FF000000FF000000FF000000FF000000 FFDBDBDBFFDBDBDBFFDBDBDBFFDBDBDB
V18
00000000000000000000000000000000 00000000000000000000000000000000
V20
00000000000000000000000000000000 00000000000000000000000000000000
V22
00000000000000000000000000000000 00000000000000000000000000000000
V24
00000000000000000000000000000000 00000000000000000000000000000000
V26
00000000000000000000000000000000 00000000000000000000000000000000
V28
00000000000000000000000000000000 00000000000000000000000000000000
V30
00000000000000000000000000000000 00000000000000000000000000000000
VSCR
00000000 VRSAVE00000000

Kernel command line
serial munge

Registers pointing to code
:
r2 module owb at 0x63F552D0 (section 4 0x26C)
r3 native kernel module kernel+0x009d69a6
r7 
native kernel module kernel+0x0001cc00
r10
module CURRDIR:icudata.owb at 0x00000001 (section 0 0xFFFFFFDC)
r13module owb at 0x63F6FC58 (section 4 0x1ABF4)
r16module owb at 0x7EC45B44 (section 5 0xFB20)
r17module CURRDIR:icudata.owb at 0x00000001 (section 0 0xFFFFFFDC)
r23module CURRDIR:icudata.owb at 0x00000001 (section 0 0xFFFFFFDC)
r25module CURRDIR:icudata.owb at 0x00000001 (section 0 0xFFFFFFDC)
r26native kernel module kernel+0x008a0000
r29
native kernel module kernel+0x008a0000
r30
native kernel module kernel+0x008c2bec
r31
native kernel module kernel+0x009d69a6
ip 
module owb at 0x7EC3A9C0 (section 5 0x499C)
lr native kernel module kernel+0x0001cc00
ctr
unknown (0x00000000)

Stack trace:
(
0x63689310module owb at 0x7EC3A9C0 (section 5 0x499C)
(
0x63689C10native kernel module kernel+0x0001cc00
(0x63689C30native kernel module kernel+0x0002d5d8
(0x63689C60module owb at 0x7EC45BAC (section 5 0xFB88)
(
0x6368BD00native kernel module newlib.library.kmod+0x000020a4
(0x6368BD70native kernel module newlib.library.kmod+0x00002d0c
(0x6368BF10native kernel module newlib.library.kmod+0x00002ee8
(0x6368BF50_start()+0x180 (section 1 0x17C)
(
0x6368BF90native kernel module dos.library.kmod+0x00025208
(0x6368BFC0native kernel module kernel+0x0006acdc
(0x6368BFD0native kernel module kernel+0x0006ad5c

Disassembly of crash site
:
 
7EC3A9B04E800020   blr
 7EC3A9B4
70804000   andi.             r0,r4,16384
 7EC3A9B8
4182000C   beq-              0x7EC3A9C4
 7EC3A9BC
39200000   li                r9,0
>7EC3A9C088090000   lbz               r0,0(r9)
 
7EC3A9C438604000   li                r3,16384
 7EC3A9C8
4E800020   blr
 7EC3A9CC
9421FFC0   stwu              r1,-64(r1)
 
7EC3A9D07C0802A6   mflr              r0
 7EC3A9D4
3D220001   addis             r9,r2,1
Stack pointer 
(0x63689310is inside bounds
Redzone is OK 
(4)





Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@kas1e

Quote:


Enabling -gstabs lead to 1gb binary or something, 700 or 800mb do not remember => unpossible to works with, as all very uber slow and co (compiling, linking, etc)



Well enable it just for the areas that crash then! How do you expect to debug something without debuging enabled? It might be slow but you'll find the bugs in less iterations. Disable optimisation too, to get a more complete stack trace.

As other programs are crashing it suggest the shell process is being trashed in some way. Very hard to see how.

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@Andy
Quote:

Well enable it just for the areas that crash then! How do you expect to debug something without debuging enabled?


Same as morphos guys do: via objdump :)

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@kas1e

Quote:Writing, reading and using ID_CSET is still missing.


Quote:
Quote:
Are you sure the MorphOS NP_StartupMsg is 100% compatible to the AmigaOS NP_NotifyOnDeathMessage?

Not 100% sure,
You don't know what it does on MorphOS and use a random AmigaOS tag as replacement and even think that could work Are you joking!?
If you don't understand the MorphOS code at all and can't port it to AmigaOS why don't you simply use the working AmigaOS code from OWB instead?


As for destroying the shell/process structure: Search for all FindTask() calls in the MorphOS code, delete everything it does with struct Task, struct Process, etc., and reimplement the code for AmigaOS. If it's not the child processes it's some other incompatible MorphOS code you didn't port to AmigaOS yet, most likely something messing around with struct Process.

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@kas1e

So you have this function initializeThreading() that does some thing bad, it ends up in the kernel some where.

Clearly you should investigate where in initializeThreading() that things go wrong.

My wild guess is that it might have some thing to whit “New” Mutex initializers.

Just do printf() for etch line, or if your good whit GDB set backpoint at initializeThreading(), that way step line for line, just remember to compile whit -ggdb to get more debug information.

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@kas1e

I don't think this code I'm quoting has anything to do whit the crash, but for me it looks like some thing that's going to lockup.

How can you disable multitasking and expect some one to signal the program, when this is the only program running.

/* disable task switches. we must atomically unlock the mutex and wait for
     * the signal, otherwise the signal may be missed */
    
Forbid();

    
/* release the mutex that protects the condition */
    
mutex.unlock();

    
/* and now wait for someone to hit the condition. this will break the
     * Forbid(), which is what we want */
    
Wait(SIGF_SINGLE);

    
/* the Forbid() is restored when Wait() exits, so we have to turn task
     * switches on again. */
    
Permit();


Edited by LiveForIt on 2014/2/27 17:13:16
Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@LiveForIt

Quote:
I don't think this code I'm quoting is has anything to do whit the crash, but for me it looks like some thing thats going to lockup.

How can you disable multitasking and expect some one to signal the program, when this is the only program running.
As written in the CAUTION part of the autodoc calling IExec->Wait() breaks the forbid state and multitasking is enabled, after IExec->Wait() returned it's disabled again.

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@joerg
Quote:

You don't know what it does on MorphOS and use a random AmigaOS tag as replacement and even think that could work


We replace it on equivalent after fab explain what it do on morphos. But on amiga you can't be sure on 100% with anything, that why i say "not on 100%". If you have any other better solution then why not of course , will try it too :)

Quote:

why don't you simply use the working AmigaOS code from OWB instead?


Its not that easy, as everything refers to each other , i was happy enough when i just can reuse your pointers code.

Quote:

As for destroying the shell/process structure: Search for all FindTask() calls in the MorphOS code, delete everything it does with struct Task, struct Process, etc., and reimplement the code for AmigaOS. If it's not the child processes it's some other incompatible MorphOS code you didn't port to AmigaOS yet, most likely something messing around with struct Process.


Do search for all FindTaks in all the code everywhere, and there is all files which contain it (not many):

http://kas1e.mikendezign.com/temp/findtask/

Through i am about to die on it for today, and can't think anymore about :) Maybe you will find something if you have some time . Probably Mediplayer parts can be done somehow bad (as it fresh stuff in 1.23)

Go to top
Re: Odyssey 1.23 progress
Home away from home
Home away from home


See User information
@kas1e

Quote:
But on amiga you can't be sure on 100% with anything, that why i say "not on 100%".
You can be 100% sure AmigaOS code works on AmigaOS, and 100% sure code of incompatible OSes like AROS and MorphOS doesn't

Go to top

  Register To Post
« 1 ... 15 16 17 (18) 19 20 21 ... 72 »

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )




Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project