Created attachment 7019 [details] Patch for libiberty/xstrdup.c to prevent SIGSEGV. See http://bugs.freepascal.org/view.php?id=24401 for more information and test project. Lazarus uses MI interface to handle debugging process. Attached patch fixes sudden crash after executing command 'ptype Form1.Test'.
Could you get a stack trace from gdb? And, ideally, some simple test source, plus compilation instructions, that shows the failure? The patch you sent is definitely not the right fix -- nothing should pass NULL to xstrdup. So the bug must be elsewhere. Also, from the comments in the upstream bug I don't see how this could fix it anyhow... Thanks.
Backtrace from GDB which are built from 7.6 source. #0 0x767143f9 in strlen () from C:\windows\syswow64\msvcrt.dll 0000001 0x006470d7 in xstrdup (s=0x0) at ./xstrdup.c:33 0000002 0x0044db2c in mi_cmd_interpreter_exec ( command=0x6c286a <__PRETTY_FUNCTION__.21574+3209> "-interpreter-exec", argv=0x2a0fc40, argc=2) at ./mi/mi-interp.c:270 0000003 0x004512e2 in captured_mi_execute_command (context=0x311c70, uiout=0x312740) at ./mi/mi-main.c:1923 0000004 mi_execute_command (cmd=0x6d23960 "ptype Form1.Test", from_tty=1) at ./mi/mi-main.c:2003 0000005 0x0044c5d4 in mi_execute_command_wrapper ( cmd=0x6d23960 "ptype Form1.Test") at ./mi/mi-interp.c:311 0000006 mi_execute_command_input_handler (cmd=0x6d23960 "ptype Form1.Test") at ./mi/mi-interp.c:319 0000007 0x004eb0e4 in handle_file_event (data=...) at event-loop.c:768 0000008 0x004eb4df in process_event () at event-loop.c:342 0000009 process_event () at event-loop.c:314 0000010 0x004eb845 in gdb_do_one_event () at event-loop.c:406 0000011 0x004eb997 in start_event_loop () at event-loop.c:431 0000012 0x004e5d22 in captured_command_loop (data=0x0) at main.c:258 0000013 0x004e4a73 in catch_errors (func=0x4e5d10 <captured_command_loop>, func_args=0x0, errstring=0x6fe967 <__PRETTY_FUNCTION__.11251+213> "", mask=6) at exceptions.c:546 0000014 0x004e67e9 in captured_main (data=0x2a0feb0) at main.c:1041 0000015 0x004e4a73 in catch_errors (func=0x4e5ed0 <captured_main>, func_args=0x2a0feb0, errstring=0x6fe967 <__PRETTY_FUNCTION__.11251+213> "", mask=6) at exceptions.c:546 0000016 0x004e6de0 in gdb_main (args=0x2a0feb0) at main.c:1050 0000017 0x006a3748 in main (argc=5, argv=0x318a0) at gdb.c:34 These commands were run before executing process: "maint set internal-error quit no" "maint set internal-warning quit no" "maint set internal-error corefile no"
I can't reproduce anymore this bug in 7.7.50.20140112-cvs, git master commit 5acfdbae5d2b0aaa2320ddfa3aa1f2cddce7b978.
Reported as fixed.