You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by Kayo Hamid <kh...@gmail.com> on 2012/05/26 05:59:48 UTC

[AUTOSAVE] Where is

Hello, i'm having problems with autosave and want to see around the 
code, where is the implementation?

ooo/trunk/main/framework/qa/complex/framework/autosave ?

Thanks,
Kayo Hamid.

Re: [AUTOSAVE] Where is

Posted by Kayo Hamid <kh...@gmail.com>.
2012/5/26 Ariel Constenla-Haile <ar...@apache.org>

> Hi Kayo,
>
> On Fri, May 25, 2012 at 11:59:48PM -0400, Kayo Hamid wrote:
> > Hello, i'm having problems with autosave and want to see around the
> > code, where is the implementation?
> >
> > ooo/trunk/main/framework/qa/complex/framework/autosave ?
>
> Everything in $MODULE/qa is just QA test.
>
> Are you looking for the code related to "Tools" - "Options..."
> - "Load/Save" - "Always create backup copy" or "Save AutoRecovery
>  information every..."? These are to related, though different things.
>
> The easiest I can imagine is:
> - build sfx2 and framework with debugging symbols
> - open a Writer document
> - attach the debugger
> - set a break point on SfxObjectShell::SaveTo_Impl
>
> (gdb) break SfxObjectShell::SaveTo_Impl
> Breakpoint 1 at 0x7fbe9f3f2c0f: file
> /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx, line 1142.
> (gdb) c
> Continuing.
>
>
> modify the document, and when it tries to autosave itself, you'll get:
>
>
> Breakpoint 1, SfxObjectShell::SaveTo_Impl (this=0x2a52b08, rMedium=...,
> pSet=0x0) at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:1142
> 1142        RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE
> SfxObjectShell::SaveTo_Impl" );
> (gdb) bt
> #0  SfxObjectShell::SaveTo_Impl (this=0x2a52b08, rMedium=..., pSet=0x0) at
> /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:1142
> #1  0x00007fbe9f3fc087 in SfxObjectShell::PreDoSaveAs_Impl
> (this=0x2a52b08, rFileName=..., aFilterName=..., pParams=0x32f06d8)
>    at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:2967
> #2  0x00007fbe9f3fb633 in SfxObjectShell::CommonSaveAs_Impl
> (this=0x2a52b08, aURL=..., aFilterName=..., aParams=0x33323a8)
>    at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:2821
> #3  0x00007fbe9f3e6587 in SfxObjectShell::APISaveAs_Impl (this=0x2a52b08,
> aFileName=..., aParams=0x33323a8)
>    at /build/aoo/trunk/main/sfx2/source/doc/objserv.cxx:339
> #4  0x00007fbe9f437409 in SfxBaseModel::impl_store (this=0x2880cc0,
> sURL=..., seqArguments=..., bSaveTo=1 '\001')
>    at /build/aoo/trunk/main/sfx2/source/doc/sfxbasemodel.cxx:2910
> #5  0x00007fbe9f430ed7 in SfxBaseModel::storeToRecoveryFile
> (this=0x2880cc0, i_TargetLocation=..., i_MediaDescriptor=...)
>    at /build/aoo/trunk/main/sfx2/source/doc/sfxbasemodel.cxx:1759
> #6  0x00007fbe8c3d309b in framework::AutoRecovery::implts_saveOneDoc
> (this=0x2074320, sBackupPath=..., rInfo=..., xExternalProgress=...)
>    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:2449
> #7  0x00007fbe8c3d28d4 in framework::AutoRecovery::implts_saveDocs
> (this=0x2074320, bAllowUserIdleLoop=1 '\001', bRemoveLockFiles=0 '\000',
> pParams=0x0)
>    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:2364
> #8  0x00007fbe8c3d0004 in framework::AutoRecovery::implts_timerExpired
> (this=0x2074320) at
> /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:1683
> #9  0x00007fbe8c3cfe13 in
> framework::AutoRecovery::LinkStubimplts_timerExpired (pThis=0x2074320,
> pCaller=0x2074448)
>    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:1618
> #10 0x00007fbe9caee978 in Link::Call (this=0x2074468, pCaller=0x2074448)
> at /build/aoo/trunk/main/solver/340/unxlngx6/inc/tools/link.hxx:135
> #11 0x00007fbe9cb0700d in Timer::Timeout (this=0x2074448) at
> /build/aoo/trunk/main/vcl/source/app/timer.cxx:253
> #12 0x00007fbe9cb06c76 in Timer::ImplTimerCallbackProc () at
> /build/aoo/trunk/main/vcl/source/app/timer.cxx:141
> #13 0x00007fbe918cc613 in SalTimer::CallCallback (this=0x1fe25f8) at
> /build/aoo/trunk/main/vcl/inc/saltimer.hxx:61
> #14 0x00007fbe918cc3a6 in X11SalData::Timeout (this=0x12bafa8) at
> /build/aoo/trunk/main/vcl/unx/generic/app/saltimer.cxx:45
> #15 0x00007fbe91c2dd80 in GtkXLib::timeoutFn (data=0x12bed68) at
> /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:745
> #16 0x00007fbe91c2dcd4 in call_timeoutFn (data=0x12bed68) at
> /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:725
> #17 0x0000003157e4672b in ?? () from /lib64/libglib-2.0.so.0
> #18 0x0000003157e44f3d in g_main_context_dispatch () from
> /lib64/libglib-2.0.so.0
> #19 0x0000003157e45738 in ?? () from /lib64/libglib-2.0.so.0
> #20 0x0000003157e4590c in g_main_context_iteration () from
> /lib64/libglib-2.0.so.0
> #21 0x00007fbe91c2e202 in GtkXLib::Yield (this=0x12bed68, bWait=true,
> bHandleAllCurrentEvents=false) at
> /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:874
> #22 0x00007fbe918c924f in X11SalInstance::Yield (this=0x12bae78,
> bWait=true, bHandleAllCurrentEvents=false)
>    at /build/aoo/trunk/main/vcl/unx/generic/app/salinst.cxx:278
> #23 0x00007fbe9caff637 in ImplYield (i_bWait=true, i_bAllEvents=false) at
> /build/aoo/trunk/main/vcl/source/app/svapp.cxx:472
> #24 0x00007fbe9cafb7ed in Application::Yield (i_bAllEvents=false) at
> /build/aoo/trunk/main/vcl/source/app/svapp.cxx:506
> #25 0x00007fbe9cafb789 in Application::Execute () at
> /build/aoo/trunk/main/vcl/source/app/svapp.cxx:449
> #26 0x00007fbea0a2b44d in desktop::Desktop::Main (this=0x7fff3c37b550) at
> /build/aoo/trunk/main/desktop/source/app/app.cxx:2159
> #27 0x00007fbe9cb0501e in ImplSVMain () at
> /build/aoo/trunk/main/vcl/source/app/svmain.cxx:193
> #28 0x00007fbe9cb05163 in SVMain () at
> /build/aoo/trunk/main/vcl/source/app/svmain.cxx:230
> #29 0x00007fbea0a5f7ff in soffice_main () at
> /build/aoo/trunk/main/desktop/source/app/sofficemain.cxx:45
> #30 0x00000000004011f4 in sal_main () at main.c:31
> #31 0x00000000004011d9 in main (argc=1, argv=0x7fff3c37b708) at main.c:30
> (gdb)
>
> This is a good starting point to investigate.
>
> Regards
> --
> Ariel Constenla-Haile
> La Plata, Argentina
>

Thanks! I will catch the fish now ;-)

-- 
Kayo Hamid

(Em casa, usando meu tempo livre para fazer o que gosto)
(In home using my free time to do what I like)

Re: [AUTOSAVE] Where is

Posted by Ariel Constenla-Haile <ar...@apache.org>.
Hi Kayo,

On Fri, May 25, 2012 at 11:59:48PM -0400, Kayo Hamid wrote:
> Hello, i'm having problems with autosave and want to see around the
> code, where is the implementation?
> 
> ooo/trunk/main/framework/qa/complex/framework/autosave ?

Everything in $MODULE/qa is just QA test.

Are you looking for the code related to "Tools" - "Options..."
- "Load/Save" - "Always create backup copy" or "Save AutoRecovery
  information every..."? These are to related, though different things.

The easiest I can imagine is:
- build sfx2 and framework with debugging symbols
- open a Writer document
- attach the debugger
- set a break point on SfxObjectShell::SaveTo_Impl

(gdb) break SfxObjectShell::SaveTo_Impl
Breakpoint 1 at 0x7fbe9f3f2c0f: file /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx, line 1142.
(gdb) c
Continuing.


modify the document, and when it tries to autosave itself, you'll get:


Breakpoint 1, SfxObjectShell::SaveTo_Impl (this=0x2a52b08, rMedium=..., pSet=0x0) at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:1142
1142        RTL_LOGFILE_PRODUCT_CONTEXT( aLog, "PERFORMANCE SfxObjectShell::SaveTo_Impl" );
(gdb) bt
#0  SfxObjectShell::SaveTo_Impl (this=0x2a52b08, rMedium=..., pSet=0x0) at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:1142
#1  0x00007fbe9f3fc087 in SfxObjectShell::PreDoSaveAs_Impl (this=0x2a52b08, rFileName=..., aFilterName=..., pParams=0x32f06d8)
    at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:2967
#2  0x00007fbe9f3fb633 in SfxObjectShell::CommonSaveAs_Impl (this=0x2a52b08, aURL=..., aFilterName=..., aParams=0x33323a8)
    at /build/aoo/trunk/main/sfx2/source/doc/objstor.cxx:2821
#3  0x00007fbe9f3e6587 in SfxObjectShell::APISaveAs_Impl (this=0x2a52b08, aFileName=..., aParams=0x33323a8)
    at /build/aoo/trunk/main/sfx2/source/doc/objserv.cxx:339
#4  0x00007fbe9f437409 in SfxBaseModel::impl_store (this=0x2880cc0, sURL=..., seqArguments=..., bSaveTo=1 '\001')
    at /build/aoo/trunk/main/sfx2/source/doc/sfxbasemodel.cxx:2910
#5  0x00007fbe9f430ed7 in SfxBaseModel::storeToRecoveryFile (this=0x2880cc0, i_TargetLocation=..., i_MediaDescriptor=...)
    at /build/aoo/trunk/main/sfx2/source/doc/sfxbasemodel.cxx:1759
#6  0x00007fbe8c3d309b in framework::AutoRecovery::implts_saveOneDoc (this=0x2074320, sBackupPath=..., rInfo=..., xExternalProgress=...)
    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:2449
#7  0x00007fbe8c3d28d4 in framework::AutoRecovery::implts_saveDocs (this=0x2074320, bAllowUserIdleLoop=1 '\001', bRemoveLockFiles=0 '\000', pParams=0x0)
    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:2364
#8  0x00007fbe8c3d0004 in framework::AutoRecovery::implts_timerExpired (this=0x2074320) at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:1683
#9  0x00007fbe8c3cfe13 in framework::AutoRecovery::LinkStubimplts_timerExpired (pThis=0x2074320, pCaller=0x2074448)
    at /build/aoo/trunk/main/framework/source/services/autorecovery.cxx:1618
#10 0x00007fbe9caee978 in Link::Call (this=0x2074468, pCaller=0x2074448) at /build/aoo/trunk/main/solver/340/unxlngx6/inc/tools/link.hxx:135
#11 0x00007fbe9cb0700d in Timer::Timeout (this=0x2074448) at /build/aoo/trunk/main/vcl/source/app/timer.cxx:253
#12 0x00007fbe9cb06c76 in Timer::ImplTimerCallbackProc () at /build/aoo/trunk/main/vcl/source/app/timer.cxx:141
#13 0x00007fbe918cc613 in SalTimer::CallCallback (this=0x1fe25f8) at /build/aoo/trunk/main/vcl/inc/saltimer.hxx:61
#14 0x00007fbe918cc3a6 in X11SalData::Timeout (this=0x12bafa8) at /build/aoo/trunk/main/vcl/unx/generic/app/saltimer.cxx:45
#15 0x00007fbe91c2dd80 in GtkXLib::timeoutFn (data=0x12bed68) at /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:745
#16 0x00007fbe91c2dcd4 in call_timeoutFn (data=0x12bed68) at /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:725
#17 0x0000003157e4672b in ?? () from /lib64/libglib-2.0.so.0
#18 0x0000003157e44f3d in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#19 0x0000003157e45738 in ?? () from /lib64/libglib-2.0.so.0
#20 0x0000003157e4590c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#21 0x00007fbe91c2e202 in GtkXLib::Yield (this=0x12bed68, bWait=true, bHandleAllCurrentEvents=false) at /build/aoo/trunk/main/vcl/unx/gtk/app/gtkdata.cxx:874
#22 0x00007fbe918c924f in X11SalInstance::Yield (this=0x12bae78, bWait=true, bHandleAllCurrentEvents=false)
    at /build/aoo/trunk/main/vcl/unx/generic/app/salinst.cxx:278
#23 0x00007fbe9caff637 in ImplYield (i_bWait=true, i_bAllEvents=false) at /build/aoo/trunk/main/vcl/source/app/svapp.cxx:472
#24 0x00007fbe9cafb7ed in Application::Yield (i_bAllEvents=false) at /build/aoo/trunk/main/vcl/source/app/svapp.cxx:506
#25 0x00007fbe9cafb789 in Application::Execute () at /build/aoo/trunk/main/vcl/source/app/svapp.cxx:449
#26 0x00007fbea0a2b44d in desktop::Desktop::Main (this=0x7fff3c37b550) at /build/aoo/trunk/main/desktop/source/app/app.cxx:2159
#27 0x00007fbe9cb0501e in ImplSVMain () at /build/aoo/trunk/main/vcl/source/app/svmain.cxx:193
#28 0x00007fbe9cb05163 in SVMain () at /build/aoo/trunk/main/vcl/source/app/svmain.cxx:230
#29 0x00007fbea0a5f7ff in soffice_main () at /build/aoo/trunk/main/desktop/source/app/sofficemain.cxx:45
#30 0x00000000004011f4 in sal_main () at main.c:31
#31 0x00000000004011d9 in main (argc=1, argv=0x7fff3c37b708) at main.c:30
(gdb)

This is a good starting point to investigate.

Regards
-- 
Ariel Constenla-Haile
La Plata, Argentina

Re: [AUTOSAVE] Where is

Posted by Chao Huang <ch...@gmail.com>.
Pleasem refer to the class AutoRecovery in file *
main\framework\source\services\autorecovery.cxx*

You can get started with function

AutoRecovery::ETimerType AutoRecovery::implts_saveDocs(
sal_Bool        bAllowUserIdleLoop,

sal_Bool        bRemoveLockFiles,
                                                       const
DispatchParams* pParams           )


2012/5/26 Kayo Hamid <kh...@gmail.com>

> Hello, i'm having problems with autosave and want to see around the code,
> where is the implementation?
>
> ooo/trunk/main/framework/qa/**complex/framework/autosave ?
>
> Thanks,
> Kayo Hamid.
>



-- 
Best regards,
Chao Huang

Re: [AUTOSAVE] Where is

Posted by Andrew Douglas Pitonyak <an...@pitonyak.org>.

On 05/27/2012 12:53 AM, Andrew Douglas Pitonyak wrote:
> On 05/25/2012 11:59 PM, Kayo Hamid wrote:
>> Hello, i'm having problems with autosave and want to see around the 
>> code, where is the implementation?
>>
>> ooo/trunk/main/framework/qa/complex/framework/autosave ?
>>
>> Thanks,
>> Kayo Hamid.
>>
> What problem are you chasing? Is it a problem with disappearing 
> graphics? If yes, is it something like this: 
> https://www.libreoffice.org/bugzilla/show_bug.cgi?id=33393
>
> If yes, I may have some extra information...
>
I assume not since I performed some tests and see that information is 
not lost based on the tests referenced at the link.

-- 
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php


Re: [AUTOSAVE] Where is

Posted by Andrew Douglas Pitonyak <an...@pitonyak.org>.
On 05/25/2012 11:59 PM, Kayo Hamid wrote:
> Hello, i'm having problems with autosave and want to see around the 
> code, where is the implementation?
>
> ooo/trunk/main/framework/qa/complex/framework/autosave ?
>
> Thanks,
> Kayo Hamid.
>
What problem are you chasing? Is it a problem with disappearing 
graphics? If yes, is it something like this: 
https://www.libreoffice.org/bugzilla/show_bug.cgi?id=33393

If yes, I may have some extra information...

-- 
Andrew Pitonyak
My Macro Document: http://www.pitonyak.org/AndrewMacro.odt
Info:  http://www.pitonyak.org/oo.php