<div dir="ltr"><div> The related content can be found in the two repositories listed below. </div><div>java git@github.com:LetAmericaGreatAgain/ffm_rtc.git</div>c++ git@github.com:LetAmericaGreatAgain/rtc.git</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Mon, Mar 31, 2025 at 5:26 PM bai li <<a href="mailto:k3315368931@gmail.com">k3315368931@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Panama team,<br><br>I’m using the Java FFM API in JDK 21 to call a C++ dynamic library function, `void createRtcContext(const char* localId, int logLevel, IceConfig* iceConfig, DataChannelConfig* dataChannelConfig)`. The function can be invoked, but it crashes when executing `std::make_unique<RtcManager>()` inside the function. The same C++ code runs without any issues when executed independently. The `RtcManager` class is roughly defined as follows:<br><br>```cpp<br>class RtcManager {<br>private:<br> std::string localId;<br> rtc::Configuration config;<br> std::unordered_map<std::string, std::shared_ptr<rtc::PeerConnection>> peerConnectionMap;<br> std::unordered_map<std::string, std::shared_ptr<rtc::DataChannel>> dataChannelMap;<br> std::shared_ptr<rtc::WebSocket> ws = std::make_shared<rtc::WebSocket>();<br> std::shared_ptr<DataChannelListener> dataChannelListener = nullptr;<br>public:<br> explicit RtcManager(const std::string& id) : localId(id) {}<br>};<div><div>The C++ code is compiled with MSVC 2022. Here’s the crash log from the console:</div></div><div># A fatal error has been detected by the Java Runtime Environment:<br>#<br># EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb0ca62f58, pid=22096, tid=26348<br>#<br># JRE version: Java(TM) SE Runtime Environment (21.0.6+8) (build 21.0.6+8-LTS-188)<br># Java VM: Java HotSpot(TM) 64-Bit Server VM (21.0.6+8-LTS-188, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)<br># Problematic frame:<br># C [msvcp140.dll+0x12f58]<br>#<br># No core dump will be written. Minidumps are not enabled by default on client versions of Windows<br>#<br># An error report file with more information is saved as:<br># E:\projects\backend-projects\test\hs_err_pid22096.log<br>[0.236s][warning][os] Loading hsdis library failed<br>#<br># If you would like to submit a bug report, please visit:<br># <a href="https://bugreport.java.com/bugreport/crash.jsp" target="_blank">https://bugreport.java.com/bugreport/crash.jsp</a><br># The crash happened outside the Java Virtual Machine in native code.<br># See problematic frame for where to report the bug.<br>#<br></div><div><div>Thanks</div></div></div>
</blockquote></div>