2014-12-13 84 views
0

林「啓動文件」中有一個選項來源爲在gcc/MinGW的

" -nostartfiles Do not use the standard system startup files when linking. The standard system libraries are used normally, unless -nostdlib or -nodefaultlibs is used. " 

,如果我沒有在我本身幾乎是空的C源使用它我得到了我EXE 1000線包含這種功能

00401000 <___mingw_CRTStartup>: 
00401110 <[email protected]>: 
00401280 <_mainCRTStartup>: 
004012a0 <_WinMainCRTStartup>: 
004012c0 <_atexit>: 
004012d0 <__onexit>: 
004012e0 <___gcc_register_frame>: 
0040132c <___gcc_deregister_frame>: 
00401334 <[email protected]>: 
00401340 <[email protected]>: 
00401390 <[email protected]>: 
00401420 <___tlregdtor>: 
00401430 <___cpu_features_init>: 
00401510 <__fpreset>: 
00401520 <___report_error>: 
00401580 <___write_memory.part.0>: 
00401690 <__pei386_runtime_relocator>: 
00401870 <___do_global_dtors>: 
004018a0 <___do_global_ctors>: 
004018f0 <___main>: 
00401910 <___mingwthr_run_key_dtors.part.0>: 
00401970 <____w64_mingwthr_add_key_dtor>: 
00401a00 <____w64_mingwthr_remove_key_dtor>: 
00401a90 <___mingw_TLScallback>: 
00401b30 <___getmainargs>: 
00401b38 <__setmode>: 
00401b40 <___p__fmode>: 
00401b48 <___p__environ>: 
00401b50 <__cexit>: 
00401b58 <_signal>: 
00401b60 <_fwrite>: 
00401b68 <_vfprintf>: 
00401b70 <_abort>: 
00401b78 <_memcpy>: 
00401b80 <_calloc>: 
00401b88 <_free>: 
00401b90 <[email protected]>: 
00401b98 <[email protected]>: 
00401ba0 <[email protected]>: 
00401ba8 <[email protected]>: 
00401bb0 <[email protected]>: 
00401bb8 <[email protected]>: 
00401bc0 <[email protected]>: 
00401bc8 <[email protected]>: 
00401bd0 <[email protected]>: 
00401bd8 <[email protected]>: 
00401be0 <[email protected]>: 
00401be8 <[email protected]>: 
00401bf0 <[email protected]>: 
00401bf8 <[email protected]>: 
00401c00 <_main>: 
00401ce0 <_register_frame_ctor>: 
00401cfc <__CTOR_LIST__>: 
00401d00 <.ctors.65535>: 
00401d08 <__DTOR_LIST__>: 

也許可以說,有人在那裏我可以找到源代碼disasembly長存根? (或至少一些詳細的解釋是什麼 - 但來源會更好)

回答

2

我想你可以下載GCC sourcesMinGW sources

由於sourceforge.net上的mingw-w64項目正在遷移到mingw-w64.org,我還建議您檢查mingw-w64.org,然後運行grep或類似的文本搜索工具,並找到這些函數的特定文件,被定義。

還請注意,某些函數如exit(),atexit(),memcpy()等來自C運行時庫,它們不會在GCC源中定義。

+0

很好,但如果你有可用的技能,你可能會幫助更長的時間,並嘗試找到它並說出它在哪裏(或者如果你發現它?) – user2214913 2014-12-14 10:46:49

+2

@ user2214913好吧,我有安裝從http:///git-scm.com/download/win。克隆從SourceForge官方的MinGW-W64回購,執行'混帳混帳克隆://git.code.sf.net/p/mingw-w64/mingw-w64的MinGW-W64-的MinGW-w64'。進入'的MinGW-W64-MinGW的-w64'目錄,在資源管理器搜索'do_global_ctors',它向我指出'的MinGW-W64-的MinGW-W64 \ MinGW的-W64-CRT \ CRT \ gccmain.c',這裏一個可以找到'do_global_dtors'磁盤AER約130MB以及 – 2014-12-14 21:46:36

+1

來源,混帳包裝這一切在轉移,所以你下載30MB左右左右,'混帳克隆...'在終端窗口中執行 – 2014-12-14 21:47:44