Erich Hoover a écrit :
Real Name: Erich Hoover Description: The thread name length in winedbg is currently restricted to 9 characters, this is not nearly long enough for debugging threads in the Supreme Commander demo and results in character corruption on the terminal. Since this particular application names one of the threads with the map path (Map loader /maps/scmp_019/scmp_019.scmap), a significant increase in the number of characters is necessary. This patch ups the allowed thread name length to 100 characters and null-terminates the string in case an application exceeds that threshold value. Changelog: winedbg: Support longer thread names
in that case, it would be better to dynamically allocate the string (and to create it by default at 5 bytes for the %04x value) furthermore, you need to change the comment in debugger.h in THREADNAME_INFO structure about the name's length, as it seems VC7 removed the restriction to 8 characters that existed in VC6 A+
I am not very familiar with the winedbg code and do not see any easy (ie, non-hackish) way to get the length of the string in order to properly allocate the name size. I could read back a "large buffer" and use the string resulting from that to determine how large of a name to allocate, but that seems slightly hackish. If you have a suggestion then I'm all ears.
Erich Hoover ehoover@mines.edu
On 3/11/07, Eric Pouech eric.pouech@wanadoo.fr wrote:
Erich Hoover a écrit :
Real Name: Erich Hoover Description: The thread name length in winedbg is currently restricted to 9 characters, this is not nearly long enough for debugging threads in the Supreme Commander demo and results in character corruption on the terminal. Since this particular application names one of the threads with the map path (Map loader /maps/scmp_019/scmp_019.scmap), a significant increase in the number of characters is necessary. This patch ups the allowed thread name length to 100 characters and null-terminates the string in case an application exceeds that threshold value. Changelog: winedbg: Support longer thread names
in that case, it would be better to dynamically allocate the string (and to create it by default at 5 bytes for the %04x value) furthermore, you need to change the comment in debugger.h in THREADNAME_INFO structure about the name's length, as it seems VC7 removed the restriction to 8 characters that existed in VC6 A+
Erich Hoover a écrit :
I am not very familiar with the winedbg code and do not see any easy (ie, non-hackish) way to get the length of the string in order to properly allocate the name size. I could read back a "large buffer" and use the string resulting from that to determine how large of a name to allocate, but that seems slightly hackish. If you have a suggestion then I'm all ears.
not really, my point was not to allocate a large buffer for every thread... then reading the thread name requires either that you grow the buffer while reading small chunks (that would be the less expensive solution) A+
Erich Hoover ehoover@mines.edu mailto:ehoover@mines.edu
On 3/11/07, *Eric Pouech* <eric.pouech@wanadoo.fr mailto:eric.pouech@wanadoo.fr> wrote:
Erich Hoover a écrit : > Real Name: > Erich Hoover > Description: > The thread name length in winedbg is currently restricted to 9 > characters, this is not nearly long enough for debugging threads in > the Supreme Commander demo and results in character corruption on the > terminal. Since this particular application names one of the threads > with the map path (Map loader /maps/scmp_019/scmp_019.scmap), a > significant increase in the number of characters is necessary. This > patch ups the allowed thread name length to 100 characters and > null-terminates the string in case an application exceeds that > threshold value. > Changelog: > winedbg: Support longer thread names in that case, it would be better to dynamically allocate the string (and to create it by default at 5 bytes for the %04x value) furthermore, you need to change the comment in debugger.h in THREADNAME_INFO structure about the name's length, as it seems VC7 removed the restriction to 8 characters that existed in VC6 A+