linux kernel dumpstack中“.clone”的含义是什么?

时间:2014-10-27 08:55:27

标签: gcc linux-kernel

堆栈跟踪示例:

[<e50ff630>] adf_os_mem_alloc_outline+0x50/0x60 [adf]
[<e50f4d20>] amalloc_private+0x40/0x80 [asf]
[<e53f6508>] ieee80211_scan_entry_update.clone.2+0xac0/0xe18 [umac]
[<e53f7080>] ieee80211_scan_table_update+0x41c/0x5b8 [umac]
[<e53d0b98>] ieee80211_update_beacon+0x30/0x80 [umac]
[<e53d0dec>] ieee80211_recv_mgmt+0x204/0x18a4 [umac]
[<e5404cc8>] ieee80211_input+0x23c/0x1484 [umac]
[<e5405fe8>] ieee80211_input_all+0xd8/0x158 [umac]
[<e53c4abc>] ath_net80211_rx+0x764/0x77c [umac]
[<e528f474>] ath_rx_indicate+0x60/0xc8 [ath_dev]
[<e527bd2c>] ath_rx_process+0x1d4/0x5f8 [ath_dev]
[<e528c080>] ath_rx_handler+0x408/0x5cc [ath_dev]
[<e528c284>] ath_rx_edma_tasklet+0x40/0x68 [ath_dev]
[<e528f404>] ath_handle_rx_intr+0x28/0x38 [ath_dev]
[<e52714dc>] ath_handle_intr+0x25c/0x8c0 [ath_dev]
[<e5409284>] ath_tasklet+0x24/0x34 [umac]

ieee80211_scan_entry_update.clone.2 是什么意思?

源代码只包含ieee80211_scan_entry_update()函数。

为什么gcc制作克隆功能?

由于

1 个答案:

答案 0 :(得分:4)

在编译器的上下文中,function cloning正在创建一些函数的副本并进行一些修改。

例如,如果编译器发现使用相同的初始参数多次调用函数,则可以克隆该函数以生成一个较少参数的版本,然后更改所有调用者以调用该克隆。