Ambiguity in Software Serial HW:
2 Arduino ProMini 16Mhz, 5V
Software serial directly connected using male jumpers on bredboard.

I have creates a software serial port for communication between two arduinos, Parent and child

as per the documentation 
http://arduino.cc/en/Reference/SoftwareSerialAvailable

mySerial.available()


should return the number of bytes available in the buffer.
and

mySerial.read(); 


should give me the byte or return -1 (255) on error.
http://arduino.cc/en/Reference/SoftwareSerialRead

here is my code snippet where i read the values 

if(child1.available() &gt; 0){
    Serial.print("ParentReceived Something from child 1\n");
    while(child1.available()){
      recvBuffer1[i] = child1.read();
      Serial.print(recvBuffer1[i], DEC); Serial.print(" ");
      Serial.print(i, DEC); Serial.print(" ");
      i++;
      if(i == FRAME_SIZE) break;
    }
  }


the Serial outputs are for debugging, 
The condition for while is true. we go inside.
Now what i receive with child1.read() is the following

ParentReceived Something from child 2
255 0 255 1 255 2 255 3 255 4 255 5 255 6 255 7 


all i see is 255.

what i did:
     I first suspected the child of sending these data, but i used a TTL to USB converter to directly read the values being sent by the child and they are received correctly as they should be. even if i TAP the serial ports to another
TTL to USB converter i get 255 on my arduino Serial monitor and the correct data on the sniffer.
I notice that your code only mentions "child1", but the output you've displayed mentions "child 2". I assume that means you're using more than one instance of SoftwareSerial.

It's important to note that only one instance can receive data at any given time. You need to call listen() on an instance to enable it, which will prevent any other instance from receiving data. (Anything which would have been received by another instance will be discarded.)

See the documentation here: http://www.arduino.cc/en/Reference/SoftwareSerialListen