同一個(gè)process里面,要用到兩個(gè) .so文件,稱(chēng)為A.so, B.so。
如果A.so 和 B.so各自在Make的時(shí)候都要去Link同一個(gè).a文件,稱(chēng)為C.a.
我的代碼造成重新生成C.a,而且我的code的處理路徑只和A.so及C.a有關(guān),所以我在重新生成C.a后,只重新Make生成了A.so,而且根據(jù)symbol table來(lái)看,A.so 和C.a的確Link在一起了。
問(wèn)題出現(xiàn)了,當(dāng)我重啟process的時(shí)候,發(fā)現(xiàn)修改后的C.a根本不會(huì)作用于A.so, 每當(dāng)debug到A調(diào)用C.a里面的函數(shù)時(shí),程序完全還是執(zhí)著地執(zhí)行修改前的代碼。
無(wú)奈,把整個(gè)Load重新編譯了一下,替換了系統(tǒng)所用到的所有.so,并重啟進(jìn)程,代碼起作用了。。。。
誰(shuí)有解?