How to debug a shared library written in rust and called from a program written in C?

On linux, using rust-gdb, I have tried debugging a shared library written in rust and called from a program written in rust, it's very easy.
However, when the rust shared library called from C caller, the rust source code can't appear.My steps like this:
rust-gdb c_prog
b main
r
Now it hit on main of c_prog, and I set a breakpoint in rust so.
b rustfunc1
when rustfunc1 hits, the rust source code can't appear, I use "show language" it says current source language is "auto; currently c", I use "set language rust", it doesn't work.
Btw, the symbol and source code dir of the shared library are set correctly.
Is there someone can help? Many thanks.