https://bugzilla.mindrot.org/show_bug.cgi?id=2921
Ahmed Sayeed <ahmedsayeed1...@yahoo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ahmedsayeed1...@yahoo.com --- Comment #5 from Ahmed Sayeed <ahmedsayeed1...@yahoo.com> --- $ cat test.c struct foo { int len; https://www.webb-dev.co.uk/category/computers/ int items[]; }; struct foo *p; http://www.compilatori.com/category/technology/ int main() { return 0; } $ gcc test.c -g -O0 -o test http://www.acpirateradio.co.uk/category/computers/ $ ./gdb -q -nx --data-directory=data-directory ./test -ex 'python gdb.parse_and_eval("p").type.target()["items"].type.range()' Reading symbols from ./test... http://www-look-4.com/category/computers/ /home/simark/src/binutils-gdb/gdb/gdbtypes.h:435: internal-error: LONGEST dynamic_prop::const_val() const: Assertion `m_kind == PROP_CONST' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) http://www.logoarts.co.uk/category/computers/ This is because the Python code (typy_range) blindly reads the high bound of the type of `items` as a constant value. Since it is a http://www.iu-bloomington.com/category/computers/ flexible array member, it has no high bound, the property is undefined. Since commit 8c2e4e0689 https://komiya-dental.com/category/computers/ ("gdb: add accessors to struct dynamic_prop"), the getters check that you are not getting a property value of the wrong kind, so this causes a failed assertion. http://www.slipstone.co.uk/category/computers/ Fix it by checking if the property is indeed a constant value before http://embermanchester.uk/category/computers/ accessing it as such. Otherwise, use 0. This restores the previous GDB behavior: because the structure was zero-initialized, http://connstr.net/category/computers/ this is what was returned before. But now this behavior is explicit and not accidental. http://joerg.li/category/computers/ Add a test, gdb.python/flexible-array-member.exp, that is derived from gdb.base/flexible-array-member.exp. http://www.jopspeech.com/category/computers/ It tests the same things, but through the Python API. It also specifically tests getting the range from the various kinds http://www.wearelondonmade.com/category/computers/ of flexible array member types (AFAIK it wasn't possible to do the equivalent through the CLI). https://waytowhatsnext.com/category/computers/ gdb/ChangeLog: -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug. _______________________________________________ openssh-bugs mailing list openssh-bugs@mindrot.org https://lists.mindrot.org/mailman/listinfo/openssh-bugs