)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"d0bb2b0cf8f050da245de777ec292dbdd4bbabd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5308d8f8_37145d8b","updated":"2026-02-16 12:17:30.000000000","message":"For example, I had problems with LLDB 21 while debugging a RP2350 board - https://forums.swift.org/t/issues-when-using-lldb-with-openocd-the-svd2lldb-plugin/84703/3.","commit_id":"766c5ca7f892fb37c0291f1b6b91809b8041a531"},{"author":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"change_message_id":"da2c0842a9163896ea0e34f5d30876b1e9a55f19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e389a3a1_c2ba758b","updated":"2026-02-16 15:45:38.000000000","message":"Thank you for the patch!\nI have a suggestion on reorganizing the code. Please, take a look.","commit_id":"766c5ca7f892fb37c0291f1b6b91809b8041a531"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"c1fb8b81b028f3ffbc1ae8299198fd3a285e7f74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f2adba5e_85a3cdd4","updated":"2026-02-17 09:01:14.000000000","message":"Thank you for reviewing! I have followed your suggestions and updated this now. Let me know what you think of the changes.","commit_id":"e75066d7b344052519b7f77a929784ba35523d67"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"6197bdf2ad496f8c2d453f8b0c557d9e8d5ef4a9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8cf76c97_8cd1430a","updated":"2026-02-21 15:26:56.000000000","message":"Hi Cristian, thanks for this patch.\n\nWe are going to tag OpenOCD v1.0.0 asap. In my backlog I have a patch to completely drop all these \u0027j\u0027 packets handling immediately after such release.\nThe \u0027j\u0027 packets has been added in OpenOCD in 2011 with commit b778b36f29b7, but the support in GDB has been rejected.\nCurrent OpenOCD has better SMP support through rtos `hwthreads`.\n\nWhat are the clients that send \u0027j\u0027 packets to OpenOCD?\n\nI want to understand the impact of dropping the support for \u0027j\u0027 packets.\nFrom code point of view, by dropping from `gdb_server.c` the two deprecated cases:\n```\ncase \u0027j\u0027:\n    ...\ncase \u0027J\u0027:\n    ...\n```\nthe `switch/case` will fallback in the `default` case for every \u0027j\u0027 packet, thus sending back the empty reply as you propose in this patch.\nWould you mind checking with the clients you have found if such behavior is accepted?","commit_id":"3fe759c5492e3e3a5408c06aaa339bc0cfd967a2"},{"author":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"change_message_id":"cff8eb79f8cb41af314fd5593ad053c777088a8e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fc5c1434_9f45a109","updated":"2026-02-24 09:58:39.000000000","message":"LGTM. Thanks!","commit_id":"3fe759c5492e3e3a5408c06aaa339bc0cfd967a2"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"41afc215645ecb029c516bc4c852c6249efd357c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e972052b_8aeedf2f","in_reply_to":"5ad66551_4d9c0c58","updated":"2026-02-22 10:33:02.000000000","message":"(So after the timeout passed, they would continue, rather than hang.)","commit_id":"3fe759c5492e3e3a5408c06aaa339bc0cfd967a2"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"d875e43e830f4f9d82fd1408f377639a4ce88b48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5ad66551_4d9c0c58","in_reply_to":"8cf76c97_8cd1430a","updated":"2026-02-22 10:21:47.000000000","message":"Thanks for the response! Yes, this behavior seems to work with the clients I have found.\n\nThe clients I have problems with are the latest versions of LLDB, such as LLDB 21, and the fix you proposed would definitely work just fine. The command they were sending is `jThreadsInfo`, which can be unsupported - the problem was that they didn\u0027t receive any response for it (not even an empty reply), which results in hanging.\n\nIt also appears that older versions of LLDB, such as LLDB 17, used to silently have this issue. They would wait for a response from the command, but they would consider the command unsupported after a timeout passed.","commit_id":"3fe759c5492e3e3a5408c06aaa339bc0cfd967a2"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"86b53948c3139c6e4448ee7b038797120b5713f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cba54950_4e85f20d","in_reply_to":"e972052b_8aeedf2f","updated":"2026-02-22 14:17:54.000000000","message":"Perfect! Thanks again!","commit_id":"3fe759c5492e3e3a5408c06aaa339bc0cfd967a2"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"01916af4f9ca76d9701d550b1527313aa29a7725","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ce5a214e_3b05b039","updated":"2026-03-09 20:28:04.000000000","message":"Thanks a lot for merging!","commit_id":"22e1e1b33e844c343eb3f24d24f630e2471d2b27"}],"src/target/smp.c":[{"author":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"change_message_id":"da2c0842a9163896ea0e34f5d30876b1e9a55f19","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"/* packet j :smp status request */"},{"line_number":47,"context_line":"#define DEPRECATED_MSG \"DEPRECATED: This method is deprecated in favor of the hwthread pseudo RTOS\""},{"line_number":48,"context_line":"int gdb_read_smp_packet(struct connection *connection,"},{"line_number":49,"context_line":"\t\tchar const *packet, int packet_size)"},{"line_number":50,"context_line":"{"},{"line_number":51,"context_line":"\tstruct target *target \u003d get_target_from_connection(connection);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"723c04be_3a02be52","line":48,"updated":"2026-02-16 15:45:38.000000000","message":"AFAIU, this function should only be called when `strncmp(packet, \"jc\", 2) \u003d\u003d 0` since other `j` packets have nothing to do with SMP.\nPlease, consider moving the check into the `case \u0027j\u0027:` of the `gdb_input_inner()`.\n\nWith the current logic, the response depends on `target-\u003esmp` that is quite bizzare for non-SMP-related `j` packets.\n\nThe same logic applies to `J` packet handling.","commit_id":"766c5ca7f892fb37c0291f1b6b91809b8041a531"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"c1fb8b81b028f3ffbc1ae8299198fd3a285e7f74","unresolved":true,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"/* packet j :smp status request */"},{"line_number":47,"context_line":"#define DEPRECATED_MSG \"DEPRECATED: This method is deprecated in favor of the hwthread pseudo RTOS\""},{"line_number":48,"context_line":"int gdb_read_smp_packet(struct connection *connection,"},{"line_number":49,"context_line":"\t\tchar const *packet, int packet_size)"},{"line_number":50,"context_line":"{"},{"line_number":51,"context_line":"\tstruct target *target \u003d get_target_from_connection(connection);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"910d6e82_60c4e399","line":48,"in_reply_to":"723c04be_3a02be52","updated":"2026-02-17 09:01:14.000000000","message":"Makes sense, thank you! I moved `strncmp(packet, \"jc\", 2) \u003d\u003d 0` inside the `case \u0027j\u0027` and `case \u0027J\u0027`.","commit_id":"766c5ca7f892fb37c0291f1b6b91809b8041a531"},{"author":{"_account_id":1002497,"name":"CMD","email":"hello@icmd.tech","username":"iCMDdev"},"change_message_id":"4ad9bfc85ca3565d7276343f90e88e8d7397e44f","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"/* packet j :smp status request */"},{"line_number":47,"context_line":"#define DEPRECATED_MSG \"DEPRECATED: This method is deprecated in favor of the hwthread pseudo RTOS\""},{"line_number":48,"context_line":"int gdb_read_smp_packet(struct connection *connection,"},{"line_number":49,"context_line":"\t\tchar const *packet, int packet_size)"},{"line_number":50,"context_line":"{"},{"line_number":51,"context_line":"\tstruct target *target \u003d get_target_from_connection(connection);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"a61f84b3_4f8b1af8","line":48,"in_reply_to":"910d6e82_60c4e399","updated":"2026-02-17 09:14:45.000000000","message":"Should be done in patchset 4. Tested and it works with LLDB as expected. Let me know what you think!","commit_id":"766c5ca7f892fb37c0291f1b6b91809b8041a531"}]}
