Got a segmentation fault in libtk8.6.so

I got following segmentation fault when I debug my python code. It seems something wrong in tkinter, but I have no idea what should I do to figure it out. My OS is ubuntu 23.04 and python version is 3.9.19

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0x00007ffff726f0e8 in DisplayText () from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
(gdb) where
#0  0x00007ffff726f0e8 in DisplayText () from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#1  0x00007ffff7442527 in TclServiceIdle ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#2  0x00007ffff741f166 in Tcl_DoOneEvent ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#3  0x00007ffff7fad6ff in _tkinter_tkapp_mainloop_impl (threshold=0, self=0x7ffff39f96b0)
    at /usr/local/src/conda/python-3.9.19/Modules/_tkinter.c:2936
#4  _tkinter_tkapp_mainloop (self=0x7ffff39f96b0, args=<optimized out>, nargs=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Modules/clinic/_tkinter.c.h:555
#5  0x0000000000505c64 in method_vectorcall_FASTCALL (func=0x7ffff75030e0, args=0x7ffff0039370, nargsf=<optimized out>, 
    kwnames=<optimized out>) at /usr/local/src/conda/python-3.9.19/Objects/descrobject.c:390
#6  0x00000000004e7f6d in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff0039370, 
    callable=0x7ffff75030e0, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#7  PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff0039370, callable=0x7ffff75030e0)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#8  call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#9  _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff00391f0, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3506
#10 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ffff00391f0, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#11 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=args@entry=0x7ffff0027700, argcount=<optimized out>, kwnames=0x0, kwargs=0x7ffff0027708, kwcount=<optimized out>, 
    kwstep=1, defs=0x7ffff759dd78, defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x7ffff75ae670, 
    qualname=0x7ffff751b730) at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#12 0x000000000050509d in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0x7ffff0027700, 
    func=0x7ffff6fbe4c0) at /usr/local/src/conda/python-3.9.19/Objects/call.c:396
#13 _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=<optimized out>, args=0x7ffff0027700, 
    callable=0x7ffff6fbe4c0, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#14 method_vectorcall (method=<optimized out>, args=0x7ffff0027708, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Objects/classobject.c:53
#15 0x00000000004ec5cf in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff0027708, 
    callable=0x7ffff0030380, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#16 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff0027708, callable=0x7ffff0030380)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#17 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#18 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff0027580, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3489
#19 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ffff0027580, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#20 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=args@entry=0x7ffff00266d0, argcount=<optimized out>, kwnames=0x7ffff75abe68, kwargs=0x7ffff00266d8, 
--Type <RET> for more, q to quit, c to continue without paging--c
    kwcount=<optimized out>, kwstep=1, defs=0x0, defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x7ffff7e31b30, 
    qualname=0x7ffff4f187b0) at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#21 0x000000000050509d in _PyFunction_Vectorcall (kwnames=0x1, nargsf=<optimized out>, stack=0x7ffff00266d0, 
    func=0x7ffff4c52280) at /usr/local/src/conda/python-3.9.19/Objects/call.c:396
#22 _PyObject_VectorcallTstate (kwnames=0x1, nargsf=<optimized out>, args=0x7ffff00266d0, callable=0x7ffff4c52280, 
    tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#23 method_vectorcall (method=method@entry=0x7ffff39c1b00, args=0x7ffff00266d8, nargsf=<optimized out>, 
    kwnames=kwnames@entry=0x7ffff75abe50) at /usr/local/src/conda/python-3.9.19/Objects/classobject.c:53
#24 0x00000000004e8b15 in _PyObject_VectorcallTstate (kwnames=0x7ffff75abe50, nargsf=<optimized out>, args=<optimized out>, 
    callable=0x7ffff39c1b00, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#25 PyObject_Vectorcall (kwnames=0x7ffff75abe50, nargsf=<optimized out>, args=<optimized out>, callable=0x7ffff39c1b00)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#26 call_function (kwnames=0x7ffff75abe50, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#27 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff0026550, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3537
#28 0x00000000004f80b3 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff0026550, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#29 function_code_fastcall (tstate=0x76ef50, co=<optimized out>, args=<optimized out>, nargs=<optimized out>, 
    globals=0x7ffff7bb7340) at /usr/local/src/conda/python-3.9.19/Objects/call.c:330
#30 0x00000000004e7f6d in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4ab7d70, 
    callable=0x7ffff39ccdc0, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#31 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff4ab7d70, callable=0x7ffff39ccdc0)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#32 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#33 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff4ab7be0, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3506
#34 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ffff4ab7be0, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#35 _PyEval_EvalCode (tstate=tstate@entry=0x76ef50, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7fffffffc400, kwcount=<optimized out>, kwstep=1, 
    defs=0x7ffff75abe98, defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x7ffff759e170, qualname=0x7ffff75aa270)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#36 0x00000000004f7de4 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at /usr/local/src/conda/python-3.9.19/Objects/call.c:396
#37 0x0000000000505225 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=1, args=0x7fffffffc3f8, callable=0x7ffff4c523a0, 
    tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#38 method_vectorcall (method=<optimized out>, args=0x7ffff7e70058, nargsf=<optimized out>, kwnames=0x0)
    at /usr/local/src/conda/python-3.9.19/Objects/classobject.c:61
#39 0x00000000004eba52 in do_call_core (kwdict=0x0, callargs=0x7ffff7e70040, func=0x7ffff39cda00, tstate=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5125
#40 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff39ce780, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3582
#41 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ffff39ce780, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#42 _PyEval_EvalCode (tstate=tstate@entry=0x76ef50, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=<optimized out>, kwnames=0x0, kwargs=0x7fffffffc720, kwcount=<optimized out>, kwstep=1, 
    defs=0x0, defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x7ffff7e6c1f0, qualname=0x7ffff75260d0)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#43 0x00000000004f7de4 in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at /usr/local/src/conda/python-3.9.19/Objects/call.c:396
#44 0x0000000000505225 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=1, args=0x7fffffffc718, callable=0x7ffff6fbfca0, 
    tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#45 method_vectorcall (method=<optimized out>, args=0x7ffff7e70058, nargsf=<optimized out>, kwnames=0x0)
    at /usr/local/src/conda/python-3.9.19/Objects/classobject.c:61
#46 0x00007ffff7fafeac in PythonCmd (clientData=0x7ffff5959ff0, interp=0xd0d470, objc=1, objv=0xd11ad0)
    at /usr/local/src/conda/python-3.9.19/Modules/_tkinter.c:2452
#47 0x00007ffff7352ce1 in TclNRRunCallbacks ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#48 0x00007ffff720ffca in ButtonWidgetObjCmd ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#49 0x00007ffff7352ce1 in TclNRRunCallbacks ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#50 0x00007ffff7354ec9 in TclEvalEx () from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#51 0x00007ffff7355703 in Tcl_EvalEx () from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#52 0x00007ffff71e1055 in Tk_BindEvent ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#53 0x00007ffff71e5d7d in TkBindEventProc ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#54 0x00007ffff71edf01 in Tk_HandleEvent ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#55 0x00007ffff71ee141 in WindowEventProc ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtk8.6.so
#56 0x00007ffff741ef2b in Tcl_ServiceEvent ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#57 0x00007ffff741f190 in Tcl_DoOneEvent ()
   from /home/jason/anaconda3/envs/chatroom/lib/python3.9/lib-dynload/../../libtcl8.6.so
#58 0x00007ffff7fad6ff in _tkinter_tkapp_mainloop_impl (threshold=0, self=0x7ffff3c71db0)
    at /usr/local/src/conda/python-3.9.19/Modules/_tkinter.c:2936
#59 _tkinter_tkapp_mainloop (self=0x7ffff3c71db0, args=<optimized out>, nargs=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Modules/clinic/_tkinter.c.h:555
#60 0x0000000000505c64 in method_vectorcall_FASTCALL (func=0x7ffff75030e0, args=0x7ffff3cdebe0, nargsf=<optimized out>, 
    kwnames=<optimized out>) at /usr/local/src/conda/python-3.9.19/Objects/descrobject.c:390
#61 0x00000000004e7f6d in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff3cdebe0, 
    callable=0x7ffff75030e0, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#62 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ffff3cdebe0, callable=0x7ffff75030e0)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#63 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#64 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff3cdea60, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3506
#65 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ffff3cdea60, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#66 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=args@entry=0xc0aac8, argcount=<optimized out>, kwnames=0x0, kwargs=0xc0aad0, kwcount=<optimized out>, kwstep=1, 
    defs=0x7ffff759dd78, defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x7ffff75ae670, qualname=0x7ffff751b730)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#67 0x000000000050509d in _PyFunction_Vectorcall (kwnames=<optimized out>, nargsf=<optimized out>, stack=0xc0aac8, 
    func=0x7ffff6fbe4c0) at /usr/local/src/conda/python-3.9.19/Objects/call.c:396
#68 _PyObject_VectorcallTstate (kwnames=<optimized out>, nargsf=<optimized out>, args=0xc0aac8, callable=0x7ffff6fbe4c0, 
    tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#69 method_vectorcall (method=<optimized out>, args=0xc0aad0, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Objects/classobject.c:53
#70 0x00000000004ec5cf in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0xc0aad0, 
    callable=0x7ffff3c8c680, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#71 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0xc0aad0, callable=0x7ffff3c8c680)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#72 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#73 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0xc0a910, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3489
#74 0x00000000004f80b3 in _PyEval_EvalFrame (throwflag=0, f=0xc0a910, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#75 function_code_fastcall (tstate=0x76ef50, co=<optimized out>, args=<optimized out>, nargs=<optimized out>, 
    globals=0x7ffff7bb7340) at /usr/local/src/conda/python-3.9.19/Objects/call.c:330
#76 0x00000000004e7f6d in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7ca530, 
    callable=0x7ffff39ccee0, tstate=0x76ef50) at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:118
#77 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7ca530, callable=0x7ffff39ccee0)
    at /usr/local/src/conda/python-3.9.19/Include/cpython/abstract.h:127
#78 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:5077
#79 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ca3c0, throwflag=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:3506
#80 0x00000000004e69da in _PyEval_EvalFrame (throwflag=0, f=0x7ca3c0, tstate=0x76ef50)
    at /usr/local/src/conda/python-3.9.19/Include/internal/pycore_ceval.h:40
#81 _PyEval_EvalCode (tstate=<optimized out>, _co=<optimized out>, globals=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=argcount@entry=0, kwnames=0x0, kwargs=0x0, kwcount=<optimized out>, kwstep=2, defs=0x0, 
    defcount=<optimized out>, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0)
    at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4329
#82 0x00000000004e6667 in _PyEval_EvalCodeWithName (_co=<optimized out>, globals=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=argcount@entry=0, kwnames=<optimized out>, kwargs=0x0, kwcount=0, kwstep=2, defs=0x0, 
    defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4361
#83 0x00000000004e6619 in PyEval_EvalCodeEx (_co=_co@entry=0x7ffff75a8030, globals=globals@entry=0x7ffff7bb7340, 
    locals=locals@entry=0x7ffff7bb7340, args=args@entry=0x0, argcount=argcount@entry=0, kws=kws@entry=0x0, kwcount=0, 
    defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at /usr/local/src/conda/python-3.9.19/Python/ceval.c:4377
#84 0x00000000005938eb in PyEval_EvalCode (co=co@entry=0x7ffff75a8030, globals=globals@entry=0x7ffff7bb7340, 
    locals=locals@entry=0x7ffff7bb7340) at /usr/local/src/conda/python-3.9.19/Python/ceval.c:828
#85 0x00000000005c1157 in run_eval_code_obj (tstate=tstate@entry=0x76ef50, co=co@entry=0x7ffff75a8030, 
    globals=globals@entry=0x7ffff7bb7340, locals=locals@entry=0x7ffff7bb7340)
    at /usr/local/src/conda/python-3.9.19/Python/pythonrun.c:1221
#86 0x00000000005bd170 in run_mod (mod=mod@entry=0x82d9d8, filename=filename@entry=0x7ffff75929f0, 
    globals=globals@entry=0x7ffff7bb7340, locals=locals@entry=0x7ffff7bb7340, flags=flags@entry=0x7fffffffd968, 
    arena=arena@entry=0x7ffff7e2e950) at /usr/local/src/conda/python-3.9.19/Python/pythonrun.c:1242
#87 0x0000000000456423 in pyrun_file (fp=fp@entry=0x76c5d0, filename=filename@entry=0x7ffff75929f0, start=start@entry=257, 
    globals=globals@entry=0x7ffff7bb7340, locals=locals@entry=0x7ffff7bb7340, closeit=closeit@entry=1, flags=0x7fffffffd968)
    at /usr/local/src/conda/python-3.9.19/Python/pythonrun.c:1140
#88 0x00000000005b6e52 in pyrun_simple_file (flags=0x7fffffffd968, closeit=1, filename=0x7ffff75929f0, fp=0x76c5d0)
    at /usr/local/src/conda/python-3.9.19/Python/pythonrun.c:450
#89 PyRun_SimpleFileExFlags (fp=0x76c5d0, filename=<optimized out>, closeit=1, flags=0x7fffffffd968)
    at /usr/local/src/conda/python-3.9.19/Python/pythonrun.c:483
#90 0x00000000005b43ce in pymain_run_file (cf=0x7fffffffd968, config=0x76d670)
    at /usr/local/src/conda/python-3.9.19/Modules/main.c:379
#91 pymain_run_python (exitcode=0x7fffffffd960) at /usr/local/src/conda/python-3.9.19/Modules/main.c:604
#92 Py_RunMain () at /usr/local/src/conda/python-3.9.19/Modules/main.c:683
#93 0x0000000000587999 in Py_BytesMain (argc=<optimized out>, argv=<optimized out>)
    at /usr/local/src/conda/python-3.9.19/Modules/main.c:1129
#94 0x00007ffff7c23a90 in __libc_start_call_main (main=main@entry=0x587950 <main>, argc=argc@entry=2, 
    argv=argv@entry=0x7fffffffdb98) at ../sysdeps/nptl/libc_start_call_main.h:58
#95 0x00007ffff7c23b49 in __libc_start_main_impl (main=0x587950 <main>, argc=2, argv=0x7fffffffdb98, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdb88) at ../csu/libc-start.c:360
#96 0x000000000058784e in _start ()

And how do I get my python code traceback when the segmentation fault occur? I suspect thing getting problem when code is preformed in:

        try:
            self.text_box.configure(state=tk.NORMAL,font=("宋体", 12))
            self.text_box.insert(END, str(time.strftime('%I:%M:%S ')) + message+'\n')
            self.last_sent_label(str(time.strftime( "Last message sent: " + '%B %d, %Y' + ' at ' + '%I:%M %p')))
            self.text_box.see(END)
            self.text_box.configure(state=tk.DISABLED)
        except Exception as e:
            raise e

Did I read somewhere that tk has problems with some unicode characters?

Does the code work if you change the font?

To be honest, this problem is not appear so frequently, and the input is generated by large language model, so I was unable to get the problem-characters, I’m going to try to log the output of llm, and change that font. If it make any difference I would reply.

You can use LLM to give you ideas about the code, but need to use your human judgment as to the fitness of the code at the moment.

There is a misunderstanding, code is written by myself, but I used tkinter to display the out put of llm. And I tied a few of fonts which got from font.families(), unfortunately, the segmentation fault still alive… It may derive from other place.

Thanks for clarification.

Suggest you investigate if the problem is font related but can you use a newer version of python?
3.9 is old and the problem you are seeing may have been fixed in a newer version.

If you cannot upgrade ubuntu or python consider running newer version in a VM.

You could write messages to a log file around where you suspect it might be failing in the Python code, something like:

            with open(log_path, 'a') as file:
                print('Set font of text_box', file=file)
            self.text_box.configure(state=tk.NORMAL,font=("宋体", 12))
            with open(log_path, 'a') as file:
                print('Insert text', file=file)
            self.text_box.insert(END, str(time.strftime('%I:%M:%S ')) + message+'\n')
            with open(log_path, 'a') as file:
                print('Last sent', file=file)
            self.last_sent_label(str(time.strftime( "Last message sent: " + '%B %d, %Y' + ' at ' + '%I:%M %p')))
            with open(log_path, 'a') as file:
                print('See text_box', file=file)
            self.text_box.see(END)
            with open(log_path, 'a') as file:
                print('Disable text_box', file=file)
            self.text_box.configure(state=tk.DISABLED)
            with open(log_path, 'a') as file:
                print('OK', file=file)

I cannot read the crash log, but there have been instances where Ubuntu has fonts (perhaps loaded by user) that appear in the tk font list but which are not compatible with tk’s use of the graphics system. I have no idea ‘whose fault’. This is all I know.

Thanks for your advice, I changed the font from ‘宋体’ to ‘times’, this core dump have been not occurring yet.