2017-08-14 58 views
0

我編程的真正簡單的代碼的所有符號:大會:列表中的應用

// ConsoleApplication1.cpp 
// 
#include <iostream> 
#include "stdafx.h" 

void abc() { 
    printf("ABCDEF"); 
} 

int main() 
{ 
    printf("Hello"); 
    printf("2ndString Here"); 
    return 0; 
} 

這是的WinDbg結果:

0:000> x ConsoleApplication1!* 
00007ff6`dc5335b0 ConsoleApplication1!__scrt_current_native_startup_state = initialized (0n2) 
00007ff6`dc533008 ConsoleApplication1!__security_cookie_complement = 0xffff6a36`95faba8f 
00007ff6`dc531e90 ConsoleApplication1!_guard_dispatch_icall_nop = 0xff '' 
00007ff6`dc5321d0 ConsoleApplication1!__xp_a = <function> *[1] 
00007ff6`dc532650 ConsoleApplication1!__rtc_taa = <function> *[1] 
00007ff6`dc532190 ConsoleApplication1!__guard_dispatch_icall_fptr = 0x00007ff6`dc531e90 
00007ff6`dc532640 ConsoleApplication1!__rtc_iaa = <function> *[1] 
00007ff6`dc5335d8 ConsoleApplication1!module_local_at_quick_exit_table = struct _onexit_table_t 
00007ff6`dc532198 ConsoleApplication1!__xc_a = <function> *[1] 
00007ff6`dc532198 ConsoleApplication1!__xc_a = <function> *[] 
00007ff6`dc533030 ConsoleApplication1!__scrt_ucrt_dll_is_in_use = 0n1 
00007ff6`dc533030 ConsoleApplication1!__scrt_ucrt_dll_is_in_use = 0n1 
00007ff6`dc5321b8 ConsoleApplication1!pre_c_initializer = 0x00007ff6`dc531154 
00007ff6`dc533020 ConsoleApplication1!__memcpy_nt_iters = 0n-1 
00007ff6`dc5321a0 ConsoleApplication1!pre_cpp_initializer = 0x00007ff6`dc531220 
00007ff6`dc533630 ConsoleApplication1!__dyn_tls_init_callback = 0x00000000`00000000 
00007ff6`dc5321c8 ConsoleApplication1!__xi_z = <function> *[1] 
00007ff6`dc5321c8 ConsoleApplication1!__xi_z = <function> *[] 
00007ff6`dc5335c0 ConsoleApplication1!module_local_atexit_table = struct _onexit_table_t 
00007ff6`dc5330e0 ConsoleApplication1!GS_ContextRecord = struct _CONTEXT 
00007ff6`dc5321e0 ConsoleApplication1!__xt_a = <function> *[1] 
00007ff6`dc533618 ConsoleApplication1!__scrt_debugger_hook_flag = 0n0 
00007ff6`dc5335f0 ConsoleApplication1!is_initialized_as_dll = false 
00007ff6`dc53301c ConsoleApplication1!__isa_enabled = 0n46 
00007ff6`dc5335b8 ConsoleApplication1!__scrt_native_startup_lock = 0x00000000`00000000 
00007ff6`dc5321c0 ConsoleApplication1!post_pgo_initializer = 0x00007ff6`dc531210 
00007ff6`dc532188 ConsoleApplication1!__guard_check_icall_fptr = 0x00007ff6`dc531d58 
00007ff6`dc532188 ConsoleApplication1!__guard_check_icall_fptr = 0x00007ff6`dc531d58 
00007ff6`dc532188 ConsoleApplication1!__guard_check_icall_fptr = 0x00007ff6`dc531d58 
00007ff6`dc532680 ConsoleApplication1!$xdatasym = 0x01 '' 
00007ff6`dc532740 ConsoleApplication1!$xdatasym = 0x01 '' 
00007ff6`dc5321b0 ConsoleApplication1!__xi_a = <function> *[1] 
00007ff6`dc5321b0 ConsoleApplication1!__xi_a = <function> *[] 
00007ff6`dc5321f0 ConsoleApplication1!GS_ExceptionPointers = struct _EXCEPTION_POINTERS 
00007ff6`dc532648 ConsoleApplication1!__rtc_izz = <function> *[1] 
00007ff6`dc5321a8 ConsoleApplication1!__xc_z = <function> *[1] 
00007ff6`dc5321a8 ConsoleApplication1!__xc_z = <function> *[] 
00007ff6`dc533014 ConsoleApplication1!__scrt_default_matherr = 0n1 
00007ff6`dc533014 ConsoleApplication1!__scrt_default_matherr = 0n1 
00007ff6`dc5321d8 ConsoleApplication1!__xp_z = <function> *[1] 
00007ff6`dc532658 ConsoleApplication1!__rtc_tzz = <function> *[1] 
00007ff6`dc533040 ConsoleApplication1!GS_ExceptionRecord = struct _EXCEPTION_RECORD 
00007ff6`dc532290 ConsoleApplication1!_load_config_used = struct _IMAGE_LOAD_CONFIG_DIRECTORY64 
00007ff6`dc533010 ConsoleApplication1!__scrt_native_dllmain_reason = 0xffffffff 
00007ff6`dc533000 ConsoleApplication1!__security_cookie = 0x000095c9`6a054570 
00007ff6`dc533018 ConsoleApplication1!__isa_available = 0n5 
00007ff6`dc53361c ConsoleApplication1!__favor = 0n6 
00007ff6`dc5321e8 ConsoleApplication1!__xt_z = <function> *[1] 
00007ff6`dc533600 ConsoleApplication1!__type_info_root_node = struct __type_info_node 
00007ff6`dc533628 ConsoleApplication1!__dyn_tls_dtor_callback = 0x00000000`00000000 
00007ff6`dc5313c8 ConsoleApplication1!__raise_securityfailure (struct _EXCEPTION_POINTERS *) 
00007ff6`dc5318a0 ConsoleApplication1!_get_startup_commit_mode (void) 
00007ff6`dc5318f8 ConsoleApplication1!__scrt_get_dyn_tls_dtor_callback (void) 
00007ff6`dc531e90 ConsoleApplication1!_guard_dispatch_icall_nop (void) 
00007ff6`dc531010 ConsoleApplication1!_vfprintf_l (struct _iobuf *, char *, struct __crt_locale_pointers *, char *) 
00007ff6`dc531ae4 ConsoleApplication1!_RTC_Initialize (void) 
00007ff6`dc5318a0 ConsoleApplication1!_get_startup_thread_locale_mode (void) 
00007ff6`dc531d4c ConsoleApplication1!__scrt_is_ucrt_dll_in_use (void) 
00007ff6`dc5310e0 ConsoleApplication1!main (void) 
00007ff6`dc531758 ConsoleApplication1!__scrt_uninitialize_crt (bool, bool) 
00007ff6`dc531e1c ConsoleApplication1!__GSHandlerCheckCommon (void *, struct _DISPATCHER_CONTEXT *, struct _GS_HANDLER_DATA *) 
00007ff6`dc531698 ConsoleApplication1!__scrt_is_nonwritable_in_current_image (void *) 
00007ff6`dc531580 ConsoleApplication1!__scrt_initialize_crt (__scrt_module_type) 
00007ff6`dc531a9c ConsoleApplication1!__scrt_set_unhandled_exception_filter (void) 
00007ff6`dc531d58 ConsoleApplication1!_initialize_denormal_control (void) 
00007ff6`dc5317d4 ConsoleApplication1!atexit (<function> *) 
00007ff6`dc5318bc ConsoleApplication1!__scrt_stub_for_acrt_initialize (void) 
00007ff6`dc531b30 ConsoleApplication1!_RTC_Terminate (void) 
00007ff6`dc531dfc ConsoleApplication1!__GSHandlerCheck (struct _EXCEPTION_RECORD *, void *, struct _CONTEXT *, struct _DISPATCHER_CONTEXT *) 
00007ff6`dc5318a4 ConsoleApplication1!_get_startup_file_mode (void) 
00007ff6`dc5313b4 ConsoleApplication1!mainCRTStartup (void) 
00007ff6`dc531060 ConsoleApplication1!printf (char *) 
00007ff6`dc5318c8 ConsoleApplication1!__scrt_initialize_default_local_stdio_options (void) 
00007ff6`dc5315cc ConsoleApplication1!__scrt_initialize_onexit_tables (__scrt_module_type) 
00007ff6`dc531eb0 ConsoleApplication1!__scrt_is_nonwritable_in_current_image$filt$0 (void) 
00007ff6`dc5318bc ConsoleApplication1!_should_initialize_environment (void) 
00007ff6`dc531154 ConsoleApplication1!pre_c_initialization (void) 
00007ff6`dc5318a0 ConsoleApplication1!_matherr (struct _exception *) 
00007ff6`dc531544 ConsoleApplication1!__scrt_acquire_startup_lock (void) 
00007ff6`dc5318a0 ConsoleApplication1!_get_startup_new_mode (void) 
00007ff6`dc531a48 ConsoleApplication1!__scrt_is_managed_app (void) 
00007ff6`dc531aac ConsoleApplication1!__scrt_unhandled_exception_filter (struct _EXCEPTION_POINTERS *) 
00007ff6`dc531d58 ConsoleApplication1!_initialize_invalid_parameter_handler (void) 
00007ff6`dc531b84 ConsoleApplication1!__isa_available_init (void) 
00007ff6`dc5318e4 ConsoleApplication1!__scrt_is_user_matherr_present (void) 
00007ff6`dc531898 ConsoleApplication1!_get_startup_argv_mode (void) 
00007ff6`dc531130 ConsoleApplication1!__security_check_cookie (void) 
00007ff6`dc5314d0 ConsoleApplication1!capture_previous_context (struct _CONTEXT *) 
00007ff6`dc531220 ConsoleApplication1!pre_cpp_initialization (void) 
00007ff6`dc5318f0 ConsoleApplication1!__scrt_get_dyn_tls_init_callback (void) 
00007ff6`dc531d58 ConsoleApplication1!_guard_check_icall_nop (unsigned int64) 
00007ff6`dc5318bc ConsoleApplication1!__scrt_stub_for_acrt_uninitialize (bool) 
00007ff6`dc53123c ConsoleApplication1!__scrt_common_main_seh (void) 
00007ff6`dc5318ac ConsoleApplication1!__scrt_initialize_type_info (void) 
00007ff6`dc531734 ConsoleApplication1!__scrt_release_startup_lock (bool) 
00007ff6`dc531110 ConsoleApplication1!__vcrt_va_start_verify_argument_type<char const * __ptr64 const> (void) 
00007ff6`dc531900 ConsoleApplication1!__scrt_fastfail (unsigned int) 
00007ff6`dc531e92 ConsoleApplication1!`__scrt_common_main_seh'::`1'::filt$0 (void) 
00007ff6`dc5318c0 ConsoleApplication1!__local_stdio_scanf_options (void) 
00007ff6`dc5317ec ConsoleApplication1!__security_init_cookie (void) 
00007ff6`dc531b7c ConsoleApplication1!_guard_check_icall (unsigned int64) 
00007ff6`dc5313fc ConsoleApplication1!__report_gsfailure (unsigned int64) 
00007ff6`dc531000 ConsoleApplication1!__local_stdio_printf_options (void) 
00007ff6`dc531784 ConsoleApplication1!_onexit (<function> *) 
00007ff6`dc531210 ConsoleApplication1!post_pgo_initialization (void) 
00007ff6`dc5318a0 ConsoleApplication1!__scrt_initialize_winrt (void) 
00007ff6`dc532138 ConsoleApplication1!_imp__get_initial_narrow_environment = <no type information> 
00007ff6`dc532038 ConsoleApplication1!_imp_GetCurrentThreadId = <no type information> 
00007ff6`dc531d7e ConsoleApplication1!configure_narrow_argv (<no parameter info>) 
00007ff6`dc531dc0 ConsoleApplication1!c_exit (<no parameter info>) 
00007ff6`dc531d9c ConsoleApplication1!exit (<no parameter info>) 
00007ff6`dc5320e8 ConsoleApplication1!_imp__seh_filter_exe = <no type information> 
00007ff6`dc5320f0 ConsoleApplication1!_imp__crt_atexit = <no type information> 
00007ff6`dc5320d8 ConsoleApplication1!_imp_terminate = <no type information> 
00007ff6`dc532128 ConsoleApplication1!_imp__initterm_e = <no type information> 
00007ff6`dc532158 ConsoleApplication1!api-ms-win-crt-runtime-l1-1-0_NULL_THUNK_DATA = <no type information> 
00007ff6`dc5320d0 ConsoleApplication1!_imp__initialize_onexit_table = <no type information> 
00007ff6`dc5320a0 ConsoleApplication1!api-ms-win-crt-heap-l1-1-0_NULL_THUNK_DATA = <no type information> 
00007ff6`dc531d78 ConsoleApplication1!_setusermatherr (<no parameter info>) 
00007ff6`dc531df6 ConsoleApplication1!IsProcessorFeaturePresent (<no parameter info>) 
00007ff6`dc532180 ConsoleApplication1!api-ms-win-crt-stdio-l1-1-0_NULL_THUNK_DATA = <no type information> 
00007ff6`dc532080 ConsoleApplication1!_imp_memset = <no type information> 
00007ff6`dc531d90 ConsoleApplication1!initterm (<no parameter info>) 
00007ff6`dc531da2 ConsoleApplication1!exit (<no parameter info>) 
00007ff6`dc532010 ConsoleApplication1!_imp_UnhandledExceptionFilter = <no type information> 
00007ff6`dc531d60 ConsoleApplication1!_C_specific_handler (<no parameter info>) 
00007ff6`dc532178 ConsoleApplication1!_imp__set_fmode = <no type information> 
00007ff6`dc0 ConsoleApplication1!_imp___p___argv = <no type information> 
00007ff6`dc531dba ConsoleApplication1!cexit (<no parameter info>) 
00007ff6`dc531df0 ConsoleApplication1!terminate (<no parameter info>) 
00007ff6`dc531dcc ConsoleApplication1!configthreadlocale (<no parameter info>) 
00007ff6`dc532788 ConsoleApplication1!_IMPORT_DESCRIPTOR_api-ms-win-crt-math-l1-1-0 = <no type information> 
00007ff6`dc532120 ConsoleApplication1!_imp_exit = <no type information> 
00007ff6`dc531dc6 ConsoleApplication1!register_thread_local_exe_atexit_callback (<no parameter info>) 
00007ff6`dc532060 ConsoleApplication1!_imp_GetCurrentProcess = <no type information> 
00007ff6`dc532088 ConsoleApplication1!_imp___C_specific_handler = <no type information> 
00007ff6`dc532070 ConsoleApplication1!_imp_RtlCaptureContext = <no type information> 
00007ff6`dc532078 ConsoleApplication1!KERNEL32_NULL_THUNK_DATA = <no type information> 
00007ff6`dc531d84 ConsoleApplication1!initialize_narrow_environment (<no parameter info>) 
00007ff6`dc5320b8 ConsoleApplication1!_imp___setusermatherr = <no type information> 
00007ff6`dc532040 ConsoleApplication1!_imp_GetCurrentProcessId = <no type information> 
00007ff6`dc53279c ConsoleApplication1!_IMPORT_DESCRIPTOR_api-ms-win-crt-locale-l1-1-0 = <no type information> 
00007ff6`dc531dde ConsoleApplication1!initialize_onexit_table (<no parameter info>) 
00007ff6`dc8 ConsoleApplication1!_imp___p___argc = <no type information> 
00007ff6`dc532050 ConsoleApplication1!_imp_IsProcessorFeaturePresent = <no type information> 
00007ff6`dc5320b0 ConsoleApplication1!api-ms-win-crt-locale-l1-1-0_NULL_THUNK_DATA = <no type information> 
00007ff6`dc532130 ConsoleApplication1!_imp__initterm = <no type information> 
00007ff6`dc532760 ConsoleApplication1!_IMPORT_DESCRIPTOR_api-ms-win-crt-stdio-l1-1-0 = <no type information> 
00007ff6`dc5327b0 ConsoleApplication1!_IMPORT_DESCRIPTOR_api-ms-win-crt-heap-l1-1-0 = <no type information> 
00007ff6`dc532118 ConsoleApplication1!_imp__exit = <no type information> 
00007ff6`dc532058 ConsoleApplication1!_imp_TerminateProcess = <no type information> 
00007ff6`dc531de4 ConsoleApplication1!register_onexit_function (<no parameter info>) 
00007ff6`dc532020 ConsoleApplication1!_imp_IsDebuggerPresent = <no type information> 
00007ff6`dc531dae ConsoleApplication1!_p___argc (<no parameter info>) 
00007ff6`dc532110 ConsoleApplication1!_imp__register_thread_local_exe_atexit_callback = <no type information> 
00007ff6`dc532090 ConsoleApplication1!VCRUNTIME140_NULL_THUNK_DATA = <no type information> 
00007ff6`dc532168 ConsoleApplication1!_imp___stdio_common_vfprintf = <no type information> 
00007ff6`dc532170 ConsoleApplication1!_imp___acrt_iob_func = <no type information> 
00007ff6`dc532030 ConsoleApplication1!_imp_GetSystemTimeAsFileTime = <no type information> 
00007ff6`dc5320e0 ConsoleApplication1!_imp__set_app_type = <no type information> 
00007ff6`dc531dd2 ConsoleApplication1!set_new_mode (<no parameter info>) 
00007ff6`dc5320a8 ConsoleApplication1!_imp__configthreadlocale = <no type information> 
00007ff6`dc532000 ConsoleApplication1!_imp_RtlLookupFunctionEntry = <no type information> 
00007ff6`dc532048 ConsoleApplication1!_imp_QueryPerformanceCounter = <no type information> 
00007ff6`dc531dd8 ConsoleApplication1!_p__commode (<no parameter info>) 
00007ff6`dc532140 ConsoleApplication1!_imp__initialize_narrow_environment = <no type information> 
00007ff6`dc532028 ConsoleApplication1!_imp_InitializeSListHead = <no type information> 
00007ff6`dc532008 ConsoleApplication1!_imp_RtlVirtualUnwind = <no type information> 
00007ff6`dc533620 ConsoleApplication1!`__local_stdio_printf_options'::`2'::_OptionsStorage = <no type information> 
00007ff6`dc532018 ConsoleApplication1!_imp_GetModuleHandleW = <no type information> 
00007ff6`dc531d96 ConsoleApplication1!initterm_e (<no parameter info>) 
00007ff6`dc5320c0 ConsoleApplication1!api-ms-win-crt-math-l1-1-0_NULL_THUNK_DATA = <no type information> 
00007ff6`dc531d6c ConsoleApplication1!seh_filter_exe (<no parameter info>) 
00007ff6`dc532098 ConsoleApplication1!_imp__set_new_mode = <no type information> 
00007ff6`dc532774 ConsoleApplication1!_IMPORT_DESCRIPTOR_api-ms-win-crt-runtime-l1-1-0 = <no type information> 
00007ff6`dc531db4 ConsoleApplication1!_p___argv (<no parameter info>) 
00007ff6`dc531d8a ConsoleApplication1!get_initial_narrow_environment (<no parameter info>) 
00007ff6`dc532068 ConsoleApplication1!_imp_SetUnhandledExceptionFilter = <no type information> 
00007ff6`dc5327c4 ConsoleApplication1!_IMPORT_DESCRIPTOR_KERNEL32 = <no type information> 
00007ff6`dc532160 ConsoleApplication1!_imp___p__commode = <no type information> 
00007ff6`dc5320f8 ConsoleApplication1!_imp__cexit = <no type information> 
00007ff6`dc531da8 ConsoleApplication1!set_fmode (<no parameter info>) 
00007ff6`dc532150 ConsoleApplication1!_imp__register_onexit_function = <no type information> 
00007ff6`dc531dea ConsoleApplication1!crt_atexit (<no parameter info>) 
00007ff6`dc53274c ConsoleApplication1!_IMPORT_DESCRIPTOR_VCRUNTIME140 = <no type information> 
00007ff6`dc532148 ConsoleApplication1!_imp__configure_narrow_argv = <no type information> 
00007ff6`dc5320c8 ConsoleApplication1!_imp__c_exit = <no type information> 
00007ff6`dc531d72 ConsoleApplication1!set_app_type (<no parameter info>) 
00007ff6`dc531d66 ConsoleApplication1!memset (<no parameter info>) 
00007ff6`dc5327d8 ConsoleApplication1!_NULL_IMPORT_DESCRIPTOR = <no type information> 
00007ff6`dc533610 ConsoleApplication1!`__local_stdio_scanf_options'::`2'::_OptionsStorage = <no type information> 
00007ff6`dc531337 ConsoleApplication1!invoke_main = (inline caller) ConsoleApplication1!__scrt_common_main_seh+fb 
00007ff6`dc53119e ConsoleApplication1!__scrt_narrow_argv_policy::configure_argv = (inline caller) ConsoleApplication1!pre_c_initialization+4a 
00007ff6`dc5311e7 ConsoleApplication1!initialize_environment = (inline caller) ConsoleApplication1!pre_c_initialization+93 
00007ff6`dc5313b8 ConsoleApplication1!__scrt_common_main = (inline caller) ConsoleApplication1!mainCRTStartup+4 
00007ff6`dc531551 ConsoleApplication1!NtCurrentTeb = (inline caller) ConsoleApplication1!__scrt_acquire_startup_lock+d 
00007ff6`dc531618 ConsoleApplication1!__crt_fast_encode_pointer = (inline caller) ConsoleApplication1!__scrt_initialize_onexit_tables+4c 
00007ff6`dc53161f ConsoleApplication1!__crt_rotate_pointer_value = (inline caller) ConsoleApplication1!__scrt_initialize_onexit_tables+53 
00007ff6`dc53169f ConsoleApplication1!is_potentially_valid_image_base = (inline caller) ConsoleApplication1!__scrt_is_nonwritable_in_current_image+7 
00007ff6`dc5316d5 ConsoleApplication1!find_pe_section = (inline caller) ConsoleApplication1!__scrt_is_nonwritable_in_current_image+3d 
00007ff6`dc53178a ConsoleApplication1!__crt_fast_decode_pointer = (inline caller) ConsoleApplication1!_onexit+6 
00007ff6`dc5317a0 ConsoleApplication1!__crt_rotate_pointer_value = (inline caller) ConsoleApplication1!_onexit+1c 
00007ff6`dc531929 ConsoleApplication1!__crt_debugger_hook = (inline caller) ConsoleApplication1!__scrt_fastfail+29 

意味着什麼符號列表?什麼產生符號?每種方法?類?爲什麼沒有ConsoleApplication1!abc可用?

有很多其他符號..它們可以分離和分類(例如mainCRTStartup和ConsoleApplication1!main屬於可執行文件)? 內核編程有差異嗎?

(代碼優化被禁用。)

+0

C運行時庫負責其他符號以及Microsoft編譯器的堆棧檢查和其他增值功能。如果禁用了優化,您應該看到abc()。可能你只看公共符號,或者你已經編譯優化,但鏈接器優化? –

+0

「未優化」包括編譯未使用的函數或變量嗎? 「不必要」與「優化」相同嗎? –

+0

至於「非常簡單的代碼」 - 請注意「stdafx.h」會引入數十萬行。 –

回答

0

意味着什麼符號列表?

符號列表是一個文件中的「符號」列表 - 當然,

「符號」是具有地址(或 - 有時 - 絕對值)的目標文件中的項目。

主要使用的符號是告訴其中一些項(函數,變量,常量...)位於目標文件中的接頭:

當一些機器代碼訪問一個變量或調用一個函數的代碼必須「知道」變量或函數的地址。從源代碼創建目標文件時,這些地址還不得而知;特別是如果一個函數或變量是在另一個目標文件中定義的,而不是訪問它的代碼。

因此,在創建目標文件時使用虛擬地址;鏈接器後來必須將真實地址替換爲虛擬地址。

關於哪個變量位於哪個地址存儲在目標文件的「符號」中的信息。

.EXE文件的符號通常只是用於創建該文件的所有對象文件的所有符號的總和。

什麼會產生符號?

對象文件中定義的所有代碼(函數)和所有數據(變量,常量)都可以從其他對象文件訪問,這些對象文件中肯定會生成符號。

但是,有些鏈接器會從生成的.EXE文件中刪除部分或全部符號,因爲它們在創建.EXE文件後不再需要。

大多數編譯器還會爲代碼和數據生成符號,這些代碼和數據只能在對象文件中訪問(如「靜態」變量)。

許多編譯器生成包含調試信息的符號。這些符號當然會被鏈接器忽略 - 而且它們通常不會顯示在windbg中。

在內存中沒有地址的項目通常沒有符號:數據類型(包括類!)沒有地址,但每個具有該數據類型的變量都有自己的地址。局部變量也是如此(考慮函數自身遞歸調用來理解原因)。

爲什麼沒有ConsoleApplication1!abc可用?

顯然,你使用該接頭可以做優化:

鏈接器「鋸」,沒有「虛擬地址」(如上所述),它必須通過地址ConsoleApplication1!abc所取代。因此,鏈接器「知道」程序沒有使用函數abc(),因此它沒有將函數包含到程序中。

請注意,這不適用於所有目標文件格式。