これ
en.wikipedia.org/wiki/Hot_swapping#cite_note-1
VSはデバッガーの助けを借りてそれを行うことができると言います。gdbは同様の機能を提供しますか?
これは私が見つけることができる最も近いものですが、使用する準備ができていないようです:
http://www.aitdspace.gr/xmlui/handle/123456789/219
dlopen / dlsym / dlcloseも近いですが、-lmylib参照ライブラリでは機能しません(参照カウントが0になることはありません)。
私が検討した代替案:
1)-Wl、-wrap、fooを使用し、__ wrap_foo(){func = dlopen(); func(); }
2)libfoo.soを共有ライブラリにし、ホットスワップが必要な場合は、dlopen(RTLD_GLOBAL)を使用して新しいコードをロードし、foo()の次の呼び出しに更新されたシンボルを提供します。
1)ホットスワップしたいすべての関数を列挙する必要があるため、うまく機能しません。これらはすべてです。
2)foo()が呼び出されると、新しいコードがロードされるため、うまく機能しませんが、fooはそのシンボルへの参照を永久に保持します。dlopenを複数回呼び出すと、fooが再評価されます。