View Issue Details

IDProjectCategoryView StatusLast Update
0000184XdebugUncategorizedpublic2020-03-12 18:01
Reporterjudas_iscariote Assigned To 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionreopened 
Summary0000184: problem with control chars in code traces
Description

Im not very sure if this is a bug, a limitation or just how the editors behave :-)
but in code like

str_replace(array("\r", "\n"), ' ', 'foobar');

control chars gets parsed by every single editor I tried
and traces do not display the real values passed.(just a new line or carriage return in the file is created)

not sure if you can determine with something internal like ctype_cntrl() if the param is only a control char, and escape it to get the real literal param displayed in trace.

Thus, I opened this as feature request.

TagsNo tags attached.
Operating System
PHP Version5.1-dev

Activities

derick

2006-05-27 21:07

administrator   ~0000412

Fixed in CVS.

judas_iscariote

2006-05-28 03:19

reporter   ~0000416

Hi, it works fine now, however.

If I pass a NULL byte.

str_replace("\0", ' ', 'foobar');

( "\0" or chr(0) same result)

0.0002 100704 -> str_replace('\000', ' ', 'foobar') is printed in the trace file, correct me if Im wrong, but I Expect to see str_replace('\0', ' ', 'foobar') or Im missing something ?

judas_iscariote

2006-06-02 06:58

reporter   ~0000418

update test case

Index: tests/bug00184.phpt

RCS file: /repository/xdebug/tests/bug00184.phpt,v
retrieving revision 1.1
diff -u -a -r1.1 bug00184.phpt
--- tests/bug00184.phpt 27 May 2006 20:06:57 -0000 1.1
+++ tests/bug00184.phpt 2 Jun 2006 05:56:32 -0000
@@ -15,7 +15,7 @@
--FILE--
<?php
$trace_file = xdebug_get_tracefile_name();

  • str_replace(array("\r", "\n"), ' ', 'foobar');
  • str_replace(array("\r", "\n","\0"), ' ', 'foobar');
    echo file_get_contents($trace_file);
    unlink($trace_file);
    echo "DONE\n";
    @@ -25,7 +25,7 @@
    %w%f %w%d -> {main}() %sbug00184.php:0
    %w%f %w%d -> xdebug_get_tracefile_name() %sbug00184.php:2

    => '/tmp/trace.%d.xt'
    -%w%f %w%d -> str_replace(array (0 => '\r', 1 => '\n'), ' ', 'foobar') %sbug00184.php:3
    +%w%f %w%d -> str_replace(array (0 => '\r', 1 => '\n', 2=>'\0'), ' ', 'foobar') %sbug00184.php:3
    => 'foobar'
    %w%f %w%d -> file_get_contents('/tmp/trace.%d.xt') %sbug00184.php:4
    DONE

derick

2006-08-19 13:26

administrator   ~0000439

This is how PHP's addcslashes does it as well. And as I use this internal function and it is more consistent I want to keep it this way. I'll update the test case though.

Issue History

Date Modified Username Field Change
2006-05-19 06:39 judas_iscariote New Issue
2006-05-27 21:07 derick Status new => closed
2006-05-27 21:07 derick Note Added: 0000412
2006-05-28 03:19 judas_iscariote Status closed => feedback
2006-05-28 03:19 judas_iscariote Resolution open => reopened
2006-05-28 03:19 judas_iscariote Note Added: 0000416
2006-06-02 06:58 judas_iscariote Note Added: 0000418
2006-08-19 13:26 derick Status feedback => closed
2006-08-19 13:26 derick Note Added: 0000439
2020-03-12 16:56 derick Severity tweak => feature
2020-03-12 18:01 derick Category Feature/Change request => Uncategorized