)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"893fbcc116937d33663e7fa553c2254b4735e336","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"target/breakpoints.c: add breakpoint intersection detection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modify the breakpoint insertion logic to include intersection detection between breakpoints."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I294bea83b18335c2f304ddd99361872eadaaa684"},{"line_number":12,"context_line":"Signed-off-by: Kulyatskaya Alexandra \u003ca.kulyatskaya@syntacore.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"93255949_a83f9b5e","line":9,"updated":"2025-11-02 10:38:28.000000000","message":"This line is longer than 75 chars and causes checkpatch to fail","commit_id":"7f91d21ee1f8fa4518bea4b750ec91b3b6423360"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"7d2fe6a2786160ae90de81b5d700deece5042a5b","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"target/breakpoints.c: add breakpoint intersection detection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modify the breakpoint insertion logic to include intersection detection between breakpoints."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I294bea83b18335c2f304ddd99361872eadaaa684"},{"line_number":12,"context_line":"Signed-off-by: Kulyatskaya Alexandra \u003ca.kulyatskaya@syntacore.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"f8e65a46_d32e5cb2","line":9,"in_reply_to":"93255949_a83f9b5e","updated":"2025-11-06 14:44:32.000000000","message":"Done","commit_id":"7f91d21ee1f8fa4518bea4b750ec91b3b6423360"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5c6750fb87a4d90c21c8b15f64e0165787f22ad9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"target/breakpoints.c: add breakpoint intersection detection"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Modify the breakpoint insertion logic to include intersection detection between breakpoints."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I294bea83b18335c2f304ddd99361872eadaaa684"},{"line_number":12,"context_line":"Signed-off-by: Kulyatskaya Alexandra \u003ca.kulyatskaya@syntacore.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"514a5b04_e27a37a5","line":9,"in_reply_to":"f8e65a46_d32e5cb2","updated":"2025-11-08 18:16:14.000000000","message":"Done","commit_id":"7f91d21ee1f8fa4518bea4b750ec91b3b6423360"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"e61cc191e82972e4226535fbb8879749b1aac305","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ced50bbe_06eb678c","updated":"2025-09-27 15:50:01.000000000","message":"Alexandra, please fix the problem detected in CI compilation.\nNormally we do not review patches until they have positive jenkins score.\n\nThe intersection check could be good for soft breakpoints.\nOn the other hand I see no reason why impose such limit for hardware triggered breakpoints.\n\nThe helper function `is_memory_regions_intersect()` is generally usable so it should go to the `helper` folder.","commit_id":"ed9a5df85dab8b9ee59f659484983a50bf5a4397"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"e0adaaa6092bc6b1f8d33b5249da20fdf71604cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"851fd2b1_5ced0157","updated":"2025-09-25 13:23:03.000000000","message":"Hello, could you take a look?","commit_id":"ed9a5df85dab8b9ee59f659484983a50bf5a4397"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5c6750fb87a4d90c21c8b15f64e0165787f22ad9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"924fd4a0_1da85226","in_reply_to":"2973294e_79eda5f3","updated":"2025-11-08 18:16:14.000000000","message":"Done","commit_id":"ed9a5df85dab8b9ee59f659484983a50bf5a4397"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"cca643d8d74e66d64ca3129da577ee5a4587bcdf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2973294e_79eda5f3","in_reply_to":"ced50bbe_06eb678c","updated":"2025-10-09 14:58:03.000000000","message":"Tomas, thank you for your suggestions. Done","commit_id":"ed9a5df85dab8b9ee59f659484983a50bf5a4397"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1ac14bed7cee6d3f70ddf75a648fd64862a934a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c6b1b0da_f4629ae2","updated":"2025-10-19 10:27:43.000000000","message":"Thanks for the patch","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"14371fb1929452c6506454f5edfc85108a2f0edc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"beb53d10_e47ae43a","updated":"2025-11-27 16:28:34.000000000","message":"@Antonio, could you please check it again?","commit_id":"4b3b2e05d56c9dd30399514a5953fecd2e2f4574"}],"src/helper/util.c":[{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1ac14bed7cee6d3f70ddf75a648fd64862a934a9","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\treturn register_commands(cmd_ctx, NULL, util_command_handlers);"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"bool is_memory_regions_intersect(target_addr_t start1,"},{"line_number":45,"context_line":"\tunsigned int size1,"},{"line_number":46,"context_line":"\ttarget_addr_t start2,"},{"line_number":47,"context_line":"\tunsigned int  size2)"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"a5383401_e860b6ce","line":44,"updated":"2025-10-19 10:27:43.000000000","message":"Just personal taste, so feel free to trash this comment\nMaybe s/intersect/overlap/ ?","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1002437,"name":"Alexandra Kulyatskaya","email":"a.kulyatskaya@syntacore.com","username":"AlexandraKulyatskaya"},"change_message_id":"2e42eb1a51be4892d8e853d6643d5c99e3f27452","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\treturn register_commands(cmd_ctx, NULL, util_command_handlers);"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"bool is_memory_regions_intersect(target_addr_t start1,"},{"line_number":45,"context_line":"\tunsigned int size1,"},{"line_number":46,"context_line":"\ttarget_addr_t start2,"},{"line_number":47,"context_line":"\tunsigned int  size2)"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"fe64c838_69a252d7","line":44,"in_reply_to":"a5383401_e860b6ce","updated":"2025-11-01 14:27:21.000000000","message":"Done","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5c6750fb87a4d90c21c8b15f64e0165787f22ad9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\treturn register_commands(cmd_ctx, NULL, util_command_handlers);"},{"line_number":42,"context_line":"}"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"bool is_memory_regions_intersect(target_addr_t start1,"},{"line_number":45,"context_line":"\tunsigned int size1,"},{"line_number":46,"context_line":"\ttarget_addr_t start2,"},{"line_number":47,"context_line":"\tunsigned int  size2)"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"df10d227_34918daf","line":44,"in_reply_to":"fe64c838_69a252d7","updated":"2025-11-08 18:16:14.000000000","message":"Done","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"1ac14bed7cee6d3f70ddf75a648fd64862a934a9","unresolved":true,"context_lines":[{"line_number":57,"context_line":"\t *  1. Normalized region 2 wraps around 0 (unsigned overflow)"},{"line_number":58,"context_line":"\t *  2. Start of normalized region 2 is within region 1"},{"line_number":59,"context_line":"\t */"},{"line_number":60,"context_line":"\tstart2 -\u003d start1;"},{"line_number":61,"context_line":"\ttarget_addr_t end1 \u003d size1 - 1;"},{"line_number":62,"context_line":"\ttarget_addr_t end2 \u003d start2 + size2 - 1;"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"96fc068f_10ee6d00","line":60,"updated":"2025-10-19 10:27:43.000000000","message":"I don\u0027t really like this potential unsigned overflow. Some compiler or static checker will trigger warning.\nLooking at the implementation of `resource_overlaps()` in kernel\nhttps://elixir.bootlin.com/linux/v6.17/source/include/linux/ioport.h#L312\n\nhere we can simply:\n```\n\ttarget_addr_t end1 \u003d start1 + size1;\n\ttarget_addr_t end2 \u003d start2 + size2;\n\t/* overlap when both interval start before the other interval ends */\n\treturn start1 \u003c end2 \u0026\u0026 start2 \u003c end1;\n```\n\nIf I have well computed, we don\u0027t need adding `-1` by using \u0027\u003c\u0027 only, but please cross check","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"5c6750fb87a4d90c21c8b15f64e0165787f22ad9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"\t *  1. Normalized region 2 wraps around 0 (unsigned overflow)"},{"line_number":58,"context_line":"\t *  2. Start of normalized region 2 is within region 1"},{"line_number":59,"context_line":"\t */"},{"line_number":60,"context_line":"\tstart2 -\u003d start1;"},{"line_number":61,"context_line":"\ttarget_addr_t end1 \u003d size1 - 1;"},{"line_number":62,"context_line":"\ttarget_addr_t end2 \u003d start2 + size2 - 1;"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"3715e0b4_237db426","line":60,"in_reply_to":"03b09519_7a8f9326","updated":"2025-11-08 18:16:14.000000000","message":"Clang has the flag `-fsanitize\u003dunsigned-integer-overflow` that here would trigger the warning.\nGCC does\u0027t want to implement a similar because there are cases where the programmer explicitly want the variable to wrap-around and gets annoyed by the warning.\nI remember some patch rejected in Linux kernel because was supposed to \"fix\" some intentional wrap-around.\n\nHere we can code in a way that (partially) prevents the wrap-around and (hopefully) prevents future patches to fix it.","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"893fbcc116937d33663e7fa553c2254b4735e336","unresolved":true,"context_lines":[{"line_number":57,"context_line":"\t *  1. Normalized region 2 wraps around 0 (unsigned overflow)"},{"line_number":58,"context_line":"\t *  2. Start of normalized region 2 is within region 1"},{"line_number":59,"context_line":"\t */"},{"line_number":60,"context_line":"\tstart2 -\u003d start1;"},{"line_number":61,"context_line":"\ttarget_addr_t end1 \u003d size1 - 1;"},{"line_number":62,"context_line":"\ttarget_addr_t end2 \u003d start2 + size2 - 1;"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"79859b96_15a02c0d","line":60,"in_reply_to":"4527c06b_d927d021","updated":"2025-11-02 10:38:28.000000000","message":"You are right, Evgeniy.\nWhat about:\n```\ntarget_addr_t end1 \u003d start1 + (size1 - 1);\ntarget_addr_t end2 \u003d start2 + (size2 - 1);\n/* overlap when both interval start before the other interval ends */\nreturn start1 \u003c\u003d end2 \u0026\u0026 start2 \u003c\u003d end1;\n```","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"change_message_id":"9247917137a205dee2de6619997f37d9c19186bb","unresolved":true,"context_lines":[{"line_number":57,"context_line":"\t *  1. Normalized region 2 wraps around 0 (unsigned overflow)"},{"line_number":58,"context_line":"\t *  2. Start of normalized region 2 is within region 1"},{"line_number":59,"context_line":"\t */"},{"line_number":60,"context_line":"\tstart2 -\u003d start1;"},{"line_number":61,"context_line":"\ttarget_addr_t end1 \u003d size1 - 1;"},{"line_number":62,"context_line":"\ttarget_addr_t end2 \u003d start2 + size2 - 1;"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"03b09519_7a8f9326","line":60,"in_reply_to":"79859b96_15a02c0d","updated":"2025-11-06 11:40:22.000000000","message":"TBH, I don\u0027t get the issue with unsigned overflow/underflow. This behavior is well-defined.\nThere is the argument about architectures with address wrap-around (see my previous comment), but I will understand if you don\u0027t feel like this feature should be supported at all.\nSo I don\u0027t object to the suggested change, I just don\u0027t get why it\u0027s better.","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"},{"author":{"_account_id":1002047,"name":"Evgeniy Naydanov","email":"eugnay@gmail.com","username":"en-sc"},"change_message_id":"bdc04aa193a9af443c8fd6c6c3ce961f4796ae70","unresolved":true,"context_lines":[{"line_number":57,"context_line":"\t *  1. Normalized region 2 wraps around 0 (unsigned overflow)"},{"line_number":58,"context_line":"\t *  2. Start of normalized region 2 is within region 1"},{"line_number":59,"context_line":"\t */"},{"line_number":60,"context_line":"\tstart2 -\u003d start1;"},{"line_number":61,"context_line":"\ttarget_addr_t end1 \u003d size1 - 1;"},{"line_number":62,"context_line":"\ttarget_addr_t end2 \u003d start2 + size2 - 1;"},{"line_number":63,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":7,"id":"4527c06b_d927d021","line":60,"in_reply_to":"96fc068f_10ee6d00","updated":"2025-10-22 15:09:07.000000000","message":"Antonio, I don\u0027t think the suggested code works.\nConsider `start1 \u003d\u003d start2 \u003d\u003d 0xff...ff` with `size1 \u003d\u003d size2 \u003d\u003d 1`. Then `end1 \u003d\u003d end2 \u003d\u003d 0` and the condition is not satisfied.\n\nThe version from the Linux kernel (using `\u003c\u003d` and `\u003e\u003d` adding `- 1` to `end*` definitions) will not work also. Some architectures (e.g. RISC-V) allow for address wrap-around (e.g. byte at `0xff...ff` neighbors the byte at `0x0`). I do understand that this particular change is not the thing that will make or break support of this architectural peculiarity, but it seems like a more general solution.\n\nMoreover, I don\u0027t quite get the difference between `start2 -\u003d start1` and `end1 \u003d start1 + size1 - 1` from the point of static analysis and unsigned underflow -- both can result in `0xff..ff`.\n\nSo, perhaps we can leave the implementation as-is?","commit_id":"3f608619f03c55794dd93b314e5d351d20621478"}]}
