Compiling GnuCash on Windows

Ivars Grinbergs mestule at inbox.lv
Fri Nov 3 04:07:13 EST 2006


Andreas Köhler wrote:
> Hi,
>
> Ivars Grinbergs wrote:
>   
>> Andreas Köhler wrote:
>>     
>>> You have to admit that this stack trace is not extraordinary useful ;-)
>>> But yesterday I managed to improve, maybe you can try to do the same?
>>> Here is what I did:
>>>
>>> * download and unpack `pd' and `MMP' from http://www.trapkit.de, you
>>> will need the Microsoft .NET Framework Version 2.0 to run the latter
>>> * make gnucash crash within gdb
>>> * determine the PID of the running gnucash-bin process (Ctrl+Alt+Del)
>>> * open a shell and enter `pd -p $pid > my.dump', where $pid is your pid
>>> * open mmp, open my.dump, let it parse it (click away errors you get,
>>> ignore "please wait" dialogs that do not go away and also crashes when
>>> you try to close mmp after your work)
>>> * see frame #4, it says 0x0077a51c... try to find the dll that got
>>> mapped there and also its base address (one of the first columns)
>>> * enter `add-symbol-file $mydll $myaddr' into gdb, where $mydll might be
>>> libgncmod-gnome-utils-0.dll or such, and myaddr the base address mmp
>>> told you; confirm with "y"
>>> * bt again
>>>
>>> Success?
>>>
>>>   
>>>       
> sorry for the answer in a hurry. Can you please double-check that
> 1) you select the one line in mappings within mmp such that mapping_start
> <= 0x0077a51c < mapping_end
> 2) $mydll is the basename (the part after the last backslash) in the
> mapped_from column
> 3) $myaddr is the mapping_start?
>
> So yes, the backtrace looks better, but still lacks real debugging
> information (function names, line numbers). I expect you did not
> change install.sh so that it either does not include debug symbols
> or strips the binaries...
>
> Go go, well done so far!
>
> -- andi5
>
>   
Sorry, I was in rush in the morning and I missed one important point - 
number (3): I used "Image Base" instead of "Mapping Start" :(

Below it is, when "Mapping Start" is uesd, but before that, I would like 
to mention that test results reported before was true when run from gdb; 
when I tried this newest version without gdb, reports cause gc to crash 
(gnu crash :) ). From within gdb, reports run fine.

(gdb) bt
#0  0x6b072b01 in _libmsvcrt_a_iname ()
#1  0x673116f0 in _libmsvcrt_a_iname ()
#2  0x6b073034 in _libmsvcrt_a_iname ()
#3  0x6b046dd4 in __RUNTIME_PSEUDO_RELOC_LIST__ ()
#4  0x0063a3dc in gnc_dense_cal_init (dcal=0x32280f0) at gnc-dense-cal.c:337
#5  0x6275c9f4 in _libws2_32_a_iname ()
#6  0x627466f7 in _libws2_32_a_iname ()
#7  0x62745b39 in _libws2_32_a_iname ()
#8  0x627465eb in _libws2_32_a_iname ()
#9  0x627466d6 in _libws2_32_a_iname ()
#10 0x00637ec0 in gnc_dense_cal_new () at gnc-dense-cal.c:394
#11 0x63054ab6 in gnc_ui_scheduled_xaction_dialog_create ()
    at dialog-scheduledxaction.c:1250
#12 0x62743935 in _libws2_32_a_iname ()
#13 0x62756f35 in _libws2_32_a_iname ()
#14 0x62757cde in _libws2_32_a_iname ()
#15 0x62757f56 in _libws2_32_a_iname ()
#16 0x6048b824 in _libmsvcrt_a_iname ()
#17 0x62743935 in _libws2_32_a_iname ()
#18 0x62756f35 in _libws2_32_a_iname ()
#19 0x62757cde in _libws2_32_a_iname ()
#20 0x62757f56 in _libws2_32_a_iname ()
#21 0x606999e5 in _libmsvcrt_a_iname ()
#22 0x6058acec in _libmsvcrt_a_iname ()
#23 0x6058aff5 in _libmsvcrt_a_iname ()
#24 0x605774a2 in _libmsvcrt_a_iname ()
#25 0x62743935 in _libws2_32_a_iname ()
#26 0x62756b66 in _libws2_32_a_iname ()
#27 0x62757a3c in _libws2_32_a_iname ()
#28 0x62757f56 in _libws2_32_a_iname ()
#29 0x60699b74 in _libmsvcrt_a_iname ()
#30 0x60574651 in _libmsvcrt_a_iname ()
#31 0x6057593d in _libmsvcrt_a_iname ()
#32 0x6b07098e in _libmsvcrt_a_iname ()
#33 0x672dd8f7 in _libmsvcrt_a_iname ()
#34 0x672dedcb in _libmsvcrt_a_iname ()
#35 0x672defaa in _libmsvcrt_a_iname ()
#36 0x60574eae in _libmsvcrt_a_iname ()
#37 0x006448d2 in gnc_ui_start_event_loop () at gnc-gnome-utils.c:380
#38 0x00401746 in inner_main (closure=0x0, argc=1, argv=0xbd6950)
    at gnucash-bin.c:493
#39 0x65e2564d in scm_boot_guile (argc=1, argv=0xbd6950,
    main_func=0x401600 <inner_main>, closure=0x0) at init.c:635
#40 0x00401e26 in main (argc=1, argv=0xbd6950) at gnucash-bin.c:549
(gdb)


More information about the gnucash-devel mailing list